Results 1  10
of
10
A Sound and Complete Axiomatization of Delimited Continuations
 In Proc. of 8th ACM SIGPLAN Int. Conf. on Functional Programming, ICFP’03
, 2003
"... The shift and reset operators, proposed by Danvy and Filinski, are powerful control primitives for capturing delimited continuations. Delimited continuation is a similar concept as the standard (unlimited) continuation, but it represents part of the rest of the computation, rather than the whole res ..."
Abstract

Cited by 25 (8 self)
 Add to MetaCart
The shift and reset operators, proposed by Danvy and Filinski, are powerful control primitives for capturing delimited continuations. Delimited continuation is a similar concept as the standard (unlimited) continuation, but it represents part of the rest of the computation, rather than the whole rest of computation. In the literature, the semantics of shift and reset has been given by a CPStranslation only. This paper gives a direct axiomatization of calculus with shift and reset, namely, we introduce a set of equations, and prove that it is sound and complete with respect to the CPStranslation. We also introduce a calculus with control operators which is as expressive as the calculus with shift and reset, has a sound and complete axiomatization, and is conservative over Sabry and Felleisen's theory for firstclass continuations.
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 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
. 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...
2005, ‘A ProofTheoretic Foundation of Abortive Continuations (Extended version
"... Abstract. We give an analysis of various classical axioms and characterize a notion of minimal classical logic that enforces Peirce’s law without enforcing Ex Falso Quodlibet. We show that a “natural ” implementation of this logic is Parigot’s classical natural deduction. We then move on to the comp ..."
Abstract

Cited by 9 (5 self)
 Add to MetaCart
Abstract. We give an analysis of various classical axioms and characterize a notion of minimal classical logic that enforces Peirce’s law without enforcing Ex Falso Quodlibet. We show that a “natural ” implementation of this logic is Parigot’s classical natural deduction. We then move on to the computational side and emphasize that Parigot’s λµ corresponds to minimal classical logic. A continuation constant must be added to λµ to get full classical logic. The extended calculus is isomorphic to a syntactical restriction of Felleisen’s theory of control that offers a more expressive reduction semantics. This isomorphic calculus is in correspondence with a refined version of Prawitz’s natural deduction.
A Core Calculus of Classes and Objects
 ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE
, 1999
"... We present an imperative calculus for a classbased language. By introducing classes as the basic objectoriented construct in a calculus with records and references, we obtain a system with an intuitive operational semantics. Objects are instantiated from classes and represented by records. The ty ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
We present an imperative calculus for a classbased language. By introducing classes as the basic objectoriented construct in a calculus with records and references, we obtain a system with an intuitive operational semantics. Objects are instantiated from classes and represented by records. The type system for objects uses only functional, record, and reference types, and there is a clean separation between subtyping and inheritance. We demonstrate that the calculus is sound and suciently expressive to model advanced language features such as inheritance with method rede nition, multilevel encapsulation, and modular object construction.
Sound Rules for Parallel Evaluation of a Functional Language with callcc
, 1993
"... Observationally equivalent programs are programs which are indistinguishable in all contexts, as far as their termination property is concerned. In this paper, we present rules preserving observational equivalence, for the parallel evaluation of programs using call/cc. These rules allow the capture ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
Observationally equivalent programs are programs which are indistinguishable in all contexts, as far as their termination property is concerned. In this paper, we present rules preserving observational equivalence, for the parallel evaluation of programs using call/cc. These rules allow the capture of continuations in any applicative context and they prevent from aborting the whole computation when a continuation is applied in the extent of the call/cc by which it was reied. As a consequence, these results prove that one can design a functional language with rstclass continuations which has transparent constructs for parallelism. 1 Introduction Some programming languages, like Scheme and Standard ML of New Jersey, provide a control operator call/cc which gives the programmer the possibility to reify the current continuation as a rstclass object. When such a reied continuation is applied to a value v, the current computation is aborted and the execution resumes at the point wher...
Computing with Capsules
, 2011
"... Capsules provide a clean algebraic representation of the state of a computation in higherorder functional and imperative languages. They play the same role as closures or heap or stackallocated environments but are much simpler. A capsule is essentially a finite coalgebraic representation of a reg ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Capsules provide a clean algebraic representation of the state of a computation in higherorder functional and imperative languages. They play the same role as closures or heap or stackallocated environments but are much simpler. A capsule is essentially a finite coalgebraic representation of a regular closed λcoterm. One can give an operational semantics based on capsules for a higherorder programming language with functional and imperative features, including mutable bindings. Lexical scoping is captured purely algebraically without stacks, heaps, or closures. All operations of interest are typable with simple types, yet the language is Turing complete. Recursive functions are represented directly as capsules without the need for unnatural and untypable fixpoint combinators. 1
Demonstrating lambda calculus reduction
 The Essence of Computation: Complexity, Analysis, Transformation. Essays Dedicated to Neil D. Jones, number 2566 in Lecture Notes in Computer Science
, 2002
"... We describe lambda calculus reduction strategies using bigstep operational semantics and show how to efficiently trace such reductions. This is used in a webbased lambda calculus reducer, at ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We describe lambda calculus reduction strategies using bigstep operational semantics and show how to efficiently trace such reductions. This is used in a webbased lambda calculus reducer, at
Author manuscript, published in "HigherOrder and Symbolic Computation 20, 4 (2007)" DOI: 10.1007/s109900079007z A ProofTheoretic Foundation of Abortive Continuations †
, 2012
"... Abstract. We give an analysis of various classical axioms and characterize a notion of minimal classical logic that enforces Peirce’s law without enforcing Ex Falso Quodlibet. We show that a “natural ” implementation of this logic is Parigot’s classical natural deduction. We then move on to the comp ..."
Abstract
 Add to MetaCart
Abstract. We give an analysis of various classical axioms and characterize a notion of minimal classical logic that enforces Peirce’s law without enforcing Ex Falso Quodlibet. We show that a “natural ” implementation of this logic is Parigot’s classical natural deduction. We then move on to the computational side and emphasize that Parigot’s λµ corresponds to minimal classical logic. A continuation constant must be added to λµ to get full classical logic. The extended calculus is isomorphic to a syntactical restriction of Felleisen’s theory of control that offers a more expressive reduction semantics. This isomorphic calculus is in correspondence with a refined version of Prawitz’s natural deduction.
Abstract LogicFlow Analysis of HigherOrder Programs
"... This work presents a framework for fusing flow analysis and theorem proving called logicflow analysis (LFA). The framework itself is the reduced product of two abstract interpretations: (1) an abstract state machine and (2) a set of propositions in a restricted firstorder logic. The motivating app ..."
Abstract
 Add to MetaCart
This work presents a framework for fusing flow analysis and theorem proving called logicflow analysis (LFA). The framework itself is the reduced product of two abstract interpretations: (1) an abstract state machine and (2) a set of propositions in a restricted firstorder logic. The motivating application for LFA is the safe removal of implicit arraybounds checks without type information, user interaction or program annotation. LFA achieves this by delegating a given task to either the prover or the flow analysis depending on which is best suited to discharge it. Described within are a concrete semantics for continuationpassing style; a restricted, firstorder logic; a woven product of two abstract interpretations; proofs of correctness; and a worked example.