Abstract continuations: a mathematical semantics for handling full jumps
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
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
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Reasoning with continuations II: full abstraction for models of control
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Representing control in the presence of first-class continuations
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Typing first-class continuations in ML
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A dynamic extent control operator for partial continuations
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
CML: A higher concurrent language
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Notions of computation and monads
Information and Computation
The revised report on the syntactic theories of sequential control and state
Theoretical Computer Science
Reasoning about programs in continuation-passing style.
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
Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Delimiting the scope of effects
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Building interpreters by composing monads
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Monads and composable continuations
Lisp and Symbolic Computation
Constructing Call-by-Value Continuation Semantics
Journal of the ACM (JACM)
Revised report on the algorithmic language scheme
ACM SIGPLAN Lisp Pointers
On the Relation between Direct and Continuation Semantics
Proceedings of the 2nd Colloquium on Automata, Languages and Programming
Proceedings of the 1992 Glasgow Workshop on Functional Programming
Continuation Semantics in Typed Lambda-Calculi (Summary)
Proceedings of the Conference on Logic of Programs
Continuation-based partial evaluation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A generalization of exceptions and control in ML-like languages
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
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
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
ACM Computing Surveys (CSUR)
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
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
The second Futamura projection for type-directed partial evaluation
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Online partial evaluation for shift and reset
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Cost recurrences for DML programs
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
A Hybrid Approach to Online and Offline Partial Evaluation
Higher-Order and Symbolic Computation
The Second Futamura Projection for Type-Directed 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
Revised Report on the Algorithmic Language Scheme
Higher-Order and Symbolic Computation
Retraction Approach to CPS Transform
Higher-Order and Symbolic Computation
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
Type-Directed Partial Evaluation
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
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
A functional correspondence between evaluators and abstract machines
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
A sound and complete axiomatization of delimited continuations
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Implementing collection classes with monads
Mathematical Structures in Computer Science
A computational formalization for partial evaluation
Mathematical Structures in Computer Science
Combinators for program generation
Journal of Functional Programming
What is a purely functional language?
Journal of Functional Programming
A type-theoretic foundation of continuations and prompts
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
On the dynamic extent of delimited continuations
Information Processing Letters
On the static and dynamic extents of delimited continuations
Science of Computer Programming
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Theoretical Computer Science - Applied semantics: Selected topics
Combining algebraic effects with continuations
Theoretical Computer Science
On the relations between monadic semantics
Theoretical Computer Science
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
An approach to call-by-name delimited continuations
Proceedings of the 35th 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
Extending the loop language with higher-order procedural variables
ACM Transactions on Computational Logic (TOCL)
Embedded Probabilistic Programming
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
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
Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages
Journal of Functional Programming
On the dynamic extent of delimited continuations
Information Processing Letters
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 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
Typed dynamic control operators for delimited continuations
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Multi-stage programming with functors and monads: Eliminating abstraction overhead from generic code
Science of Computer Programming
Typing control operators in the CPS hierarchy
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
Relating computational effects by ⊤⊤-lifting
ICALP'11 Proceedings of the 38th international conference on Automata, languages and programming - Volume Part II
Lightweight monadic programming in ML
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
An equivalence-preserving CPS translation via multi-language semantics
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Reuse of continuation-based control-flow abstractions
Proceedings of the 2nd workshop on Free composition @ onward! 2011
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
Reducibility and ⊤⊤-lifting for computation types
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Multi-stage programming with functors and monads: eliminating abstraction overhead from generic code
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
AMAST'06 Proceedings of the 11th international conference on Algebraic Methodology and Software Technology
A rational deconstruction of landin's j operator
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
Standardization and böhm trees for Λµ-calculus
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Delimited control in OCaml, abstractly and concretely: system description
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
Relating computational effects by ττ-lifting
Information and Computation
On monadic parametricity of second-order functionals
FOSSACS'13 Proceedings of the 16th international conference on Foundations of Software Science and Computation Structures
Hoare-style reasoning with (algebraic) continuations
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Extensible effects: an alternative to monad transformers
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Hi-index | 0.00 |
We show that any monad whose unit and extension operations are expressible as purely functional terms can be embedded in a call-by-value language with “composable continuations”. As part of the development, we extend Meyer and Wand's characterization of the relationship between continuation-passing and direct style to one for continuation-passing vs. general “monadic” style. We further show that the composable-continuations construct can itself be represented using ordinary, non-composable first-class continuations and a single piece of state. Thus, in the presence of two specific computational effects - storage and escapes - any expressible monadic structure (e.g., nondeterminism as represented by the list monad) can be added as a purely definitional extension, without requiring a reinterpretation of the whole language. The paper includes an implementation of the construction (in Standard ML with some New Jersey extensions) and several examples.