Denotational semantics: a methodology for language development
Denotational semantics: a methodology for language development
The categorical abstract machine
Science of Computer Programming
A short proof of the lexical addressing algorithm
Information Processing Letters
An abstract machine for Lambda-terms normalization
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Notions of computation and monads
Information and Computation
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
CPS-transformation after strictness analysis
ACM Letters on Programming Languages and Systems (LOPLAS)
The essence of compiling with continuations
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Categorical combinators, sequential algorithms, and functional programming (2nd ed.)
Categorical combinators, sequential algorithms, and functional programming (2nd ed.)
ESOP'92 Selected papers of the symposium on Fourth European symposium on programming
Reasoning about programs in continuation-passing style
Lisp and Symbolic Computation - Special issue on continuations—part I
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Essentials of programming languages (2nd ed.)
Essentials of programming languages (2nd ed.)
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
A Theory of Programming Language Semantics
A Theory of Programming Language Semantics
A compiled implementation of strong reduction
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Definitional Interpreters for Higher-Order Programming Languages
Higher-Order and Symbolic Computation
Fundamental Concepts in Programming Languages
Higher-Order and Symbolic Computation
On the Transformation between Direct and Continuation Semantics
Proceedings of the 9th International Conference on Mathematical Foundations of Programming Semantics
Design and Correctness of Program Transformations Based on Control-Flow Analysis
TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
The Art of the Interpreter or, The Modularity Complex (Parts Zero, One, and Two)
The Art of the Interpreter or, The Modularity Complex (Parts Zero, One, and Two)
Functional runtime systems within the lambda-sigma calculus
Journal of Functional Programming
A functional correspondence between call-by-need evaluators and lazy abstract machines
Information Processing Letters
Theoretical Computer Science - Applied semantics: Selected topics
Specializing continuations a model for dynamic join points
Proceedings of the 6th workshop on Foundations of aspect-oriented languages
A syntactic correspondence between context-sensitive calculi and abstract machines
Theoretical Computer Science
A concrete framework for environment machines
ACM Transactions on Computational Logic (TOCL)
State-transition machines, revisited
Higher-Order and Symbolic Computation
Improving the lazy Krivine machine
Higher-Order and Symbolic Computation
Strongly reducing variants of the Krivine abstract machine
Higher-Order and Symbolic Computation
On the correctness of the Krivine machine
Higher-Order and Symbolic Computation
A static simulation of dynamic delimited control
Higher-Order and Symbolic Computation
Clowns to the left of me, jokers to the right (pearl): dissecting data structures
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Information Processing Letters
Defunctionalized interpreters for programming languages
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Inter-deriving Semantic Artifacts for Object-Oriented Programming
WoLLIC '08 Proceedings of the 15th international workshop on Logic, Language, Information and Computation
New Developments in Environment Machines
Electronic Notes in Theoretical Computer Science (ENTCS)
The worker/wrapper transformation
Journal of Functional Programming
From natural semantics to c: A formal derivation of two stg machines
Journal of Functional Programming
Science of Computer Programming
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
A Resource-Aware Semantics and Abstract Machine for a Functional Language with Explicit Deallocation
Electronic Notes in Theoretical Computer Science (ENTCS)
The Linear Logical Abstract Machine
Electronic Notes in Theoretical Computer Science (ENTCS)
A substructural type system for delimited continuations
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
Deriving compilers and virtual machines for a multi-level language
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
Inter-deriving semantic artifacts for object-oriented programming
Journal of Computer and System Sciences
From reduction-based to reduction-free normalization
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Functional derivation of a virtual machine for delimited continuations
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Abstract interpreters for free
SAS'10 Proceedings of the 17th international conference on Static analysis
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
From type checking by recursive descent to type checking with an abstract machine
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
Three syntactic theories for combinatory graph reduction
LOPSTR'10 Proceedings of the 20th international conference on Logic-based program synthesis and transformation
Subtyping delimited continuations
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
From natural semantics to abstract machines
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
A rational deconstruction of landin's SECD machine
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
A rational deconstruction of landin's j operator
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
Theoretical Computer Science
MSFP'06 Proceedings of the 2006 international conference on Mathematically Structured Functional Programming
Constructing customized interpreters from reusable evaluators using GAME
SC'12 Proceedings of the 11th international conference on Software Composition
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Deriving the full-reducing Krivine machine from the small-step operational semantics of normal order
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
An operational foundation for the tactic language of Coq
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Engineering definitional interpreters
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
A synthetic operational account of call-by-need evaluation
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
A logical correspondence between natural semantics and abstract machines
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Three syntactic theories for combinatory graph reduction
ACM Transactions on Computational Logic (TOCL)
Deriving interpretations of the gradually-typed lambda calculus
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
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.