A syntactic correspondence between context-sensitive calculi and abstract machines

@article{Biernacka2007ASC,
  title={A syntactic correspondence between context-sensitive calculi and abstract machines},
  author={Malgorzata Biernacka and Olivier Danvy},
  journal={Theor. Comput. Sci.},
  year={2007},
  volume={375},
  pages={76-108}
}

Figures from this paper

A call-by-name lambda-calculus machine
  • J. Krivine
  • Computer Science
    High. Order Symb. Comput.
  • 2007
TLDR
A particularly simple lazy lambda-calculus machine, introduced twenty-five years ago, is presented, conceived in order to execute programs obtained from mathematical proofs, by means of the Curry-Howard correspondence.
Towards Compatible and Interderivable Semantic Specifications for the Scheme Programming Language, Part II: Reduction Semantics and Abstract Machines
We present a context-sensitive reduction semantics for a lambda-calculus with explicit substitutions and we show that the functional implementation of this small-step semantics mechanically
Monadic abstract interpreters
TLDR
This paper develops a systematic method for transforming a concrete semantics into a monadically-parameterized abstract machine and shows context-sensitivity, polyvariance, flow-s sensitivity, reachability-pruning, heap-cloning and cardinality-bounding to be independent of any particular semantics.
A concrete framework for environment machines
TLDR
Back to Curien's original calculus of closures (an early calculus with explicit substitutions), it is extended minimally so that it can also express one-step reduction strategies, and a series of environment machines are derived from the specification of two one- step reduction strategies for the lambda-calculus.
A complete, co-inductive syntactic theory of sequential control and state
TLDR
It is demonstrated that the associated bisimulation proof principle is easy to use and that it is a powerful tool for proving equivalences between recursive imperative higher-order programs.
An Operational Foundation for Delimited Continuations in the CPS Hierarchy
We present an abstract machine and a reduction semantics for the lambda-calculus extended with control operators that give access to delimited continuations in the CPS hierarchy. The abstract machine
Automating Derivations of Abstract Machines from Reduction Semantics: - A Generic Formalization of Refocusing in Coq
TLDR
A generic formalization of the refocusing transformation for functional languages in the Coq proof assistant is presented, allowing for mechanical transformation of an evaluator implementing a reduction semantics into an equivalent abstract machine via a succession of simple program transformations.
Inter-deriving semantic artifacts for object-oriented programming
Defunctionalized Interpreters for Call-by-Need Evaluation
TLDR
This work inter-derive a series of hygienic semantic artifacts: a reduction-free stateless abstract machine, a continuation-passing evaluation function, and what appears to be the first heapless natural semantics for call-by-need evaluation.
...
...

References

SHOWING 1-10 OF 152 REFERENCES
A call-by-name lambda-calculus machine
  • J. Krivine
  • Computer Science
    High. Order Symb. Comput.
  • 2007
TLDR
A particularly simple lazy lambda-calculus machine, introduced twenty-five years ago, is presented, conceived in order to execute programs obtained from mathematical proofs, by means of the Curry-Howard correspondence.
Deriving a Lazy Abstract Machine
TLDR
The machine derived is a lazy version of Krivine's abstract machine, which was originally designed for call-by-name evaluation, and is extended with datatype constructors and base values, so the final machine implements all dynamic aspects of a lazy functional language.
A call-by-need lambda calculus
TLDR
This paper derives an equational characterization of call-by-need and proves it correct with respect to the original lambda calculus and is a strictly smaller theory than the lambda calculus.
A concrete framework for environment machines
TLDR
Back to Curien's original calculus of closures (an early calculus with explicit substitutions), it is extended minimally so that it can also express one-step reduction strategies, and a series of environment machines are derived from the specification of two one- step reduction strategies for the lambda-calculus.
From Interpreter to Logic Engine by Defunctionalization
TLDR
A direct-style interpreter of propositional Prolog expressed with control operators for delimited continuations is presented, and Reynolds's defunctionalization that transforms a tail-recursive, continuation-passing interpreter into a transition system, i.e., an abstract machine is presented.
An Abstract Framework for Environment Machines
  • P. Curien
  • Computer Science
    Theor. Comput. Sci.
  • 1991
An Operational Foundation for Delimited Continuations in the CPS Hierarchy
We present an abstract machine and a reduction semantics for the lambda-calculus extended with control operators that give access to delimited continuations in the CPS hierarchy. The abstract machine
A functional correspondence between evaluators and abstract machines
TLDR
The gap between functional evaluators and abstract machines for the λ-calculus is bridged using closure conversion, transformation into continuation-passing style, and defunctionalization, and the Categorical Abstract Machine is considered.
Typing first-class continuations in ML
TLDR
First-class continuations are a powerful tool for implementing sophisticated control constructs like co-routines, processes, backtracking, and asynchronous signals, but it is clear that extensive work is required to integrate continuations fully into the definition of Standard ML.
...
...