Results 1 
7 of
7
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 ...
On proving syntactic properties of CPS programs
, 1999
"... Higherorder program transformations raise new challenges for proving properties of their output, since they resist traditional, rstorder proof techniques. In this work, we consider (1) the \onepass" continuationpassing style (CPS) transformation, which is secondorder, and (2) the occurrence ..."
Abstract

Cited by 22 (8 self)
 Add to MetaCart
Higherorder program transformations raise new challenges for proving properties of their output, since they resist traditional, rstorder proof techniques. In this work, we consider (1) the \onepass" continuationpassing style (CPS) transformation, which is secondorder, and (2) the occurrences of parameters of continuations in its output. To this end, we specify the onepass CPS transformation relationally and we use the proof technique of logical relations.
CallByPushValue: A Subsuming Paradigm
 in Proc. TLCA ’99
, 1999
"... . Callbypushvalue is a new paradigm that subsumes the callbyname and callbyvalue paradigms, in the following sense: both operational and denotational semantics for those paradigms can be seen as arising, via translations that we will provide, from similar semantics for callbypushvalue. To ..."
Abstract

Cited by 15 (0 self)
 Add to MetaCart
. Callbypushvalue is a new paradigm that subsumes the callbyname and callbyvalue paradigms, in the following sense: both operational and denotational semantics for those paradigms can be seen as arising, via translations that we will provide, from similar semantics for callbypushvalue. To explain callbypushvalue, we first discuss general operational ideas, especially the distinction between values and computations, using the principle that "a value is, a computation does". Using an example program, we see that the lambdacalculus primitives can be understood as push/pop commands for an operandstack. We provide operational and denotational semantics for a range of computational effects and show their agreement. We hence obtain semantics for callbyname and callbyvalue, of which some are familiar, some are new and some were known but previously appeared mysterious. 1 Introduction 1.1 Contribution In his invited lecture at POPL '98 [32], Reynolds, surveying over 30 year...
Assessing the Overhead of ML Exceptions by Selective CPS . . .
 In Proceedings of the 1998 ACM SIGPLAN Workshop on ML
, 1998
"... ML's exception handling makes it possible to describe exceptional execution ows conveniently, but it also forms a performance bottleneck. ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
ML's exception handling makes it possible to describe exceptional execution ows conveniently, but it also forms a performance bottleneck.
BDD Algorithms and Cache Misses
, 1996
"... Within the last few years, CPU speed has greatly overtaken memory speed. For this reason, implementation of symbolic algorithms with their extensive use of pointers and hashingmust be reexamined. ..."
Abstract

Cited by 12 (6 self)
 Add to MetaCart
Within the last few years, CPU speed has greatly overtaken memory speed. For this reason, implementation of symbolic algorithms with their extensive use of pointers and hashingmust be reexamined.
Automating Functional Program Transformation
, 2000
"... We present a framework for automatic program transformation of a strict and pure functional language with a welldefined semantics. It will be shown that such a framework can be implemented most declaratively and concisely in a recently developed higherorder logic programming language called Lambda ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present a framework for automatic program transformation of a strict and pure functional language with a welldefined semantics. It will be shown that such a framework can be implemented most declaratively and concisely in a recently developed higherorder logic programming language called LambdaProlog.
Interpreting functions as πcalculus processes: a tutorial
, 1999
"... This paper is concerned with the relationship betweencalculus and ��calculus. Thecalculus talks about functions and their applicative behaviour. This contrasts with the ��calculus, that talks about processes and their interactive behaviour. Application is a special form of interaction, and there ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
This paper is concerned with the relationship betweencalculus and ��calculus. Thecalculus talks about functions and their applicative behaviour. This contrasts with the ��calculus, that talks about processes and their interactive behaviour. Application is a special form of interaction, and therefore functions can be seen as a special form of processes. We study how the functions of thecalculus (the computable functions) can be represented as ��calculus processes. The ��calculus semantics of a language induces a notion of equality on the terms of that language. We therefore also analyse the equality among functions that is induced by their representation as ��calculus processes. This paper is intended as a tutorial. It however contains some original contributions. The main ones are: the use of wellknown Continuation Passing Style transforms to derive the encodings into ��calculus and prove their correctness; the encoding of typedcalculi.