Publication | Closed Access
A functional correspondence between evaluators and abstract machines
141
Citations
31
References
2003
Year
Unknown Venue
Artificial IntelligenceClosure ConversionEngineeringFunctional CorrespondenceFormal VerificationCompilersProgramming LanguagesAbstract MachineAbstract InterpretationComputer ScienceAbstract MachinesFunctional Programming LanguageFunctional ProgrammingAutomated ReasoningFunctional EvaluatorsFormal MethodsMathematical FoundationsIntermediate RepresentationsAbstraction (Computer Science)Lambda Calculus
The authors aim to bridge the gap between functional evaluators and abstract machines for the λ‑calculus, derive key machines, and compare their design spaces, including the Categorical Abstract Machine. They use closure conversion, continuation‑passing style, and defunctionalization to derive Krivine’s and CEK machines from evaluators, and formally compare these machines and the Categorical Abstract Machine. The authors find that deriving Krivine’s machine is simpler than existing approaches, that deriving the CEK machine is novel, and that both machines correspond to call‑by‑name and call‑by‑value facets of a standard evaluator, while also exposing the denotational content of the CLS and SECD machines.
We bridge the gap between functional evaluators and abstract machines for the λ-calculus, using closure conversion, transformation into continuation-passing style, and defunctionalization.We illustrate this approach by deriving Krivine's abstract machine from an ordinary call-by-name evaluator and by deriving an ordinary call-by-value evaluator from Felleisen et al.'s CEK machine. The first derivation is strikingly simpler than what can be found in the literature. The second one is new. Together, they show that Krivine's abstract machine and the CEK machine correspond to the call-by-name and call-by-value facets of an ordinary evaluator for the λ-calculus.We then reveal the denotational content of Hannan and Miller's CLS machine and of Landin's SECD machine. We formally compare the corresponding evaluators and we illustrate some degrees of freedom in the design spaces of evaluators and of abstract machines for the λ-calculus with computational effects.Finally, we consider the Categorical Abstract Machine and the extent to which it is more of a virtual machine than an abstract machine.
| Year | Citations | |
|---|---|---|
Page 1
Page 1