Towards Compatible and Interderivable Semantic Specifications for the Scheme Programming Language, Part I: Denotational Semantics, Natural Semantics, and Abstract Machines

@inproceedings{Danvy2009TowardsCA,
  title={Towards Compatible and Interderivable Semantic Specifications for the Scheme Programming Language, Part I: Denotational Semantics, Natural Semantics, and Abstract Machines},
  author={Olivier Danvy},
  booktitle={Semantics and Algebraic Specification},
  year={2009}
}
  • O. Danvy
  • Published in
    Semantics and Algebraic…
    12 July 2008
  • Computer Science
We derive two big-step abstract machines, a natural semantics, and the valuation function of a denotational semantics based on the small-step abstract machine for Core Scheme presented by Clinger at PLDI'98. Starting from a functional implementation of this smallstep abstract machine, (1) we fuse its transition function with its driver loop, obtaining the functional implementation of a big-step abstract machine; (2) we adjust this big-step abstract machine so that it is in defunctionalized form… 
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
Refunctionalization of abstract abstract machines: bridging the gap between abstract abstract machines and abstract definitional interpreters (functional pearl)
TLDR
Remarkably, it is revealed how precise call/return matching in control-flow analysis can be obtained by refunctionalizing a small-step abstract abstract machine with proper caching.
On Computational Small Steps and Big Steps: Refocusing for Outermost Reduction
TLDR
This dissertation identifies that backward overlapping reduction rules in the small-step semantics cause the refocusing step of the syntactic correspondence to be inapplicable and proposes two solutions to overcome this in-applicability: backtracking and rule generalization.
From Reduction-Based to Reduction-Free Normalization
  • O. Danvy
  • Computer Science
    Advanced Functional Programming
  • 2008
From Push/Enter to Eval/Apply by Program Transformation
TLDR
This paper explores the following observation: when considering functions with multiple arguments, the stack under the push/enter and eval/apply conventions behaves similarly to two particular implementations of the list datatype: the regular cons-list and a form of lists with lazy concatenation respectively.
On graph rewriting, reduction, and evaluation in the presence of cycles
  • Ian Zerny
  • Computer Science
    High. Order Symb. Comput.
  • 2013
We inter-derive two prototypical styles of graph reduction: reduction machines à la Turner and graph rewriting systems à la Barendregt et al. To this end, we adapt Danvy et al.’s mechanical program

References

SHOWING 1-10 OF 91 REFERENCES
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
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.
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.
Refocusing in Reduction Semantics
TLDR
The construction of a refocus function shows how to mechanically obtain an abstract machine out of a reduction semantics, which was done previously on a case-by-case basis.
Scheme: A Interpreter for Extended Lambda Calculus
TLDR
A completely annotated interpreter for SCHEME, written in MacLISP, is presented to acquaint programmers with the tricks of the trade of implementing non-recursive control structures in a recursive language like LISP.
The Theory and Practice of Programming Languages with Delimited Continuations
TLDR
It is formalize and prove the folklore theorem that the static delimitedcontrol operators shift and reset can be simulated in terms of the dynamic delimited-control operators control and prompt, and it is shown that breadth-first traversal exploits the difference between shift and control.
An Investigation of Abadi and Cardelli's Untyped Calculus of Objects
TLDR
It is proved that the two calculi are computationally equivalent, and the two abstract machines are strongly bisimilar, which establishes the equivalence of the natural semantics and the reduction semantics of the new calculus.
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
...
...