The CK machine
The CK machine is an abstract machine that supports a number of evaluation strategies, including call-by-name and call-by-value evaluation.
It was introduced in Felleisen and Friedman 1987 as a simplification of Landin's SECD machine Levy 2003, 2.3.2.
A more modern version of the CK machine plays a central role in the study of call-by-push-value Levy 2003.
Description
Please expand.
See also
Similar machines:
- Bierman 1998
- the Krivine machine
- Streicher and Reus 1998
References
@inproceedings{felleisen_1987,
title = {Control operators, the {SED}-machine, and the λ-calculus},
isbn = {978-0-444-70253-1},
url = {https://legacy.cs.indiana.edu/ftp/techreports/TR197.pdf},
booktitle = {Formal {Description} of {Programming} {Concepts} {III}},
publisher = {North-Holland},
author = {Felleisen, Matthias and Friedman, D.P.},
editor = {Wirsing, Martin},
year = {1987},
}
@book{levy_2003,
series = {Semantic {Structures} in {Computation}},
title = {Call-by-{Push}-{Value}: {A} {Functional}-{Imperative} {Synthesis}},
isbn = {978-94-010-3752-5},
publisher = {Springer Dordrecht},
author = {Levy, Paul Blain},
year = {2003},
doi = {10.1007/978-94-007-0954-6},
}
@inproceedings{bierman_1998,
address = {Berlin, Heidelberg},
series = {Lecture {Notes} in {Computer} {Science}},
title = {A computational interpretation of the λμ-calculus},
volume = {1450},
url = {http://link.springer.com/10.1007/BFb0055783},
doi = {10.1007/BFb0055783},
urldate = {2023-05-10},
booktitle = {Mathematical {Foundations} of {Computer} {Science} 1998},
publisher = {Springer Berlin Heidelberg},
author = {Bierman, G. M.},
editor = {Brim, Luboš and Gruska, Jozef and Zlatuška, Jiří},
year = {1998},
pages = {336--345},
}
@article{streicher_1998,
title = {Classical logic, continuation semantics and abstract machines},
volume = {8},
doi = {10.1017/S0956796898003141},
number = {6},
journal = {Journal of Functional Programming},
author = {Streicher, Th. and Reus, B.},
year = {1998},
pages = {543--572},
}