The categorical abstract machine
Proc. of a conference on Functional programming languages and computer architecture
TIM: A simple, lazy abstract machine to execute supercombinators
Proc. of a conference on Functional programming languages and computer architecture
Optimal derivations in weak lambda-calculi and in orthogonal term rewriting systems
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An abstract frame work for environment machines
Theoretical Computer Science
Compiling with continuations
A natural semantics for lazy evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From λσ to λν: a journey through calculi of explicit substitutions
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A call-by-need lambda calculus
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Confluence properties of weak and strong calculi of explicit substitutions
Journal of the ACM (JACM)
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Towards a Taxonomy of Functional Languages Implementations
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
A Lambda-Calculus Structure Isomorphic to Gentzen-Style Sequent Calculus Structure
CSL '94 Selected Papers from the 8th International Workshop on Computer Science Logic
Higher-order Unification via Explicit Substitutions
LICS '95 Proceedings of the 10th Annual IEEE Symposium on Logic in Computer Science
Compiling a functional language
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
A compiled implementation of strong reduction
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Explicit Substitutions and Programming Languages
Proceedings of the 19th Conference on Foundations of Software Technology and Theoretical Computer Science
Closed Reductions in the lambda-Calculus
CSL '99 Proceedings of the 13th International Workshop and 8th Annual Conference of the EACSL on Computer Science Logic
A symmetric approach to compilation and decompilation
The essence of computation
A functional correspondence between evaluators and abstract machines
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Compilation and equivalence of imperative objects
Journal of Functional Programming
A functional correspondence between call-by-need evaluators and lazy abstract machines
Information Processing Letters
Closed reduction: explicit substitutions without $\alpha$-conversion
Mathematical Structures in Computer Science
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)
Strongly reducing variants of the Krivine abstract machine
Higher-Order and Symbolic Computation
Coinductive big-step operational semantics
Information and Computation
Biorthogonality, step-indexing and compiler correctness
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Efficient reductions with director strings
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
A parallel virtual machine for bulk synchronous parallel ML
ICCS'03 Proceedings of the 1st international conference on Computational science: PartI
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
From natural semantics to abstract machines
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Coinductive big-step operational semantics
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
An operational foundation for the tactic language of Coq
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
Hi-index | 0.00 |
We define a weak λ-calculus, λσw, as a subsystem of the full λ-calculus with explicit substitutions λσ⇑. We claim that λσw could be the archetypal output language of functional compilers, just as the λ-calculus is their universal input language. Furthermore, λσ⇑ could be the adequate theory to establish the correctness of functional compilers. Here we illustrate these claims by proving the correctness of four simplified compilers and runtime systems modelled as abstract machines. The four machines we prove are the Krivine machine, the SECD, the FAM and the CAM. Thus, we give the first formal proofs of Cardelli's FAM and of its compiler.