Revised report on the algorithmic language scheme
ACM SIGPLAN Notices
GL—a denotational testbed with continuations and partial continuations as first-class objects
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Embedding continuations in procedural objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Abstract continuations: a mathematical semantics for handling full jumps
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Intensions and extensions in a reflective tower
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Stores and partial continuations as first-class objects in a language and its environment
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The theory and practice of first-class prompts
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Continuation-passing, closure-passing style
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Computational lambda-calculus and monads
Proceedings of the Fourth Annual Symposium on Logic in computer science
Control delimiters and their hierarchies
Lisp and Symbolic Computation
Constructing Call-by-Value Continuation Semantics
Journal of the ACM (JACM)
A bonus from van Wijngaarden's device
Communications of the ACM
A Theory of Programming Language Semantics
A Theory of Programming Language Semantics
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
On Some Semantic Issues in the Reflective Tower
Proceedings of the 5th 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
Declarative Continuations: an Investigation of Duality in Programming Language Semantics
Category Theory and Computer Science
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
Lambda: The Ultimate Imperative
Lambda: The Ultimate Imperative
Rabbit: A Compiler for Scheme
Reasoning with continuations II: full abstraction for models of control
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
A dynamic extent control operator for partial continuations
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Models of continuations without continuations
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compiling inheritance using partial evaluation
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
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
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Sound rules for parallel evaluation of a functional language callcc
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A library of high level control operators
ACM SIGPLAN Lisp Pointers
Continuation-based partial evaluation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Proceedings of the first ACM SIGPLAN international conference on Functional programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type-directed partial evaluation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type-directed, on-line, partial evaluator for a polymorphic language
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Online-and-offline partial evaluation (extended abstract): a mixed approach
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
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
Online partial evaluation for shift and reset
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
A Hybrid Approach to Online and Offline Partial Evaluation
Higher-Order and Symbolic Computation
Final shift for call/cc:: direct implementation of shift and reset
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Binding-time analysis for both static and dynamic expressions
New Generation Computing - Partial evaluation and program transformation
Safe-for-Space Threads in Standard ML
Higher-Order and Symbolic Computation
A Syntactic Theory of Dynamic Binding
Higher-Order and Symbolic Computation
Portable implementation of continuation operators in imperative languages by exception handling
Advances in exception handling techniques
An Operational Investigation of the CPS Hierarchy
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Sharing Continuations: Proofnets for Languages with Explicit Control
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Enforcing Safety Properties Using Type Specialization
ESOP '01 Proceedings of the 10th European Symposium on Programming Languages and Systems
Type-Directed Partial Evaluation
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
Binding-Time Analysis for Both Static and Dynamic Expressions
SAS '99 Proceedings of the 6th International Symposium on Static Analysis
Portable Implementation of Continuation Operators in Imperative Languages by Exception Handling
Advances in Exception Handling Techniques (the book grow out of a ECOOP 2000 workshop)
A Type-Theoretic Study on Partial Continuations
TCS '00 Proceedings of the International Conference IFIP on Theoretical Computer Science, Exploring New Frontiers of Theoretical Informatics
Normalization and Partial Evaluation
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
A sound and complete axiomatization of delimited continuations
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Extensional normalisation and type-directed partial evaluation for typed lambda calculus with sums
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Syntactic accidents in program analysis: on the impact of the CPS transformation
Journal of Functional Programming
CPS in little pieces: composing partial continuations
Journal of Functional Programming
Combinators for program generation
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
A type-theoretic foundation of continuations and prompts
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Backtracking, interleaving, and terminating monad transformers: (functional pearl)
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
On the dynamic extent of delimited continuations
Information Processing Letters
THEORETICAL PEARL: A simple proof of a folklore theorem about delimited control
Journal of Functional Programming
On the static and dynamic extents of delimited continuations
Science of Computer Programming
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A syntactic correspondence between context-sensitive calculi and abstract machines
Theoretical Computer Science
On the relations between monadic semantics
Theoretical Computer Science
Relating complexity and precision in control flow analysis
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Adding delimited and composable control to a production programming environment
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
A static simulation of dynamic delimited control
Higher-Order and Symbolic Computation
Axioms for control operators in the CPS hierarchy
Higher-Order and Symbolic Computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Adapting functional programs to higher order logic
Higher-Order and Symbolic Computation
Lazy evaluation and delimited control
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Shifting the stage: staging with delimited control
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Introspecting continuations in order to update active code
Proceedings of the 1st International Workshop on Hot Topics in Software Upgrades
Science of Computer Programming
Embedded Probabilistic Programming
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
A Context-based Approach to Proving Termination of Evaluation
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Lazy continuations for Java virtual machines
PPPJ '09 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
Context-based proofs of termination for typed delimited-control operators
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Polarity sensitivity and evaluation order in type-logical grammar
HLT-NAACL-Short '04 Proceedings of HLT-NAACL 2004: Short Papers
On the dynamic extent of delimited continuations
Information Processing Letters
Higher-Order and Symbolic Computation
A type-theoretic foundation of delimited continuations
Higher-Order and Symbolic Computation
On typing delimited continuations: three new solutions to the printf problem
Higher-Order and Symbolic Computation
Minimal classical logic and control operators
ICALP'03 Proceedings of the 30th international conference on Automata, languages and programming
A new one-pass transformation into monadic normal form
CC'03 Proceedings of the 12th international conference on Compiler construction
A substructural type system for delimited continuations
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
Polymorphic delimited continuations
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
Inverse scope as metalinguistic quotation in operational semantics
JSAI'07 Proceedings of the 2007 conference on New frontiers in artificial intelligence
Typed dynamic control operators for delimited continuations
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Integrating partial evaluators into interpreters
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
From reduction-based to reduction-free normalization
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Equational axiomatization of call-by-name delimited control
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Functional derivation of a virtual machine for delimited continuations
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
6th international workshop on logic and engineering of natural language semantics (LENLS 6)
JSAI-isAI'09 Proceedings of the 2009 international conference on New frontiers in artificial intelligence
Representing covert movements by delimited continuations
JSAI-isAI'09 Proceedings of the 2009 international conference on New frontiers in artificial intelligence
Towards deriving type systems and implementations for coroutines
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
The calculus of responsibility and commitment
Ludics, dialogue and interaction
From type checking by recursive descent to type checking with an abstract machine
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
Typing control operators in the CPS hierarchy
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
Covert movement in logical grammar
Logic and grammar
Modular rollback through control logging: a pair of twin functional pearls
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Subtyping delimited continuations
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Shifting the stage: Staging with delimited control
Journal of Functional Programming
A rational deconstruction of landin's SECD machine
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
A rational deconstruction of landin's j operator
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
A fine-grained join point model for more reusable aspects
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Standardization and böhm trees for Λµ-calculus
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
A hierarchy for delimited continuations in call-by-name
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
Polymorphic multi-stage language with control effects
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Böhm theorem and Böhm trees for the Λμ-calculus
Theoretical Computer Science
Delimited control in OCaml, abstractly and concretely
Theoretical Computer Science
A systematic approach to delimited control with multiple prompts
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Applicative bisimulations for delimited-control operators
FOSSACS'12 Proceedings of the 15th international conference on Foundations of Software Science and Computational Structures
Normal form bisimulations for delimited-control operators
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Kan extensions for program optimisation or: art and dan explain an old trick
MPC'12 Proceedings of the 11th international conference on Mathematics of Program Construction
Constraining delimited control with contracts
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Formalizing a correctness property of a type-directed partial evaluator
Proceedings of the ACM SIGPLAN 2014 Workshop on Programming Languages meets Program Verification
The recursive polarized dual calculus
Proceedings of the ACM SIGPLAN 2014 Workshop on Programming Languages meets Program Verification
Combinators for impure yet hygienic code generation
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.02 |
The last few years have seen a renewed interest in continuations for expressing advanced control structures in programming languages, and new models such as Abstract Continuations have been proposed to capture these dimensions. This article investigates an alternative formulation, exploiting the latent expressive power of the standard continuation-passing style (CPS) instead of introducing yet other new concepts. We build on a single foundation: abstracting control as a hierarchy of continuations, each one modeling a specific language feature as acting on nested evaluation contexts.We show how iterating the continuation-passing conversion allows us to specify a wide range of control behavior. For example, two conversions yield an abstraction of Prolog-style backtracking. A number of other constructs can likewise be expressed in this framework; each is defined independently of the others, but all are arranged in a hierarchy making any interactions between them explicit.This approach preserves all the traditional results about CPS, e.g., its evaluation order independence. Accordingly, our semantics is directly implementable in a call-by-value language such as Scheme or ML. Furthermore, because the control operators denote simple, typable lambda-terms in CPS, they themselves can be statically typed. Contrary to intuition, the iterated CPS transformation does not yield huge results: except where explicitly needed, all continuations beyond the first one disappear due to the extensionality principle (&eegr;-reduction).Besides presenting a new motivation for control operators, this paper also describes an improved conversion into applicative-order CPS. The conversion operates in one pass by performing all administrative reductions at translation time; interestingly, it can be expressed very concisely using the new control operators. The paper also presents some examples of nondeterministic programming in direct style.