Towards compatible and interderivable semantic specifications for the scheme programming language, part I: denotational semantics, natural semantics, and abstract machines

  • Authors:
  • Olivier Danvy

  • Affiliations:
  • 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 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, obtaining the functional implementation of a second big-step abstract machine; (3) we refunctionalize this adjusted abstract machine, obtaining the functional implementation of a natural semantics in continuation-passing style; and (4) we closure-unconvert this natural semantics, obtaining a compositional continuation-passing evaluation function which we identify as the functional implementation of a denotational semantics in continuation-passing style. We then compare this valuation function with that of Clinger's original denotational semantics of Scheme.