Results 1  10
of
19
A Semantic analysis of control
, 1998
"... This thesis examines the use of denotational semantics to reason about control flow in sequential, basically functional languages. It extends recent work in game semantics, in which programs are interpreted as strategies for computation by interaction with an environment. Abramsky has suggested that ..."
Abstract

Cited by 38 (6 self)
 Add to MetaCart
(Show Context)
This thesis examines the use of denotational semantics to reason about control flow in sequential, basically functional languages. It extends recent work in game semantics, in which programs are interpreted as strategies for computation by interaction with an environment. Abramsky has suggested that an intensional hierarchy of computational features such as state, and their fully abstract models, can be captured as violations of the constraints on strategies in the basic functional model. Nonlocal control flow is shown to fit into this framework as the violation of strong and weak ‘bracketing ’ conditions, related to linear behaviour. The language µPCF (Parigot’s λµ with constants and recursion) is adopted as a simple basis for highertype, sequential computation with access to the flow of control. A simple operational semantics for both callbyname and callbyvalue evaluation is described. It is shown that dropping the bracketing condition on games models of PCF yields fully abstract models of µPCF.
A semantic view of classical proofs  typetheoretic, categorical, and denotational characterizations (Extended Abstract)
 IN PROCEEDINGS OF LICS '96
, 1996
"... Classical logic is one of the best examples of a mathematical theory that is truly useful to computer science. Hardware and software engineers apply the theory routinely. Yet from a foundational standpoint, there are aspects of classical logic that are problematic. Unlike intuitionistic logic, class ..."
Abstract

Cited by 33 (2 self)
 Add to MetaCart
Classical logic is one of the best examples of a mathematical theory that is truly useful to computer science. Hardware and software engineers apply the theory routinely. Yet from a foundational standpoint, there are aspects of classical logic that are problematic. Unlike intuitionistic logic, classical logic is often held to be nonconstructive, and so, is said to admit no proof semantics. To draw an analogy in the proofsas programs paradigm, it is as if we understand well the theory of manipulation between equivalent specifications (which we do), but have comparatively little foundational insight of the process of transforming one program to another that implements the same specification. This extended abstract outlines a semantic theory of classical proofs based on a variant of Parigot's λµcalculus [24], but presented here as a type theory. After reviewing the conceptual problems in the area and the potential benefits of such a theory, we sketch the key steps of our approach in ...
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.
Combining algebraic effects with continuations
, 2007
"... We consider the natural combinations of algebraic computational effects such as sideeffects, exceptions, interactive input/output, and nondeterminism with continuations. Continuations are not an algebraic effect, but previously developed combinations of algebraic effects given by sum and tensor ext ..."
Abstract

Cited by 17 (4 self)
 Add to MetaCart
We consider the natural combinations of algebraic computational effects such as sideeffects, exceptions, interactive input/output, and nondeterminism with continuations. Continuations are not an algebraic effect, but previously developed combinations of algebraic effects given by sum and tensor extend, with effort, to include commonly used combinations of the various algebraic effects with continuations. Continuations also give rise to a third sort of combination, that given by applying the continuations monad transformer to an algebraic effect. We investigate the extent to which sum and tensor extend from algebraic effects to arbitrary monads, and the extent to which Felleisen et al.’s C operator extends from continuations to its combination with algebraic effects. To do all this, we use Dubuc’s characterisation of strong monads in terms of enriched large Lawvere theories.
The Formal Relationship Between Direct and ContinuationPassing Style Optimizing Compilers: A Synthesis of Two Paradigms
, 1994
"... Compilers for higherorder programming languages like Scheme, ML, and Lisp can be broadly characterized as either "direct compilers" or "continuationpassing style (CPS) compilers", depending on their main intermediate representation. Our central result is a precise correspondenc ..."
Abstract

Cited by 15 (0 self)
 Add to MetaCart
Compilers for higherorder programming languages like Scheme, ML, and Lisp can be broadly characterized as either "direct compilers" or "continuationpassing style (CPS) compilers", depending on their main intermediate representation. Our central result is a precise correspondence between the two compilation strategies. Starting from
Axioms for Recursion in CallbyValue
 HIGHERORDER AND SYMBOLIC COMPUT
, 2001
"... We propose an axiomatization of fixpoint operators in typed callbyvalue programming languages, and give its justifications in two ways. First, it is shown to be sound and complete for the notion of uniform Tfixpoint operators of Simpson and Plotkin. Second, the axioms precisely account for Filins ..."
Abstract

Cited by 12 (5 self)
 Add to MetaCart
