This paper derives an abstract machine and a virtual machine for the λ-calculus with four variants of delimited-control operators: shift/reset, control/prompt, shift₀/reset₀, and control₀/prompt₀. Starting from Shan’s definitional interpreter for the four operators, we successively apply various meaning-preserving transformations. Both trails of invocation contexts (needed for control and control₀) and metacontinuations (needed for shift₀ and control₀) are defunctionalized and eventually represented as a list of stack frames. The resulting virtual machine clearly models not only how the control operators and captured continuations behave but also when and which portion of stack frames is copied to the heap.
@InProceedings{fujii_et_al:LIPIcs.FSCD.2021.16, author = {Fujii, Maika and Asai, Kenichi}, title = {{Derivation of a Virtual Machine For Four Variants of Delimited-Control Operators}}, booktitle = {6th International Conference on Formal Structures for Computation and Deduction (FSCD 2021)}, pages = {16:1--16:19}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-95977-191-7}, ISSN = {1868-8969}, year = {2021}, volume = {195}, editor = {Kobayashi, Naoki}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.FSCD.2021.16}, URN = {urn:nbn:de:0030-drops-142547}, doi = {10.4230/LIPIcs.FSCD.2021.16}, annote = {Keywords: delimited-control operators, functional derivation, CPS transformation, defunctionalization, abstract machine, virtual machine} }
Feedback for Dagstuhl Publishing