2021-12-07 18:32:30 +00:00
|
|
|
\documentclass{beamer}
|
|
|
|
\usepackage[utf8]{inputenc}
|
2021-12-08 06:33:28 +00:00
|
|
|
\usepackage{agda}
|
|
|
|
\usepackage{caption}
|
|
|
|
\usepackage{catchfilebetweentags}
|
|
|
|
\usepackage{cite}
|
|
|
|
\usepackage{newunicodechar}
|
|
|
|
\usepackage{url}
|
|
|
|
|
|
|
|
\usetheme{CambridgeUS}
|
|
|
|
\usecolortheme{lily}
|
|
|
|
\setbeamercovered{transparent}
|
|
|
|
|
2021-12-07 18:32:30 +00:00
|
|
|
\usepackage{tikz}
|
|
|
|
\usetikzlibrary{positioning}
|
|
|
|
|
2021-12-08 06:33:28 +00:00
|
|
|
\titlegraphic{
|
|
|
|
\centering
|
|
|
|
\includegraphics[width=.3\textwidth,height=.5\textheight]{cesk.png}
|
|
|
|
}
|
|
|
|
\title{First class continuations with CEK machines in Agda}
|
|
|
|
\author{Michael Zhang}
|
|
|
|
\date{}
|
2021-12-07 18:32:30 +00:00
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
|
|
|
|
\frame{\titlepage}
|
|
|
|
|
2021-12-08 06:33:28 +00:00
|
|
|
\section{Primer on CESK}
|
|
|
|
|
2021-12-07 18:32:30 +00:00
|
|
|
\begin{frame}
|
2021-12-08 06:33:28 +00:00
|
|
|
\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{How does it work?}
|
|
|
|
|
|
|
|
\begin{itemize}[<+->]
|
|
|
|
\item
|
|
|
|
\end{itemize}
|
2021-12-07 18:32:30 +00:00
|
|
|
\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
|
|
|
|
};
|
2021-12-08 06:33:28 +00:00
|
|
|
\node[squarednode](ceskState2)[right=of ceskState]{CEK};
|
2021-12-07 18:32:30 +00:00
|
|
|
|
|
|
|
%lines
|
|
|
|
\draw[->] (ceskState.east) -- (ceskState2.west);
|
|
|
|
\end{tikzpicture}
|
|
|
|
\end{frame}
|
|
|
|
|
2021-12-08 06:33:28 +00:00
|
|
|
\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}
|
|
|
|
|
2021-12-07 18:32:30 +00:00
|
|
|
\end{document}
|
|
|
|
|
|
|
|
% vim: set sw=2 :
|