Results 11  20
of
40
Partial Continuations as the Difference of Continuations, A Duumvirate of Control Operators
 International Conference on Programming Language Implementation and Logic Programming (PLILP'94). Proceedings
, 1994
"... 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 concep ..."
Abstract

Cited by 19 (2 self)
 Add to MetaCart
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 contextrewriting system and a cps translation. Two new and realistic examples illustrate both the interest of partial continuations and the expressiveness of our choices.
Purely Functional Representations of Catenable Sorted Lists.
 In Proceedings of the 28th Annual ACM Symposium on Theory of Computing
, 1996
"... The power of purely functional programming in the construction of data structures has received much attention, not only because functional languages have many desirable properties, but because structures built purely functionally are automatically fully persistent: any and all versions of a structur ..."
Abstract

Cited by 16 (5 self)
 Add to MetaCart
The power of purely functional programming in the construction of data structures has received much attention, not only because functional languages have many desirable properties, but because structures built purely functionally are automatically fully persistent: any and all versions of a structure can coexist indefinitely. Recent results illustrate the surprising power of pure functionality. One such result was the development of a representation of doubleended queues with catenation that supports all operations, including catenation, in worstcase constant time [19].
A Monadic Framework for Delimited Continuations
 UNDER CONSIDERATION FOR PUBLICATION IN J. FUNCTIONAL PROGRAMMING
"... Delimited continuations are more expressive than traditional abortive continuations and they apparently require a framework beyond traditional continuationpassing style (CPS). We show that this is not the case: standard CPS is sufficient to explain the common control operators for delimited continu ..."
Abstract

Cited by 14 (2 self)
 Add to MetaCart
Delimited continuations are more expressive than traditional abortive continuations and they apparently require a framework beyond traditional continuationpassing style (CPS). We show that this is not the case: standard CPS is sufficient to explain the common control operators for delimited continuations. We demonstrate this fact and present an implementation as a Scheme library. We then investigate a typed account of delimited continuations that makes explicit where control effects can occur. This results in a monadic framework for typed and encapsulated delimited continuations, which we design and implement as a Haskell library.
A typetheoretic foundation of delimited continuations. Higher Order Symbol
 Comput
, 2009
"... Abstract. There is a correspondence between classical logic and programming language calculi with firstclass continuations. With the addition of control delimiters, the continuations become composable and the calculi become more expressive. We present a finegrained analysis of control delimiters a ..."
Abstract

Cited by 14 (6 self)
 Add to MetaCart
Abstract. There is a correspondence between classical logic and programming language calculi with firstclass continuations. With the addition of control delimiters, the continuations become composable and the calculi become more expressive. We present a finegrained analysis of control delimiters and formalise that their addition corresponds to the addition of a single dynamicallyscoped variable modelling the special toplevel continuation. From a type perspective, the dynamicallyscoped variable requires effect annotations. In the presence of control, the dynamicallyscoped variable can be interpreted in a purely functional way by applying a storepassing style. At the type level, the effect annotations are mapped within standard classical logic extended with the dual of implication, namely subtraction. A continuationpassingstyle transformation of lambdacalculus with control and subtraction is defined. Combining the translations provides a decomposition of standard CPS transformations for delimited continuations. Incidentally, we also give a direct normalisation proof of the simplytyped lambdacalculus with control and subtraction.
A Library of High Level Control Operators
 Lisp Pointers, ACM SIGPLAN Special Interest Publ. on Lisp
, 1993
"... Numerous highlevel control operators, with various properties, exist in the literature. To understand or compare them is difficult since their definitions use quite different theoretical frameworks; moreover, to our knowledge, no implementation offers them all. This paper tries to explain control o ..."
Abstract

Cited by 13 (0 self)
 Add to MetaCart
Numerous highlevel control operators, with various properties, exist in the literature. To understand or compare them is difficult since their definitions use quite different theoretical frameworks; moreover, to our knowledge, no implementation offers them all. This paper tries to explain control operators by the often simple stack manipulation they perform. We therefore present what we think these operators are, in an executable framework derived from abstract continuations. This library is published in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For instance, we do not claim our implementation to be faithful nor we attempt to formally derive these implementations from their original definitions. The goal is to give a flavor of what control operators are, from an implementation point of view. Last but worth to say, all errors are mine. Among the many existing control operators, w...
Purely Functional, RealTime Deques with Catenation
 Journal of the ACM
, 1999
"... We describe an efficient, purely functional implementation of deques with catenation. In addition to being an intriguing problem in its own right, finding a purely functional implementation of catenable deques is required to add certain sophisticated programming constructs to functional programming ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
We describe an efficient, purely functional implementation of deques with catenation. In addition to being an intriguing problem in its own right, finding a purely functional implementation of catenable deques is required to add certain sophisticated programming constructs to functional programming languages. Our solution has a worstcase running time of O(1) for each push, pop, inject, eject and catenation. The best previously known solution has an O(log k) time bound for the k deque operation. Our solution is not only faster but simpler. A key idea used in our result is an algorithmic technique related to the redundant digital representations used to avoid carry propagation in binary counting.
A Typetheoretic Study on Partial Continuations
 Theoretical Computer Science: Exploring New Frontiers of Theoretical Informatics, volume 1872 of Lecture Notes in Computer Science
, 2000
"... . Partial continuations are control operators in functional programming such that a functionlike object is abstracted from a part of the rest of computation, rather than the whole rest of computation. Several dierent formulations of partial continuations have been proposed by Felleisen, Danvy&F ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
. Partial continuations are control operators in functional programming such that a functionlike object is abstracted from a part of the rest of computation, rather than the whole rest of computation. Several dierent formulations of partial continuations have been proposed by Felleisen, Danvy&Filinski, Hieb et al, and others, but as far as we know, no one ever studied logic for partial continuations, nor proposed a typed calculus of partial continuations which corresponds to a logical system through the CurryHoward isomorphism. This paper gives a simple typetheoretic formulation of a form of partial continuations (which we call delimited continuations), and study its properties. Our calculus does reect the intended operational semantics, and enjoys nice properties such as subject reduction and conuence. By restricting the type of delimiters to be atomic, we obtain the normal form property. We also show a few examples. 1 Introduction The mechanism of rstclass cont...
Refocusing in Reduction Semantics
, 2004
"... The evaluation function of a reduction semantics (i.e., a smallstep operational semantics with an explicit representation of the reduction context) is canonically defined as the transitive closure of (1) decomposing a term into a reduction context and a redex, (2) contracting this redex, and (3) ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
The evaluation function of a reduction semantics (i.e., a smallstep operational semantics with an explicit representation of the reduction context) is canonically defined as the transitive closure of (1) decomposing a term into a reduction context and a redex, (2) contracting this redex, and (3) plugging the contractum in the context. Directly implementing this evaluation function therefore yields an interpreter with a worstcase overhead, for each step, that is linear in the size of the input term. We present