Towards compatible and interderivable semantic specifications for the scheme programming language, part II: reduction semantics and abstract machines

  • Authors:
  • Małgorzata Biernacka;Olivier Danvy

  • Affiliations:
  • Institute of Computer Science, University of Wroclaw, Wroclaw, Poland;Department of Computer Science, Aarhus University, Aarhus N, Denmark

  • Venue:
  • Semantics and algebraic specification
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 corresponds to that of the abstract machine for Core Scheme presented by Clinger at PLDI'98, including first-class continuations. Starting from this reduction semantics, (1) we refocus it into a small-step abstract machine; (2) we fuse the transition function of this abstract machine with its driver loop, obtaining a big-step abstract machine which is staged; (3) we compress its corridor transitions, obtaining an eval/continue abstract machine; and (4) we unfold its ground closures, which yields an abstract machine that essentially coincides with Clinger's machine. This lambda-calculus with explicit substitutions therefore aptly accounts for Core Scheme, including Clinger's permutations and unpermutations.