
A Syntactic Correspondence between Context-Sensitive Calculi and Abstract Machines
Author(s) -
Małgorzata Biernacka,
Olivier Danvy
Publication year - 2005
Publication title -
brics report series
Language(s) - English
Resource type - Journals
eISSN - 1601-5355
pISSN - 0909-0878
DOI - 10.7146/brics.v12i22.21888
Subject(s) - normalization (sociology) , abstract machine , computer science , recursion (computer science) , lambda calculus , context (archaeology) , construct (python library) , programming language , theoretical computer science , algorithm , paleontology , sociology , anthropology , biology
We present a systematic construction of environment-based abstract machines from context-sensitive calculi of explicit substitutions, and we illustrate it with a series of calculi and machines: Krivine's machine with call/cc, the lambda-mu-calculus, delimited continuations, i/o, stack inspection, proper tail-recursion, and lazy evaluation. Most of the machines already exist but have been obtained independently and are only indirectly related to the corresponding calculi. All of the calculi are new and they make it possible to directly reason about the execution of the corresponding machines. In connection with the functional correspondence between evaluation functions and abstract machines initiated by Reynolds, the present syntactic correspondence makes it possible to construct reduction-free normalization functions out of reduction-based ones, which was an open problem in the area of normalization by evaluation.