A syntactic theory of sequential control
Theoretical Computer Science
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A formulae-as-type notion of control
POPL '90 Proceedings of the 17th 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
Confluence properties of weak and strong calculi of explicit substitutions
Journal of the ACM (JACM)
Functional back-ends within the lambda-sigma calculus
Proceedings of the first ACM SIGPLAN international conference on Functional programming
A systematic study of functional language implementations
ACM Transactions on Programming Languages and Systems (TOPLAS)
A compositional account of the Java virtual machine
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Stack inspection: theory and variants
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Java bytecode as a typed term calculus
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
A Lambda-Calculus Structure Isomorphic to Gentzen-Style Sequent Calculus Structure
CSL '94 Selected Papers from the 8th International Workshop on Computer Science Logic
KGC '93 Proceedings of the Third Kurt Gödel Colloquium on Computational Logic and Proof Theory
Foundational Proof-Carrying Code
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Call-by-value is dual to call-by-name
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Stack-based typed assembly language
Journal of Functional Programming
Classical logic, continuation semantics and abstract machines
Journal of Functional Programming
A functional correspondence between call-by-need evaluators and lazy abstract machines
Information Processing Letters
A proof theory for machine code
ACM Transactions on Programming Languages and Systems (TOPLAS)
A call-by-name lambda-calculus machine
Higher-Order and Symbolic Computation
On the correctness of the Krivine machine
Higher-Order and Symbolic Computation
Classical call-by-need and duality
TLCA'11 Proceedings of the 10th international conference on Typed lambda calculi and applications
Hi-index | 0.00 |
We propose a sequent calculus derived from the λ―μμ˜-calculus of Curien and Herbelin that is expressive enough to directly represent the fine details of program evaluation using typical abstract machines. Not only does the calculus easily encode the usual components of abstract machines such as environments and stacks, but it can also simulate the transition steps of the abstract machine with just a constant overhead. Technically this is achieved by ensuring that reduction in the calculus always happens at a bounded depth from the root of the term. We illustrate these properties by providing shallow encodings of the Krivine (call-by-name) and the CEK (call-by-value) abstract machines in the calculus.