On the static and dynamic extents of delimited continuations

@article{Biernacki2006OnTS,
  title={On the static and dynamic extents of delimited continuations},
  author={Dariusz Biernacki and Olivier Danvy and Chung-chieh Shan},
  journal={Sci. Comput. Program.},
  year={2006},
  volume={60},
  pages={274-297}
}

Figures from this paper

A Type System for Dynamic Delimited Continuations
TLDR
This paper introduces a static type system for “control” and “prompt” which does not use recursive types, and designs its type system based on the dynamic CPS transformation recently proposed by Biernacki, Danvy and Millikin.
A static simulation of dynamic delimited control
Abstract We present a continuation-passing-style (CPS) transformation for some dynamic delimited-control operators, including Felleisen’s $\verb|control|$ and $\verb|prompt|$ , that extends a
A A Dynamic Continuation-Passing Style for Dynamic Delimited
TLDR
The significance of the present work is that the computational artifacts surrounding dynamic CPS are not independent designs: they are mechanical consequences of having put the definitional abstract machine in defunctionalized form.
Typed Dynamic Control Operators for Delimited Continuations
TLDR
A polymorphically typed calculus for dynamic control operators which allows answer-type modification is introduced and it is shown that this calculus enjoys type soundness and is compatible with the CPS translation.
A Dynamic Continuation-Passing Style for Dynamic Delimited Continuations
TLDR
The significance of the present work is that the computational artifacts surrounding dynamic CPS are not independent designs: they are mechanical consequences of having put the definitional abstract machine in defunctionalized form.
Functional pearl: the great escape or, how to jump the border without getting caught
TLDR
This work presents a variation on Filinski's encoding of delimited continuations that behaves appropriately in the presence of exceptions and gives an implementation in Standard ML of New Jersey that proves the encoding correct with respect to the semantics of delimite dynamic binding.
The Theory and Practice of Programming Languages with Delimited Continuations
TLDR
It is formalize and prove the folklore theorem that the static delimitedcontrol operators shift and reset can be simulated in terms of the dynamic delimited-control operators control and prompt, and it is shown that breadth-first traversal exploits the difference between shift and control.
Implementing first-class polymorphic delimited continuations by a type-directed selective CPS-transform
TLDR
To tackle the problem of implementing first-class continuations under the adverse conditions brought upon by the Java VM, this work employs a selective CPS transform, which is driven entirely by effect-annotated types and leaves pure code in direct style.
A Functional Abstraction of Typed Invocation Contexts
TLDR
This paper shows how this method scales to Felleisen’s control and prompt operators, and adopts a functional representation of trails in the CPS semantics to derive a type system that encodes all and only constraints imposed byThe CPS semantics.
Context-based proofs of termination for typed delimited-control operators
TLDR
From the normalization proofs, call-by-value and call- by-name evaluators in continuation-passing style with two layers of continuations are extracted; by construction, these evaluator are instances of normalization by evaluation.
...
...

References

SHOWING 1-10 OF 138 REFERENCES
On the Static and Dynamic Extents of Delimited Continuations
We show that breadth-first traversal exploits the difference between the static delimited-control operator shift (alias S) and the dynamic delimited-control operator control (alias F). For the last
How to remove a dynamic prompt: static and dynamic delimited continuation operators are equally expressible
TLDR
This work shows how to remove a dynamic prompt and thus to turn so-called static delimited continuation operators into dynamic ones: control, control0, shift0, and gives the simplest Scheme implementation of the dynamic control operators.
A Dynamic Continuation-Passing Style for Dynamic Delimited Continuations
TLDR
It is shown that the new machine operates more efficiently than the definitional one and that the notion of computation induced by the corresponding evaluator takes the form of a monad.
Partial Continuations as the Difference of Continuations - A Duumvirate of Control Operators
TLDR
A new concept of prefixal extent is introduced that characterises the time during which a partial continuation can be reified and is proposed two equivalent formal semantics for partial continuations: a context-rewriting system and a cps translation.
The Theory and Practice of Programming Languages with Delimited Continuations
TLDR
It is formalize and prove the folklore theorem that the static delimitedcontrol operators shift and reset can be simulated in terms of the dynamic delimited-control operators control and prompt, and it is shown that breadth-first traversal exploits the difference between shift and control.
Abstract continuations: a mathematical semantics for handling full jumps
TLDR
This work introduces an abstract domain of rests of computations with appropriate operations for continuation semantics in modern Lisp-style languages, which contain advanced control structures like full functional jumps and control delimiters for which continuation semantics is insufficient.
An Operational Foundation for Delimited Continuations in the CPS Hierarchy
We present an abstract machine and a reduction semantics for the lambda-calculus extended with control operators that give access to delimited continuations in the CPS hierarchy. The abstract machine
Typing first-class continuations in ML
TLDR
First-class continuations are a powerful tool for implementing sophisticated control constructs like co-routines, processes, backtracking, and asynchronous signals, but it is clear that extensive work is required to integrate continuations fully into the definition of Standard ML.
On some Functional Aspects of Control
TLDR
This approach sheds some light on the applicative aspects of continuations by getting rid of their imperative part: escaping, and develops an example where multiple traversals of a list are abstracted and factorized, reducing the complexity of the resulting program and offering a pleasing dual to sharing transducers.
...
...