## Partial Continuations as the Difference of Continuations, A Duumvirate of Control Operators (1994)

Venue: | International Conference on Programming Language Implementation and Logic Programming (PLILP'94). Proceedings |

Citations: | 19 - 2 self |

### BibTeX

@INPROCEEDINGS{Moreau94partialcontinuations,

author = {Luc Moreau and Christian Queinnec},

title = {Partial Continuations as the Difference of Continuations, A Duumvirate of Control Operators},

booktitle = {International Conference on Programming Language Implementation and Logic Programming (PLILP'94). Proceedings},

year = {1994},

pages = {182--197},

publisher = {}

}

### Years of Citing Articles

### OpenURL

### Abstract

We define a partial continuation as the difference of two continuations. We exhibit, in a single framework, several design choices and their impact on semantics. The ability of partial continuations to manipulate stack frames blurs the nature of dynamic extent; therefore, we introduce a new concept of prefixal extent that characterises the time during which a partial continuation can be reified. We propose two equivalent formal semantics for partial continuations: a context-rewriting system and a cps translation. Two new and realistic examples illustrate both the interest of partial continuations and the expressiveness of our choices.

### Citations

236 | Tutorial notes on partial evaluation
- Consel, Danvy
- 1993
(Show Context)
Citation Context ...ns1 cons11) (set! cons2 cons22) (pc v)))) (abort fail (lambbda () #f))))))) (marker (lambda (fail) (loop tree fail)))))) Now, the same partial continuation can be used for several purposes. Below, in =-=[1]-=-, a tree is built; in [2], the depth is computed; in [3], the result is a tree that mirrors the-tree with respect to the direct path. (define path (marker (lambda (init) (search the-tree init number?)... |

220 |
Call-by-name, call-by-value, and the #-calculus
- Plotkin
- 1975
(Show Context)
Citation Context ...y for new names creation. 4 Reduction System In this section, we present a context-rewriting system as Felleisen and Friedman [5]. This rewriting system is an extension of the call-by-value -calculus =-=[13]-=- with the marker and call=pc operators. We also introduce a new syntactic construct # ff (: : :), called prompt with name ff, that is intended to represent a mark naming a control block. Terms 3 of th... |

148 |
The theory and practice of first-class prompts
- Felleisen
- 1988
(Show Context)
Citation Context ...s a "dangling" name which, whenever the partial continuation is invoked, will name the current block. On the other hand Queinnec and Serpette's splitter and Felleisen, Wand, Friedman, and Du=-=ba's [7], [4] #(); F av-=-oid to copy the mark (or prompt) when reifying a partial continuation. Those two trends are the origin of the debate about the "dynamicness " of control operators. Although we have decided n... |

110 | The discoveries of continuations
- Reynolds
- 1993
(Show Context)
Citation Context ...ples illustrate both the interest of partial continuations and the expressiveness of our choices. 1 Introduction The mathematical concept of continuation was introduced by Strachey and Wadsworth [18] =-=[16]-=- to give a semantics to control operators such as goto. The continuation of an expression represents the rest of the computation to be performed after evaluation of this expression. Some programming l... |

83 |
Control operators, the SECD machine and the -calculus
- Felleisen, Friedman
- 1986
(Show Context)
Citation Context ...ibits the connection between stack frames and cps, as well as the machinery for new names creation. 4 Reduction System In this section, we present a context-rewriting system as Felleisen and Friedman =-=[5]-=-. This rewriting system is an extension of the call-by-value -calculus [13] with the marker and call=pc operators. We also introduce a new syntactic construct # ff (: : :), called prompt with name ff,... |

58 |
Abstract continuations: A mathematical semantics for handling full functional jumps
- Felleisen, Wand, et al.
- 1988
(Show Context)
Citation Context ...s can be used to program coroutines, exceptions, : : : [8]. More recently, the concept of partial continuation was successively introduced and studied by Felleisen, Friedman, Wand, Duba, Merrill [6], =-=[7]-=-, [4], Danvy and Filinski [3], Hieb and Dybvig [9], [10] Queinnec and Serpette [15]. Although their propositions differ, they nevertheless share a common idea: a partial continuation represents a part... |

56 |
Danvy and Andrzej Filinski. Abstracting control
- Olivier
- 1990
(Show Context)
Citation Context ...utines, exceptions, : : : [8]. More recently, the concept of partial continuation was successively introduced and studied by Felleisen, Friedman, Wand, Duba, Merrill [6], [7], [4], Danvy and Filinski =-=[3]-=-, Hieb and Dybvig [9], [10] Queinnec and Serpette [15]. Although their propositions differ, they nevertheless share a common idea: a partial continuation represents a part of the rest of the computati... |

48 |
Dybvig. Continuations and concurrency
- Hieb, Kent
- 1990
(Show Context)
Citation Context ... : : [8]. More recently, the concept of partial continuation was successively introduced and studied by Felleisen, Friedman, Wand, Duba, Merrill [6], [7], [4], Danvy and Filinski [3], Hieb and Dybvig =-=[9]-=-, [10] Queinnec and Serpette [15]. Although their propositions differ, they nevertheless share a common idea: a partial continuation represents a part of the rest of the computation. Partial continuat... |

41 | Beyond Continuations
- FELLEISEN, FRIEDMAN, et al.
- 1987
(Show Context)
Citation Context ...ations can be used to program coroutines, exceptions, : : : [8]. More recently, the concept of partial continuation was successively introduced and studied by Felleisen, Friedman, Wand, Duba, Merrill =-=[6]-=-, [7], [4], Danvy and Filinski [3], Hieb and Dybvig [9], [10] Queinnec and Serpette [15]. Although their propositions differ, they nevertheless share a common idea: a partial continuation represents a... |

39 |
Control delimiters and their hierarchies
- Sitaram, Felleisen
- 1990
(Show Context)
Citation Context ...perators able to capture partial continuations between any two points, whatever the marks appearing inside. For this purpose, hierarchies of control operators were introduced by Sitaram and Felleisen =-=[17]-=- and Danvy and Filinski [3]. Control operators are now indexed by a number which is their control level , and an operator of level m is able to reify the partial continuation delimited by the first ma... |

30 | Obtaining Coroutines with Continuations - Haynes, Friedman, et al. - 1986 |

30 | A dynamic extent control operator for partial continuations
- Queinnec, Serpette
- 1991
(Show Context)
Citation Context ...cept of partial continuation was successively introduced and studied by Felleisen, Friedman, Wand, Duba, Merrill [6], [7], [4], Danvy and Filinski [3], Hieb and Dybvig [9], [10] Queinnec and Serpette =-=[15]-=-. Although their propositions differ, they nevertheless share a common idea: a partial continuation represents a part of the rest of the computation. Partial continuations can also be reified into fir... |

26 |
Control Operators, Hierarchies, and Pseudo-Classical Type Systems: A-Translation at Work
- Murthy
- 1992
(Show Context)
Citation Context ...ark should a control operator refer to, the most recent one, i.e. the one that was just copied, or the oldest one, i.e. the one that existed before the invocation of a partial continuation? As Murthy =-=[12] writes No-=-w, naturally, one might ask: is there a way to "jump over" the delimiters? This would lead us to invent a new control-operator, which could jump over the prompts, and grab all of the evaluat... |

7 |
A Mathematical Semantics for Handling Full Jumps
- Strachey, Wadsworth
- 1974
(Show Context)
Citation Context ... examples illustrate both the interest of partial continuations and the expressiveness of our choices. 1 Introduction The mathematical concept of continuation was introduced by Strachey and Wadsworth =-=[18]-=- [16] to give a semantics to control operators such as goto. The continuation of an expression represents the rest of the computation to be performed after evaluation of this expression. Some programm... |

5 |
On Listing List Prefixes
- Danvy
- 1989
(Show Context)
Citation Context ...he operators marker and call=pc can be used to express Danvy and Filinski's [3] example about the non-deterministic finite state automaton and Danvy's example of computation of the prefixes of a list =-=[2]-=-. In Sections 6.2 and 6.3, we illustrate how [[x:M ]] d = ( 0 :x: 0 d 0 :[[M ]] 0 0 d 0 ) d [[MN ]] d = [[M ]] (m 0 d 0 :[[N ]](n 00 d 00 :mn 00 d 00 ) 0 d 0 ) d [[x]] d =sx d [[marker M ]] d = [[M ]]... |

5 | Sound Rules for Parallel Evaluation of a Functional Language with callcc
- Moreau, Ribbens
- 1993
(Show Context)
Citation Context ...ntrol operators. Therefore, their languages have 2n times control operators instead of 2. But, what is the intuitive difference between control operators of level n or level n + 1? Moreau and Ribbens =-=[11]-=- also introduce a mechanism of prompt to mark the extent of the call/cc operator. Such a prompt was used to optimise the invocation of a continuation in the extent of the call/cc by which it was reifi... |

5 | Value transforming style
- Queinnec
- 1992
(Show Context)
Citation Context ...continuation algebra was derived from the evaluation contexts of the reduction system. This technique, named Abstract Continuation Passing Style, was also used by the second author to define splitter =-=[14]-=-. Although such an approach is also possible here, we have adopted Danvy and Filinski's technique [3] to exploit the expressive power of continuation-passing style through the use of multi-level conti... |

1 | On Listing List Pre xes - Danvy - 1989 |