Denotational semantics: a methodology for language development
Denotational semantics: a methodology for language development
Computational lambda-calculus and monads
Proceedings of the Fourth Annual Symposium on Logic in computer science
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
A formulae-as-type notion of control
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Notions of computation and monads
Information and Computation
Compiling with continuations
Reasoning about programs in continuation-passing style.
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Back to direct style II: first-class continuations
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
CPS-transformation after strictness analysis
ACM Letters on Programming Languages and Systems (LOPLAS)
Proofs by structural induction using partial evaluation
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
The essence of compiling with continuations
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Separating stages in the continuation-passing style transformation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Sound rules for parallel evaluation of a functional language callcc
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
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
Polymorphic type assignment and CPS conversion
Lisp and Symbolic Computation - Special issue on continuations—part I
Thunks: a way of compiling procedure statements with some comments on procedure declarations
Communications of the ACM
Revised report on the algorithm language ALGOL 60
Communications of the ACM
Principles of Programming Languages
Principles of Programming Languages
Correctness of Procedure Representations in Higher-Order Assembly Language
Proceedings of the 7th International Conference on Mathematical Foundations of Programming Semantics
On the Transformation between Direct and Continuation Semantics
Proceedings of the 9th International Conference on Mathematical Foundations of Programming Semantics
On the Relation between Direct and Continuation Semantics
Proceedings of the 2nd Colloquium on Automata, Languages and Programming
The Theory and Practice of Transforming Call-by-need into Call-by-value
Proceedings of the Fourth 'Colloque International sur la Programmation' on International Symposium on Programming
Continuation Semantics in Typed Lambda-Calculi (Summary)
Proceedings of the Conference on Logic of Programs
Definitional interpreters for higher-order programming languages
ACM '72 Proceedings of the ACM annual conference - Volume 2
Proceedings of ACM conference on Proving assertions about programs
Extracting constructive content from classical proofs
Extracting constructive content from classical proofs
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Type-directed partial evaluation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Two for the price of one: composing partial evaluation and compilation
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Type specialisation for imperative languages
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
ACM Computing Surveys (CSUR)
ACM Transactions on Programming Languages and Systems (TOPLAS)
A systematic study of functional language implementations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Foundations for partial evaluation of functional programs with computational effects
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
The marriage of effects and monads
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Syntactic accidents in program analysis: on the impact of the CPS transformation
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
The marriage of effects and monads
ACM Transactions on Computational Logic (TOCL)
Conservation and uniform normalization in Lambda calculi with erasing reductions
Information and Computation
Retraction Approach to CPS Transform
Higher-Order and Symbolic Computation
Definitional Interpreters Revisited
Higher-Order and Symbolic Computation
CPS Translations and Applications: The Cube and Beyond
Higher-Order and Symbolic Computation
Sharing Continuations: Proofnets for Languages with Explicit Control
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
A Higher-Order Colon Translation
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
A First-Order One-Pass CPS Transformation
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
A first-order one-pass CPS transformation
Theoretical Computer Science
Locus Solum: From the rules of logic to the logic of rules
Mathematical Structures in Computer Science
A computational formalization for partial evaluation
Mathematical Structures in Computer Science
Syntactic accidents in program analysis: on the impact of the CPS transformation
Journal of Functional Programming
CPS transformation of flow information, Part II: administrative reductions
Journal of Functional Programming
Program specialization for execution monitoring
Journal of Functional Programming
Journal of Functional Programming
Combinators for program generation
Journal of Functional Programming
Monadification of functional programs
Science of Computer Programming - Special issue on program transformation
CPS transformation of beta-redexes
Information Processing Letters
Building up to macroprogramming: an intermediate language for sensor networks
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
Specializing continuations a model for dynamic join points
Proceedings of the 6th workshop on Foundations of aspect-oriented languages
Compiling with continuations, continued
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Designing aspects for side-effect localization
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Generic Protocol Configuration and Execution within a Coalition
WI-IAT '08 Proceedings of the 2008 IEEE/WIC/ACM International Conference on Web Intelligence and Intelligent Agent Technology - Volume 02
CC '09 Proceedings of the 18th International Conference on Compiler Construction: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Monadic Translation of Intuitionistic Sequent Calculus
Types for Proofs and Programs
CPS transformation of beta-redexes
Information Processing Letters
Monad translating inductive and coinductive types
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
A new one-pass transformation into monadic normal form
CC'03 Proceedings of the 12th international conference on Compiler construction
Three syntactic theories for combinatory graph reduction
LOPSTR'10 Proceedings of the 20th international conference on Logic-based program synthesis and transformation
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A rational deconstruction of landin's SECD machine
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
Shrinking reductions in SML.NET
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
Reducibility and ⊤⊤-lifting for computation types
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Side-effect localization for lazy, purely functional languages via aspects
Higher-Order and Symbolic Computation
Three syntactic theories for combinatory graph reduction
ACM Transactions on Computational Logic (TOCL)
Hi-index | 0.00 |
We unify previous work on the continuation-passing style (CPS) transformations in a generic framework based on Moggi's computational meta-language. This framework is used to obtain CPS transformations for a variety of evaluation strategies and to characterize the corresponding administrative reductions and inverse transformations. We establish generic formal connections between operational semantics and equational theories. Formal properties of transformations for specific evaluation orders follow as corollaries.Essentially, we factor transformations through Moggi's computational meta-language. Mapping &lgr;-terms into the meta-language captures computation properties (e.g., partiality, strictness) and evaluation order explicitly in both the term and the type structure of the meta-language. The CPS transformation is then obtained by applying a generic transformation from terms and types in the meta-language to CPS terms and types, based on a typed term representation of the continuation monad. We prove an adequacy property for the generic transformation and establish an equational correspondence between the meta-language and CPS terms.These generic results generalize Plotkin's seminal theorems, subsume more recent results, and enable new uses of CPS transformations and their inverses. We discuss how to aply these results to compilation.