mirror of
https://github.com/dhil/phd-dissertation
synced 2026-03-13 11:08:25 +00:00
Compare commits
2 Commits
a656f426b8
...
53a2f691c5
| Author | SHA1 | Date | |
|---|---|---|---|
| 53a2f691c5 | |||
| a75f22eb50 |
@@ -437,5 +437,7 @@
|
||||
\newcommand{\fprompt}{\%}
|
||||
\newcommand{\splitter}{\keyw{splitter}}
|
||||
\newcommand{\J}{\keyw{J}}
|
||||
\newcommand{\FelleisenC}{\ensuremath{\mathcal{C}}}
|
||||
\newcommand{\FelleisenF}{\ensuremath{\mathcal{F}}}
|
||||
|
||||
\newcommand{\cont}{\keyw{cont}}
|
||||
34
thesis.tex
34
thesis.tex
@@ -659,6 +659,8 @@ callcc, J, catchcont, etc.
|
||||
\hline
|
||||
\multicolumn{1}{| l |}{\textbf{Name}} & \multicolumn{1}{l |}{\textbf{Extent}} & \multicolumn{1}{l |}{\textbf{Behaviour}} & \multicolumn{1}{l |}{\textbf{Canonical reference}}\\
|
||||
\hline
|
||||
\FelleisenC & Undelimited & Abortive & \citet{FelleisenF86} \\
|
||||
\hline
|
||||
call/cc & Undelimited & Abortive & \citet{AbelsonHAKBOBPCRFRHSHW85} \\
|
||||
\hline
|
||||
call/cc* & Undelimited & Composable & \citet{Flatt20} \\
|
||||
@@ -675,6 +677,8 @@ callcc, J, catchcont, etc.
|
||||
\hline
|
||||
escape & Undelimited & Abortive & \citet{Reynolds98a}\\
|
||||
\hline
|
||||
\FelleisenF & Undelimited & Composable & \citet{FelleisenFDM87}\\
|
||||
\hline
|
||||
fcontrol & Delimited & Composable & \citet{Sitaram93} \\
|
||||
\hline
|
||||
J & Undelimited & Abortive & \citet{Landin98}\\
|
||||
@@ -694,10 +698,9 @@ callcc, J, catchcont, etc.
|
||||
\paragraph{Landin's J operator}
|
||||
%
|
||||
\begin{reductions}
|
||||
\slab{Marking} & \EC[(\lambda x.M)~V] &\reducesto& \EC[\lambda^{\EC}.M[V/x]], \text{where $\EC$ contains no other $\lambda$}\\
|
||||
\slab{Return} & \lambda^{\EC}.V &\reducesto& V\\
|
||||
\slab{Capture} & \lambda^{\EC}.\EC'[\J\,x.M] &\reducesto& \EC'[\cont_{\Record{\EC;x.M}}/k]\\
|
||||
\slab{Resume} & \EC[\Continue~\cont_{\Record{\EC';x.M}}~V] &\reducesto& \EC'[M[V/x]]
|
||||
\slab{Dump} & \EC[(\lambda x.M)~V] &\reducesto& \EC[\mathcal{D}[M[V/x]]]\\
|
||||
\slab{Capture} & \EC[\mathcal{D}[\J\,(\lambda x.M)]] &\reducesto& \EC[\mathcal{D}[\cont_{\Record{\EC;\lambda x.M}}]]\\
|
||||
\slab{Resume} & \EC[\Continue~\cont_{\Record{\EC';\lambda x.M}}~V] &\reducesto& \EC'[(\lambda x.M)~V]
|
||||
\end{reductions}
|
||||
%
|
||||
|
||||
@@ -733,6 +736,29 @@ call-with-composable-continuation (MzScheme 360, November 2006).
|
||||
\slab{Resume} & \Continue~\cont_{\EC}~V &\reducesto& \EC[V]
|
||||
\end{reductions}
|
||||
|
||||
%
|
||||
\[
|
||||
1 + \Callcc^\ast\,(\lambda k. k\,(k\,0)) \reducesto 3
|
||||
\]
|
||||
%
|
||||
Contrast this result with
|
||||
%
|
||||
\[
|
||||
1 + \Callcc\,(\lambda k. k\,(k\,0)) \reducesto 1
|
||||
\]
|
||||
|
||||
\paragraph{Felleisen's \FelleisenC{} and \FelleisenF{}}
|
||||
%
|
||||
\begin{reductions}
|
||||
\slab{Capture} & \EC[\FelleisenC\,V] &\reducesto& V~\cont_{\EC}\\
|
||||
\slab{Resume} & \EC[\Continue~\cont_{\EC'}~V] &\reducesto& \EC[V]
|
||||
\end{reductions}
|
||||
%
|
||||
\begin{reductions}
|
||||
\slab{Capture} & \EC[\FelleisenF\,V] &\reducesto& V~\cont_{\EC}\\
|
||||
\slab{Resume} & \Continue~\cont_{\EC}~V &\reducesto& \EC[V]
|
||||
\end{reductions}
|
||||
|
||||
\subsection{Delimited operators}
|
||||
Delimited control: Control delimiters form the basis for delimited
|
||||
control. \citeauthor{Felleisen88} introduced control delimiters in
|
||||
|
||||
Reference in New Issue
Block a user