BRICS Report Series en-US <p><a href="" rel="license"><img src="" alt="Creative Commons License" /></a></p><p>Articles published in DAIMI PB are licensed under a <a href="" rel="license">Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License</a>.</p> (Søren Poulsen) (Søren Poulsen) Mon, 07 Jan 2008 00:00:00 +0100 OJS 60 Towards Compatible and Interderivable Semantic Specifications for the Scheme Programming Language, Part I: Denotational Semantics, Natural Semantics, and Abstract Machines 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 small-step 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 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 style. We then compare this valuation function with that of Clinger's original denotational semantics of Scheme. Olivier Danvy Copyright (c) 2015 BRICS Report Series Sat, 12 Jul 2008 00:00:00 +0200