cek-call-cc/main.tex

96 lines
2.1 KiB
TeX
Raw Normal View History

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}
2021-12-09 12:13:32 +00:00
% \usetheme{CambridgeUS}
2021-12-08 06:33:28 +00:00
\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
2021-12-09 12:13:32 +00:00
\vspace{-1cm}
\includegraphics[width=.2\textwidth,height=.35\textheight]{cesk.png}
2021-12-08 06:33:28 +00:00
}
\title{First class continuations with CEK machines in Agda}
\author{Michael Zhang}
\date{}
2021-12-07 18:32:30 +00:00
\begin{document}
2021-12-09 12:13:32 +00:00
% \frame{\titlepage}
\begin{frame}[t]\vspace{1cm}
\maketitle
\end{frame}
2021-12-07 18:32:30 +00:00
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}
2021-12-09 12:13:32 +00:00
\frametitle{What are each of the components?}
2021-12-08 06:33:28 +00:00
\begin{itemize}[<+->]
2021-12-09 12:13:32 +00:00
\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.
2021-12-08 06:33:28 +00:00
\end{itemize}
2021-12-07 18:32:30 +00:00
\end{frame}
2021-12-09 12:13:32 +00:00
\begin{frame}
\frametitle{What are continuations?}
\end{frame}
2021-12-07 18:32:30 +00:00
\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 :