To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Heritage persistent IDentifiers (SWHIDs) must be used instead of copying and pasting the url from the address bar of the browser (as there is no guarantee the current URI scheme will remain the same over time).
Select below a type of object currently browsed in order to display its associated SWHID and permalink.
OCaml source code for the following paper presented at FSCD 2021: Maika Fujii and Kenichi Asai "Derivation of a Virtual Machine for Four Variants of Delimited-Control Operators" 6th International Conference on Formal Structures for Computation and Deduction, FSCD 2021, July 17-24, 2021, Buenos Aires, Argentina (Virtual Conference), volume 195 of LIPIcs, pages 16:1-16:19, doi:10.4230/LIPIcs.FSCD.2021.16. - eval1/ Listing 1: definitional interpreter - eval2/ Listing 2: defunctionalized interpreter - eval3/ Listing 3: linearized interpreter - eval4/ Listing 4: stack-based interpreter - eval4/ Listing 4: stack-based interpreter - eval5/ Listing 5: delinearized interpreter - eval6/ Listing 6: refunctionalized interpreter - eval7/ Listing 7: interpreter with combined arguments - eval8/ Listing 8: interpreter with functional instructions - eval9/ Listing 9: interpreter with defunctionalized instructions - eval10/ (Listing 10): interpreter with linearized instructions - eval11/ Listing 11: interpreter with linearized trails To compile, you need OCamlMakefile. - Write the location of the OCamlMakefile in `eval*/Makefile` and `make`. - To execute the interpreter, run `./interpreter` and input the program into the standard input. Example inputs: ``` 1 + reset (reset (2 * reset ((fun y -> shift h -> y) (shift f -> shift g -> 3 + f 4)))) 1 + reset (reset (2 * reset ((fun y -> control h -> y) (control f -> control g -> 3 + f 4)))) 1 + reset (reset (2 * reset ((fun y -> shift0 h -> y) (shift0 f -> shift0 g -> 3 + f 4)))) 1 + reset (reset (2 * reset ((fun y -> control0 h -> y) (control0 f -> control0 g -> 3 + f 4))) ```
Computing file changes ...