(Show Context)
We propose an axiomatization of fixpoint operators in typed callbyvalue programming languages, and give its justifications in two ways. First, it is shown to be sound and complete for the notion of uniform Tfixpoint operators of Simpson and Plotkin. Second, the axioms precisely account for Filinski's fixpoint operator derived from an iterator (infinite loop constructor) in the presence of firstclass continuations, provided that we define the uniformity principle on such an iterator via a notion of effectfreeness (centrality). We then explain how these two results are related in terms of the underlying categorical structures.
The Structure of CallbyValue
, 2000
"... To my parents Understanding procedure calls is crucial in computer science and everyday programming. Among the most common strategies for passing procedure arguments (‘evaluation strategies’) are ‘callbyname’, ‘callbyneed’, and ‘callbyvalue’, where the latter is the most commonly used. While ..."
Abstract

Cited by 12 (3 self)
 Add to MetaCart
To my parents Understanding procedure calls is crucial in computer science and everyday programming. Among the most common strategies for passing procedure arguments (‘evaluation strategies’) are ‘callbyname’, ‘callbyneed’, and ‘callbyvalue’, where the latter is the most commonly used. While reasoning about procedure calls is simple for callbyname, problems arise for callbyneed and callbyvalue, because it matters how often and in which order the arguments of a procedure are evaluated. We shall classify these problems and see that all of them occur for callbyvalue, some occur for callbyneed, and none occur for callbyname. In that sense, callbyvalue is the ‘greatest common denominator ’ of the three evaluation strategies. Reasoning about callbyvalue programs has been tackled by Eugenio Moggi’s ‘computational lambdacalculus’, which is based on a distinction between ‘values’
Duality between CallbyName Recursion and CallbyValue Iteration
 IN PROC. COMPUTER SCIENCE LOGIC, SPRINGER LECTURE NOTES IN COMPUT. SCI
, 2001
"... We investigate the duality between callbyname recursion and callbyvalue iteration on the λµcalculi. The duality between callbyname and callbyvalue was first studied by Filinski, and Selinger has studied the categorytheoretic duality on the models of the callbyname λµcalculus and the cal ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
We investigate the duality between callbyname recursion and callbyvalue iteration on the λµcalculi. The duality between callbyname and callbyvalue was first studied by Filinski, and Selinger has studied the categorytheoretic duality on the models of the callbyname λµcalculus and the callbyvalue one. We extend the callbyname λµcalculus and the callbyvalue one with a fixedpoint operator and an iteration operator, respectively. We show that the dual translations constructed by Selinger can be expanded into our extended λµcalculi, and we also discuss their implications to practical applications.
On the callbyvalue CPS transform and its semantics
, 2004
"... We investigate continuations in the context of idealized callbyvalue programming languages. On the semantic side, we analyze the categorical structures that arise from continuation models of callbyvalue languages. On the syntactic side, we study the callbyvalue continuationpassing transformat ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
We investigate continuations in the context of idealized callbyvalue programming languages. On the semantic side, we analyze the categorical structures that arise from continuation models of callbyvalue languages. On the syntactic side, we study the callbyvalue continuationpassing transformation as a translation between equational theories. Among the novelties are an unusually simple axiomatization of control operators and a strengthened completeness result with a proof based on a delaying transform.
An operational account of callbyvalue minimal and classical λcalculus in natural deduction form
 In P.L. Curien, editor, Ninth International Conference, TLCA '07, Brasilia, Brazil. July 2009, Proceedings, volume 5608 of Lecture Notes in Computer Science
"... Abstract. We give a decomposition of the equational theory of callbyvalue λcalculus into a confluent rewrite system made of three independent subsystems that refines Moggi’s computational calculus: – the purely operational system essentially contains Plotkin’s βv rule and is necessary and sufficie ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
(Show Context)
Abstract. We give a decomposition of the equational theory of callbyvalue λcalculus into a confluent rewrite system made of three independent subsystems that refines Moggi’s computational calculus: – the purely operational system essentially contains Plotkin’s βv rule and is necessary and sufficient for the evaluation of closed terms; – the structural system contains commutation rules that are necessary and sufficient for the reduction of all “computational ” redexes of a term, in a sense that we define; – the observational system contains rules that have no proper computational content but are necessary to characterize the valid observational equations on finite normal forms. We extend this analysis to the case of λcalculus with control and provide with the first presentation as a confluent rewrite system of SabryFelleisen and Hofmann’s equational theory of λcalculus with control. Incidentally, we give an alternative definition of standardization in callbyvalue λcalculus that, unlike Plotkin’s original definition, prolongs weak head reduction in an unambiguous way.