Results 1 -
5 of
5
Towards Compatible and Interderivable Semantic Specifications for the Scheme Programming Language, Part I: Denotational Semantics, Natural Semantics, and Abstract Machines
, 2008
"... 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 i ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
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.
Towards Compatible and Interderivable . . . Part I: Denotational Semantics, Natural Semantics, and Abstract Machines
, 2008
"... ..."
On Inter-deriving Small-step and Big-step Semantics: A Case Study for Storeless Call-by-need Evaluation
"... Starting from the standard call-by-need reduction for the λ-calculus that is common to Ariola, Felleisen, Maraist, Odersky, and Wadler, we inter-derive a series of hygienic semantic artifacts: a reduction-free storeless abstract machine, a continuation-passing evaluation function, and what appears t ..."
Abstract
- Add to MetaCart
Starting from the standard call-by-need reduction for the λ-calculus that is common to Ariola, Felleisen, Maraist, Odersky, and Wadler, we inter-derive a series of hygienic semantic artifacts: a reduction-free storeless abstract machine, a continuation-passing evaluation function, and what appears to be the first heapless natural semantics for callby-need evaluation. Furthermore we observe that the evaluation function implementing this natural semantics is in defunctionalized form. The refunctionalized counterpart of this evaluation function implements an extended direct semantics in the sense of Cartwright and Felleisen. Overall, the semantic artifacts presented here are simpler than many other such artifacts that have been independently worked out, and which require ingenuity, skill, and independent soundness proofs on a case-by-case basis. They are also simpler to interderive because the inter-derivational tools (e.g., refocusing and defunctionalization) already exist. List of Figures 1 Recomposition of outside-in contexts..................... 11 2 Recomposition of inside-out contexts..................... 11 3 Decomposition of an answer term into itself and of a non-answer term into a potential redex and its evaluation context 12 4 Reduction-based refocusing.......................... 17 5 Reduction-free refocusing........................... 17 6 Storeless abstract machine for call-by-need evaluation........... 18 7 The storeless abstract machine of Figure 6 after transition compression.. 20 8 Heapless natural semantics for call-by-need evaluation........... 23

