ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Notions of computation and monads
Information and Computation
Essentials of programming languages
Essentials of programming languages
Compiling with continuations
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
A generic account of continuation-passing styles
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESOP'92 Selected papers of the symposium on Fourth European symposium on programming
The discoveries of continuations
Lisp and Symbolic Computation - Special issue on continuations—part I
Reasoning about programs in continuation-passing style
Lisp and Symbolic Computation - Special issue on continuations—part I
The structure of continuation-passing styles
The structure of continuation-passing styles
The formal relationship between direct and continuation-passing style optimizing compilers: a synthesis of two paradigms
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proper tail recursion and space efficiency
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Embedding type structure in semantics
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Essentials of programming languages (2nd ed.)
Essentials of programming languages (2nd ed.)
Definitional Interpreters for Higher-Order Programming Languages
Higher-Order and Symbolic Computation
Secure Information Flow via Linear Continuations
Higher-Order and Symbolic Computation
Correctness of Procedure Representations in Higher-Order Assembly Language
Proceedings of the 7th International Conference on Mathematical Foundations of Programming Semantics
Continuation Semantics in Typed Lambda-Calculi (Summary)
Proceedings of the Conference on Logic of Programs
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
The Occurrence of Continuation Parameters in CPS Terms
The Occurrence of Continuation Parameters in CPS Terms
Rabbit: A Compiler for Scheme
The calculi of lambda-nu-cs conversion: a syntactic theory of control and state in imperative higher-order programming languages
Ordered linear logic and applications
Ordered linear logic and applications
CPS transformation of flow information
Journal of Functional Programming
Offline partial evaluation for shift and reset
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Specializing continuations a model for dynamic join points
Proceedings of the 6th workshop on Foundations of aspect-oriented languages
Analyzing the environment structure of higher-order languages using frame strings
Theoretical Computer Science
Compiling with continuations, continued
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Mechanized verification of CPS transformations
LPAR'07 Proceedings of the 14th international conference on Logic for programming, artificial intelligence and reasoning
Ordering multiple continuations on the stack
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Hi-index | 5.23 |
We present a new transformation of λ-terms into continuation-passing style (CPS). This transformation operates in one pass and is both compositional and first-order. Previous CPS transformations only enjoyed two out of the three properties of being first-order, one-pass, and compositional, but the new transformation enjoys all three properties. It is proved correct directly by structural induction over source terms instead of indirectly with a colon translation, as in Plotkin's original proof. Similarly, it makes it possible to reason about CPS-transformed terms by structural induction over source terms, directly.The new CPS transformation connects separately published approaches to the CPS transformation. It has already been used to state a new and simpler correctness proof of a direct-style transformation, and to develop a new and simpler CPS transformation of control-flow information.