Results 1  10
of
44
A Generic Account of ContinuationPassing Styles
 Proceedings of the Twentyfirst Annual ACM Symposium on Principles of Programming Languages
, 1994
"... We unify previous work on the continuationpassing style (CPS) transformations in a generic framework based on Moggi's computational metalanguage. This framework is used to obtain CPS transformations for a variety of evaluation strategies and to characterize the corresponding administrative reducti ..."
Abstract

Cited by 87 (34 self)
 Add to MetaCart
We unify previous work on the continuationpassing style (CPS) transformations in a generic framework based on Moggi's computational metalanguage. This framework is used to obtain CPS transformations for a variety of evaluation strategies and to characterize the corresponding administrative reductions and inverse transformations. We establish generic formal connections between operational semantics and equational theories. Formal properties of transformations for specific evaluation orders follow as corollaries. Essentially, we factor transformations through Moggi's computational metalanguage. Mapping terms into the metalanguage captures computational properties (e.g., partiality, strictness) and evaluation order explicitly in both the term and the type structure of the metalanguage. The CPS transformation is then obtained by applying a generic transformation from terms and types in the metalanguage to CPS terms and types, based on a typed term representation of the continuation ...
Representing control: a study of the CPS transformation
, 1992
"... This paper investigates the transformation of v terms into continuationpassing style (CPS). We show that by appropriate jexpansion of Fischer and Plotkin's twopass equational specification of the CPS transform, we can obtain a static and contextfree separation of the result terms into "esse ..."
Abstract

Cited by 81 (7 self)
 Add to MetaCart
This paper investigates the transformation of v terms into continuationpassing style (CPS). We show that by appropriate jexpansion of Fischer and Plotkin's twopass equational specification of the CPS transform, we can obtain a static and contextfree separation of the result terms into "essential" and "administrative" constructs. Interpreting the former as syntax builders and the latter as directly executable code, we obtain a simple and efficient onepass transformation algorithm, easily extended to conditional expressions, recursive definitions, and similar constructs. This new transformation algorithm leads to a simpler proof of Plotkin's simulation and indifference results. Further we show how CPSbased control operators similar to but more general than Scheme's call/cc can be naturally accommodated by the new transformation algorithm. To demonstrate the expressive power of these operators, we use them to present an equivalent but even more concise formulation of t...
Explicit Polymorphism and CPS Conversion
 IN TWENTIETH ACM SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES
, 1992
"... We study the typing properties of CPS conversion for an extension of F ! with control operators. Two classes of evaluation strategies are considered, each with callbyname and callbyvalue variants. Under the "standard" strategies, constructor abstractions are values, and constructor applications ..."
Abstract

Cited by 69 (9 self)
 Add to MetaCart
We study the typing properties of CPS conversion for an extension of F ! with control operators. Two classes of evaluation strategies are considered, each with callbyname and callbyvalue variants. Under the "standard" strategies, constructor abstractions are values, and constructor applications can lead to nontrivial control effects. In contrast, the "MLlike" strategies evaluate beneath constructor abstractions, reflecting the usual interpretation of programs in languages based on implicit polymorphism. Three continuation passing style sublanguages are considered, one on which the standard strategies coincide, one on which the MLlike strategies coincide, and one on which all the strategies coincide. Compositional, typepreserving CPS transformation algorithms are given for the standard strategies, resulting in terms on which all evaluation strategies coincide. This has as a corollary the soundness and termination of welltyped programs under the standard evaluation strategies. A similar result is obtained for the MLlike callbyname strategy. In contrast, such results are obtained for the callby value MLlike strategy only for a restricted sublanguage in which constructor abstractions are limited to values.
Full Abstraction for Functional Languages with Control
 In Proceedings, Twelfth Annual IEEE Symposium on Logic in Computer Science
, 1997
"... This paper considers the consequences of relaxing the bracketing condition on `dialogue games', showing that this leads to a category of games which can be `factorized' into a wellbracketed substructure, and a set of classically typed morphisms. These are shown to be sound denotations for control o ..."
Abstract

