A Syntactic Correspondence between Context-Sensitive Calculi and
Abstract Machines
Magorzata Biernacka
July 2005 |
Abstract:
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.
Available as PostScript, PDF, DVI. |