Results 21  30
of
59
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
(Show Context)
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...
Making Data Structures Confluently Persistent
, 2001
"... We address a longstanding open problem of [10, 9], and present a general transformation that transforms any pointer based data structure to be confluently persistent. Such transformations for fully persistent data structures are given in [10], greatly improving the performance compared to the naive ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
(Show Context)
We address a longstanding open problem of [10, 9], and present a general transformation that transforms any pointer based data structure to be confluently persistent. Such transformations for fully persistent data structures are given in [10], greatly improving the performance compared to the naive scheme of simply copying the inputs. Unlike fully persistent data structures, where both the naive scheme and the fully persistent scheme of [10] are feasible, we show that the naive scheme for confluently persistent data structures is itself infeasible (requires exponential space and time). Thus, prior to this paper there was no feasible method for implementing confluently persistent data structures at all. Our methods give an exponential reduction in space and time compared to the naive method, placing confluently persistent data structures in the realm of possibility.
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&a ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
(Show Context)
. 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...
Threads Yield Continuations
 Lisp and Symbolic Computation
, 1997
"... . Just as a traditional continuation represents the rest of a computation from a given point in the computation, a subcontinuation represents the rest of a subcomputation from a given point in the subcomputation. Subcontinuations are more expressive than traditional continuations and have been show ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
. Just as a traditional continuation represents the rest of a computation from a given point in the computation, a subcontinuation represents the rest of a subcomputation from a given point in the subcomputation. Subcontinuations are more expressive than traditional continuations and have been shown to be useful for controlling treestructured concurrency, yet they have previously been implemented only on uniprocessors. This article describes a concurrent implementation of oneshot subcontinuations. Like oneshot continuations, oneshot subcontinuations are firstclass but may be invoked at most once, a restriction obeyed by nearly all programs that use continuations. The techniques used to implement oneshot subcontinuations may be applied directly to other oneshot continuation mechanisms and may be generalized to support multishot continuations as well. A novel feature of the implementation is that continuations are implemented in terms of threads. Because the implementation model ...
A static simulation of dynamic delimited control
 HIGHERORDER AND SYMBOLIC COMPUTATION
"... We present a continuationpassingstyle (CPS) transformation for some dynamic delimitedcontrol operators, including Felleisen’s control and prompt, that extends a standard callbyvalue CPS transformation. Based on this new transformation, we show how Danvy and Filinski’s static delimitedcontrol ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
We present a continuationpassingstyle (CPS) transformation for some dynamic delimitedcontrol operators, including Felleisen’s control and prompt, that extends a standard callbyvalue CPS transformation. Based on this new transformation, we show how Danvy and Filinski’s static delimitedcontrol operators shift and reset simulate dynamic operators, allaying in passing some skepticism in the literature about the existence of such a simulation. The new CPS transformation and simulation use recursive delimited continuations to avoid undelimited control and the overhead it incurs in implementation and reasoning.
Amortization, Lazy Evaluation, and Persistence: Lists with Catenation via Lazy Linking
 Pages 646654 of: IEEE Symposium on Foundations of Computer Science
, 1995
"... Amortization has been underutilized in the design of persistent data structures, largely because traditional accounting schemes break down in a persistent setting. Such schemes depend on saving "credits" for future use, but a persistent data structure may have multiple "futures", ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
(Show Context)
Amortization has been underutilized in the design of persistent data structures, largely because traditional accounting schemes break down in a persistent setting. Such schemes depend on saving "credits" for future use, but a persistent data structure may have multiple "futures", each competing for the same credits. We describe how lazy evaluation can often remedy this problem, yielding persistent data structures with good amortized efficiency. In fact, such data structures can be implemented purely functionally in any functional language supporting lazy evaluation. As an example of this technique, we present a purely functional (and therefore persistent) implementation of lists that simultaneously support catenation and all other usual list primitives in constant amortized time. This data structure is much simpler than the only existing data structure with comparable bounds, the recently discovered catenable lists of Kaplan and Tarjan, which support all operations in constant worstca...
Value Transforming Style
, 1992
"... A new program transformation is presented that allows to remove control operators related to partial continuations. The basis for the transformation is to adopt an improved representation for continuations that makes frames apparent. Various examples of control operators with or without dynamic exte ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
A new program transformation is presented that allows to remove control operators related to partial continuations. The basis for the transformation is to adopt an improved representation for continuations that makes frames apparent. Various examples of control operators with or without dynamic extent stress are presented. Scheme [IEE91], offers firstclass continuations with indefinite extent. Pioneered in [Lan65, Rey72], continuations proved to be very useful tools allowing to program a wide variety of control features such as coroutines [Wan80], engines [HF84], escapes [HFW84] etc. The call/cc function reifies [Wan86] continuations into monadic functions, transfer of control occurs when these functional objects are applied. A transformation called "Continuation Passing Style" (or CPS for short) exists that transforms a program using call/cc into a new semantically equivalent program without call/cc. In this transformation, continuations are transformed again into monadic functions....
A Study on Mobile Language Systems
, 1999
"... The mobile form of distributed computation, called mobile computation, is investigated from the viewpoints of computational model, programming language and implementation. The emphasis of this thesis compared with the related work is on analyzing existing mobile language systems from a rather implem ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
(Show Context)
The mobile form of distributed computation, called mobile computation, is investigated from the viewpoints of computational model, programming language and implementation. The emphasis of this thesis compared with the related work is on analyzing existing mobile language systems from a rather implementational point of view. The contribution of this thesis is threefold. (1) We present a computational model in which dynamic transference of code, data and execution state can be represented. Several mobility mechanisms in existing mobile language systems are analyzed in the model. (2) Based on the analysis, a programming language for mobile computation is designed. The distinctive feature of the language is the facility to control the transparency of migration. (3) An implementation of the mobile programming language is presented. The language is implemented as an extension of the Java language. The implementation is so portable that the program runs on any standard Java inte...
Pragmatic Aspects of TypeDirected Partial Evaluation
, 1996
"... Typedirected partial evaluation stems from the residualization of static values in dynamic contexts, given their type and the type of their free variables. Its algorithm coincides with the algorithm for coercing a subtype value into a supertype value, which itself coincides with Berger and Schw ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
(Show Context)
Typedirected partial evaluation stems from the residualization of static values in dynamic contexts, given their type and the type of their free variables. Its algorithm coincides with the algorithm for coercing a subtype value into a supertype value, which itself coincides with Berger and Schwichtenberg's normalization algorithm for the simply typed calculus. Typedirected partial evaluation thus can be used to specialize a compiled, closed program, given its type.