An abstract machine for Lambda-terms normalization
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Categorical combinators, sequential algorithms, and functional programming (2nd ed.)
Categorical combinators, sequential algorithms, and functional programming (2nd ed.)
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
A functional correspondence between evaluators and abstract machines
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
The calculi of lambda-nu-cs conversion: a syntactic theory of control and state in imperative higher-order programming languages
Lightweight fusion by fixed point promotion
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Information Processing Letters
Defunctionalized interpreters for programming languages
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Exploring the Design Space of Higher-Order Casts
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Science of Computer Programming
From reduction-based to reduction-free normalization
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Calculating threesomes, with blame
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
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
Hi-index | 0.00 |
Siek and Garcia (2012) have explored the dynamic semantics of the gradually-typed lambda calculus by means of definitional interpreters and abstract machines. The correspondence between the calculus's mathematically described small-step reduction semantics and the implemented big-step definitional interpreters was left as a conjecture. We prove and generalise Siek and Garcia's conjectures using program transformation. We establish the correspondence between the definitional interpreters and the reduction semantics of a closure-converted gradually-typed lambda calculus that unifies and amends various versions of the calculus. We use a layered approach and two-level continuation-passing style so that the correspondence is parametric on the subsidiary coercion calculus. We have implemented the whole derivation for the eager error-detection policy and the downcast blame-tracking strategy. The correspondence can be established for other choices of error-detection policies and blame-tracking strategies, by plugging in the appropriate artefacts for the particular subsidiary coercion calculus.