From f56901ad4b9f62fd554b9ade744b1545f82371f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Hillerstr=C3=B6m?= Date: Sun, 8 Nov 2020 16:54:50 +0000 Subject: [PATCH] Extend Table 4.2 --- thesis.bib | 30 ++++++++++++++++++++++++++++++ thesis.tex | 28 +++++++++++++++++++++++----- 2 files changed, 53 insertions(+), 5 deletions(-) diff --git a/thesis.bib b/thesis.bib index 5009f3b..de66362 100644 --- a/thesis.bib +++ b/thesis.bib @@ -1798,6 +1798,36 @@ year = 2020 } +# Gauche +@misc{Kawai20, + author = {Shiro Kawai}, + title = {{Gauche} Users' Reference (version 0.9.9)}, + year = 2019 +} + +# OchaCaml +@inproceedings{MasukoA11, + author = {Moe Masuko and Kenchi Asai}, + title = {{Caml} {Light} + shift/reset = {Caml} {Shift}}, + booktitle = {Theory and Practice of Delimited Continuations ({TPDC})}, + year = 2011, + pages = {33--46} +} + +# Shift/reset in Scala +@inproceedings{RompfMO09, + author = {Tiark Rompf and + Ingo Maier and + Martin Odersky}, + title = {Implementing first-class polymorphic delimited continuations by a + type-directed selective CPS-transform}, + booktitle = {{ICFP}}, + pages = {317--328}, + publisher = {{ACM}}, + year = {2009} +} + + # First implementation of threads using continuations @InProceedings{Burstall69, author = {Rod M. Burstall}, diff --git a/thesis.tex b/thesis.tex index 062c811..2c72b28 100644 --- a/thesis.tex +++ b/thesis.tex @@ -1088,21 +1088,39 @@ implementation strategies. \begin{table} \centering - \begin{tabular}{| l | >{\raggedright}p{4.5cm} | l |} + \begin{tabular}{| l | >{\raggedright}p{4.3cm} | l |} \hline \multicolumn{1}{|c|}{\textbf{Language}} & \multicolumn{1}{c |}{\textbf{Control operators}} & \multicolumn{1}{c|}{\textbf{Implementation strategies}}\\ \hline + Eff & Effect handlers & Virtual machine, interpreter \\ + \hline + Effekt & Lexical effect handlers & ??\\ + \hline + Frank & N-ary effect handlers & Abstract machine \\ + \hline + Gauche & callcc, shift/reset & Virtual machine \\ + \hline + Helium & Effect handlers & CEK machine \\ + \hline + Koka & Effect handlers & Continuation monad\\ + \hline Links & Effect handlers, escape & CEK machine, CPS\\ \hline MLton & callcc & Stack copying\\ \hline - Multicore OCaml & Effect handlers & Segmented stacks\\ + Multicore OCaml & Affine effect handlers & Segmented stacks\\ + \hline + OchaCaml & shift/reset & Virtual machine\\ + \hline + Racket & callcc, callcc$^{\ast}$, cupto, fcontrol, prompt/control, shift/reset, splitter, spawn & Continuation marks\\ + \hline + Rhino JavaScript & JI & Interpreter \\ \hline - Racket & callcc, callcc$^{\ast}$, fcontrol, prompt/control, shift/reset, splitter, spawn & Continuation marks\\ + Scala & shift/reset & CPS\\ \hline - Rhino JavaScript & A variation of J & Interpreter \\ + SML/NJ & callcc & CPS\\ \hline - SML/NJ & callcc & CPS\\ + Wasm/k & prompt/control & ?? \\ \hline \end{tabular} \caption{Some languages and their implementation strategies for first-class control.}\label{tbl:ctrl-operators-impls}