Cited by 62 (5 self)
 Add to MetaCart
This paper considers the consequences of relaxing the bracketing condition on `dialogue games', showing that this leads to a category of games which can be `factorized' into a wellbracketed substructure, and a set of classically typed morphisms. These are shown to be sound denotations for control operators, allowing the factorization to be used to extend the definability result for PCF to one for PCF with control operators at atomic types. Thus we define a fully abstract and effectively presentable model of a functional language with nonlocal control as part of a modular approach to modelling nonfunctional features using games. 1.
Program extraction from classical proofs
 Annals of Pure and Applied Logic
, 1994
"... 1 Introduction It is well known that it is undecidable in general whether a given program meets its specification. In contrast, it can be checked easily by a machine whether a formal proof is correct, and from a constructive proof one can automatically extract a corresponding program, which by its v ..."
Abstract

Cited by 54 (9 self)
 Add to MetaCart
1 Introduction It is well known that it is undecidable in general whether a given program meets its specification. In contrast, it can be checked easily by a machine whether a formal proof is correct, and from a constructive proof one can automatically extract a corresponding program, which by its very construction is correct as well. This at least in principle opens a way to produce correct software, e.g. for safetycritical applications. Moreover, programs obtained from proofs are "commented " in a rather extreme sense. Therefore it is easy to maintain them, and also to adapt them to particular situations. We will concentrate on the question of classical versus constructive proofs. It is known that any classical proof of a specification of the form 8x9yB with B quantifierfree can be transformed into a constructive proof of the same formula. However, when it comes to extraction of a program from a proof obtained in this way, one easily ends up with a mess. Therefore, some refinements of the standard transformation are necessary.
On the computational content of the axiom of choice
 The Journal of Symbolic Logic
, 1998
"... We present a possible computational content of the negative translation of classical analysis with the Axiom of Choice. Our interpretation seems computationally more direct than the one based on Godel's Dialectica interpretation [10, 18]. Interestingly, thisinterpretation uses a re nement of the rea ..."
Abstract

Cited by 34 (1 self)
 Add to MetaCart
We present a possible computational content of the negative translation of classical analysis with the Axiom of Choice. Our interpretation seems computationally more direct than the one based on Godel's Dialectica interpretation [10, 18]. Interestingly, thisinterpretation uses a re nement of the realizibility semantics of the absurdity proposition, which is not interpreted as the empty type here. We alsoshowhow to compute witnesses from proofs in classical analysis, and how to interpret the axiom of Dependent Choice and Spector's Double Negation Shift.
Extracting constructive content from classical logic via controllike reductions
 In Bezem and Groote [12
, 1993
"... ..."
Thunks and the λcalculus
 IN THE JOURNAL OF FUNCTIONAL PROGRAMMING. RS976 OLIVIER DANVY AND ULRIK
, 1997
"... Plotkin, in his seminal article Callbyname, callbyvalue and the λcalculus, formalized evaluation strategies and simulations using operational semantics and continuations. In particular, he showed how callbyname evaluation could be simulated under callbyvalue evaluation and vice versa. Si ..."
Abstract

Cited by 21 (9 self)
 Add to MetaCart
Plotkin, in his seminal article Callbyname, callbyvalue and the λcalculus, formalized evaluation strategies and simulations using operational semantics and continuations. In particular, he showed how callbyname evaluation could be simulated under callbyvalue evaluation and vice versa. Since Algol 60, however, callbyname is both implemented and simulated with thunks rather than with continuations. We recast
Definitional interpreters revisited
 HigherOrder and Symbolic Computation
, 1998
"... Abstract. To introduce the republication of “Definitional Interpreters for HigherOrder Programming Languages”, the author recounts the circumstances of its creation, clarifies several obscurities, corrects a few mistakes, and briefly summarizes some more recent developments. ..."
Abstract

Cited by 21 (0 self)
 Add to MetaCart
Abstract. To introduce the republication of “Definitional Interpreters for HigherOrder Programming Languages”, the author recounts the circumstances of its creation, clarifies several obscurities, corrects a few mistakes, and briefly summarizes some more recent developments.