A syntactic correspondence between context-sensitive calculi and abstract machines
We present a systematic construction of environment-based abstract machines from context-sensitive calculi of explicit substitutions, and we illustrate it with ten calculi and machines for applicative order with an abort operation, normal order with generalized reduction and call/cc, the lambda-mu-calculus, delimited continuations, stack inspection, proper tail-recursion, and lazy evaluation. Most of the machines already exist but they have been obtained independently and are only indirectly related to the corresponding calculi. All of the calculi are new and they make it possible directly to reason about the execution of the corresponding machines. (c) 2007 Elsevier B.V. All rights reserved.
explicit substitutions delimited continuations continuations stack inspection refocusing reduction semantics contexts defunctionalization environment-based machines proper tail recursion