Results 1 
7 of
7
From Control Effects to Typed Continuation Passing
 In 30th SIGPLANSIGACT Symposium on Principles of Programming Languages (POPL’03
, 2003
"... Firstclass continuations are a powerful computational effect, allowing the programmer to express any form of jumping. Types and effect systems can be used to reason about continuations, both in the source language and in the target language of the continuationpassing transform. In this paper, we e ..."
Abstract

Cited by 19 (2 self)
 Add to MetaCart
Firstclass continuations are a powerful computational effect, allowing the programmer to express any form of jumping. Types and effect systems can be used to reason about continuations, both in the source language and in the target language of the continuationpassing transform. In this paper, we establish the connection between an effect system for firstclass continuations and typed versions of continuationpassing style. A region in the effect system determines a local answer type for continuations, such that the continuation transforms of pure expressions are parametrically polymorphic in their answer types. We use this polymorphism to derive transforms that make use of effect information, in particular, a mixed linear/nonlinear continuationpassing transform, in which expressions without control effects are passed their continuations linearly.
On Exceptions versus Continuations in the Presence of State
 Programming Languages and Systems, 9th European Symposium on Programming, ESOP 2000,, number 1782 in LNCS
, 2000
"... . We compare the expressive power of exceptions and continuations when added to a language with local state in the setting of operational semantics. Continuations are shown to be more expressive than exceptions because they can cause a function call to return more than once, whereas exceptions only ..."
Abstract

Cited by 14 (3 self)
 Add to MetaCart
. We compare the expressive power of exceptions and continuations when added to a language with local state in the setting of operational semantics. Continuations are shown to be more expressive than exceptions because they can cause a function call to return more than once, whereas exceptions only allow discarding part of the calling context. 1 Introduction Exceptions are part of nearly all modern programming languages, including mainstream ones like Java and C++. Continuations are present only in Scheme and the New Jersey dialect of ML, yet are much more intensely studied by theoreticians and logicians. The relationship between exceptions and continuations is not as widely understood as one would hope, partly because continuations, though in some sense canonical, are more powerful than would at rst appear, and because the control aspect of exceptions can be obscured by intricacies of typing and syntax. We have recently shown that exceptions and continuations, when added to a purely...
Adding Delimited and Composable Control to a Production Programming Environment
 ICFP'07
, 2007
"... Operators for delimiting control and for capturing composable continuations litter the landscape of theoretical programming language research. Numerous papers explain their advantages, how the operators explain each other (or don’t), and other aspects of the operators’ existence. Production programm ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
Operators for delimiting control and for capturing composable continuations litter the landscape of theoretical programming language research. Numerous papers explain their advantages, how the operators explain each other (or don’t), and other aspects of the operators’ existence. Production programming languages, however, do not support these operators, partly because their relationship to existing and demonstrably useful constructs—such as exceptions and dynamic binding—remains relatively unexplored. In this paper,
In this paper, we report on our effort of translating the theory of delimited and composable control into a viable implementation for a production system. The report shows how this effort involved a substantial design element, including work with a formal model, as well as significant practical exploration and engineering.
The resulting version of PLT Scheme incorporates the expressive combination of delimited and composable control alongside dynamicwind, dynamic binding, and exception handling. None of the additional operators subvert the intended benefits of existing control operators, so that programmers can freely mix and match control operators.
Comparing Control Constructs by Typing Doublebarrelled CPS Transforms
 CW'01
, 2001
"... We investigate continuationpassing style transforms that pass two continuations. Altering a single variable in the translation of λabstraction gives rise to different control operators: firstclass continuations; dynamic control; and (depending on a further choice of a variable) either the return ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
We investigate continuationpassing style transforms that pass two continuations. Altering a single variable in the translation of λabstraction gives rise to different control operators: firstclass continuations; dynamic control; and (depending on a further choice of a variable) either the return statement of C; or Landin's Joperator. In each case there is an associated simple typing. For those constructs that allow upward continuations, the typing is classical, for the others it remains intuitionistic, giving a clean distinction independent of syntactic details.
A Proof Theoretical Account of Continuation Passing Style
 In CSL ’02: Proceedings of the 16th International Workshop and 11th Annual Conference of the EACSL on Computer Science Logic
, 2002
"... We study "classical proofs as programs" paradigm in CallBy Value (CBV) setting. Specifically, we show the CBV normalization for CND (Parigot 92) can be simulated by the cutelimination procedure for LKQ (DanosJoinetSchellinx 93), namely the qprotocol. We use proofterm assignment system to p ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
We study "classical proofs as programs" paradigm in CallBy Value (CBV) setting. Specifically, we show the CBV normalization for CND (Parigot 92) can be simulated by the cutelimination procedure for LKQ (DanosJoinetSchellinx 93), namely the qprotocol. We use proofterm assignment system to prove this fact. The term calculus for CND we use follows Parigot's #calculus with new CBV normalization procedure. A new term calculus for LKQ is presented as a variant of #calculus with a letconstruct. We then define a translation from CND into LKQ and prove simulation theorem. We also show the translation we use can be thought of a familiar CBV CPStranslation without translation on types.
Continuations, Functions and Jumps
, 1999
"... this article, therefore, is to help the reader uncompress the CPS transform by way of a rational reconstruction from jumps. ..."
Abstract
 Add to MetaCart
this article, therefore, is to help the reader uncompress the CPS transform by way of a rational reconstruction from jumps.
CallbyValue λµcalculus and Its Simulation by the CutElimination Procedure for LKQ
"... We show CallByValue(CBV) normalization for CND (Parigot 92) can be simulated by by cutelimination for LKQ (DanosJoinetSchellinx 93), namely qprotocol. For this, a new term calculus was made for each classical logic. A term calculus for CND is a CBV version of Parigot's λµcalculus. A completely ..."
Abstract
 Add to MetaCart
We show CallByValue(CBV) normalization for CND (Parigot 92) can be simulated by by cutelimination for LKQ (DanosJoinetSchellinx 93), namely qprotocol. For this, a new term calculus was made for each classical logic. A term calculus for CND is a CBV version of Parigot's λµcalculus. A completely new term calculus for LKQ is presented in a style of classical extension of λµcalculus with a let construct. We then define a translation from CND into LKQ and show how our version of CBV normalization procedure can be simulated by qprotocol. We claim that this translationsimulation relation is closely related to the familiar CBV CPStranslation.