95 lines
2.1 KiB
TeX
95 lines
2.1 KiB
TeX
\documentclass{beamer}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage{agda}
|
|
\usepackage{caption}
|
|
\usepackage{catchfilebetweentags}
|
|
\usepackage{cite}
|
|
\usepackage{newunicodechar}
|
|
\usepackage{url}
|
|
|
|
% \usetheme{CambridgeUS}
|
|
\usecolortheme{lily}
|
|
\setbeamercovered{transparent}
|
|
|
|
\usepackage{tikz}
|
|
\usetikzlibrary{positioning}
|
|
|
|
\titlegraphic{
|
|
\centering
|
|
\vspace{-1cm}
|
|
\includegraphics[width=.2\textwidth,height=.35\textheight]{cesk.png}
|
|
}
|
|
\title{First class continuations with CEK machines in Agda}
|
|
\author{Michael Zhang}
|
|
\date{}
|
|
|
|
\begin{document}
|
|
|
|
% \frame{\titlepage}
|
|
\begin{frame}[t]\vspace{1cm}
|
|
\maketitle
|
|
\end{frame}
|
|
|
|
\section{Primer on CESK}
|
|
|
|
\begin{frame}
|
|
\frametitle{What is a CESK machine?}
|
|
|
|
\begin{itemize}[<+->]
|
|
\item Abstract machine for interpreters, introduced by Matthias Felleisen.
|
|
\item Stands for $C$ontrol, $E$nvironment, $S$tore, $K$ontinuation.
|
|
\item Based on Matt Might's blog post on CESK machines \cite{might-cesk}.
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{What are each of the components?}
|
|
|
|
\begin{itemize}[<+->]
|
|
\item $C$ontrol is your current term.
|
|
\item $E$nvironment is a list of addresses.
|
|
\item $S$tore is a mapping of addresses to values.
|
|
\item $K$ont is what gets evaluated next.
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{What are continuations?}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\begin{tikzpicture}[
|
|
roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm},
|
|
squarednode/.style={rectangle, draw=red!60, fill=red!5, very thick, minimum size=5mm},
|
|
]
|
|
\node[draw, align=left, squarednode](ceskState){
|
|
C = $\lambda x . (\lambda y . x + y)$ \\
|
|
$E$ = [] \\
|
|
$\kappa$ = halt
|
|
};
|
|
\node[squarednode](ceskState2)[right=of ceskState]{CEK};
|
|
|
|
%lines
|
|
\draw[->] (ceskState.east) -- (ceskState2.west);
|
|
\end{tikzpicture}
|
|
\end{frame}
|
|
|
|
\section{Implementation}
|
|
|
|
\begin{frame}
|
|
\frametitle{Hellosu}
|
|
|
|
\include{./gentex/Project/Cesk.tex}
|
|
\end{frame}
|
|
|
|
\section{Conclusion}
|
|
|
|
\begin{frame}
|
|
\frametitle{Resources}
|
|
\bibliography{res}{}
|
|
\bibliographystyle{plain}
|
|
\end{frame}
|
|
|
|
\end{document}
|
|
|
|
% vim: set sw=2 :
|