𝔖 Bobbio Scriptorium
✦   LIBER   ✦

[ACM Press Proceeding of the 13th ACM SIGPLAN international conference - Victoria, BC, Canada (2008.09.20-2008.09.28)] Proceeding of the 13th ACM SIGPLAN international conference on Functional programming - ICFP '08 - Defunctionalized interpreters for programming languages

✍ Scribed by Danvy, Olivier


Book ID
118239141
Publisher
ACM Press
Year
2008
Weight
223 KB
Volume
0
Category
Article
ISBN
1595939199

No coin nor oath required. For personal study only.

✦ Synopsis


This document illustrates how functional implementations of formal semantics (structural operational semantics, reduction semantics, small-step and big-step abstract machines, natural semantics, and denotational semantics) can be transformed into each other. These transformations were foreshadowed by Reynolds in "Definitional Interpreters for Higher-Order Programming Languages" for functional implementations of denotational semantics, natural semantics, and big-step abstract machines using closure conversion, CPS transformation, and defunctionalization. Over the last few years, the author and his students have further observed that functional implementations of small-step and of big-step abstract machines are related using fusion by fixed-point promotion and that functional implementations of reduction semantics and of smallstep abstract machines are related using refocusing and transition compression. It furthermore appears that functional implementations of structural operational semantics and of reduction semantics are related as well, also using CPS transformation and defunctionalization. This further relation provides an element of answer to Felleisen's conjecture that any structural operational semantics can be expressed as a reduction semantics: for deterministic languages, a reduction semantics is a structural operational semantics in continuation style, where the reduction context is a defunctionalized continuation. As the defunctionalized counterpart of the continuation of a one-step reduction function, a reduction context represents the rest of the reduction, just as an evaluation context represents the rest of the evaluation since it is the defunctionalized counterpart of the continuation of an evaluation function.


πŸ“œ SIMILAR VOLUMES