Compare commits

..

No commits in common. "19fd3bc1b92985f44bd11ccac648688d162a9c0c" and "342aba4426960cf190cd7737c925f5b7391f9bcd" have entirely different histories.

View File

@ -1,5 +1,6 @@
\documentclass{beamer} \documentclass{beamer}
\usepackage{tikz} \usepackage{tikz}
%\usepackage{minted}
\usetikzlibrary{positioning} \usetikzlibrary{positioning}
\usetheme{Darmstadt} \usetheme{Darmstadt}
@ -42,6 +43,42 @@
\centering \centering
\includegraphics[width=.75\textwidth]{imgs/gadt.png} \includegraphics[width=.75\textwidth]{imgs/gadt.png}
\end{figure} \end{figure}
%type _ t_var =
% | BVar: ident -> bool t_var
% | IVar: ident -> int t_var
% | RVar: ident -> real t_var
%
%type _ t_expression =
% | EVar: 'a t_var -> 'a t_expression
% | EMonOp: monop * 'a t_expression -> 'a t_expression
% | EBinOp: binop * 'a t_expression * 'a t_expression -> 'a t_expression
% | ETriOp: triop * bool t_expression * 'a t_expression * 'a t_expression -> 'a t_expression
% | EComp: compop * 'a t_expression * 'a t_expression -> bool t_expression
% | EConst: 'a const -> 'a t_expression
% | ETuple: 'a t_expression * 'b t_expression -> ('a * 'b) t_expression
% | EApp: (('a -> 'b) t_node) * 'a t_expression -> 'b t_expression
%
%and _ t_varlist =
% | NVar: 'a t_varlist
% | CVar: 'a t_var * 'b t_varlist -> ('a * 'b) t_varlist
%
%and 'a t_equation = 'a t_varlist * 'a t_expression
%
%and _ t_eqlist =
% | NEql: unit t_eqlist
% | CEql: 'a t_equation * 'b t_eqlist -> ('a * 'b) t_eqlist
%
%and _ t_node =
% | MakeNode:
% ident
% * 'i t_varlist * 'o t_varlist
% * 'l t_varlist * 'e t_eqlist
% -> ('i -> 'o) t_node
%
%type _ t_nodelist =
% | NNode: unit t_nodelist
% | CNode: ('a -> 'b) t_node * 'c t_nodelist -> (('a -> 'b) * 'c) t_nodelist
% \end{minted}
\end{frame} \end{frame}
\begin{frame} \begin{frame}
\begin{block}{Pros of using GADTs} \begin{block}{Pros of using GADTs}
@ -97,7 +134,7 @@
\section{Passes} \section{Passes}
\begin{frame}{Passes} \begin{frame}{Passes}
\begin{block}{Classification} \begin{block}
The passes of our compiler are functions of taking a program and either: The passes of our compiler are functions of taking a program and either:
\begin{itemize} \begin{itemize}
\item returning a program if the pass succeeded \item returning a program if the pass succeeded