Results 1 -
7 of
7
A Generic Account of Continuation-Passing Styles
- Proceedings of the Twenty-first Annual ACM Symposium on Principles of Programming Languages
, 1994
"... We unify previous work on the continuation-passing style (CPS) transformations in a generic framework based on Moggi's computational meta-language. This framework is used to obtain CPS transformations for a variety of evaluation strategies and to characterize the corresponding administrative reducti ..."
Abstract
-
Cited by 79 (33 self)
- Add to MetaCart
We unify previous work on the continuation-passing style (CPS) transformations in a generic framework based on Moggi's computational meta-language. 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 meta-language. Mapping -terms into the meta-language captures computational properties (e.g., partiality, strictness) and evaluation order explicitly in both the term and the type structure of the meta-language. The CPS transformation is then obtained by applying a generic transformation from terms and types in the meta-language to CPS terms and types, based on a typed term representation of the continuation ...
On proving syntactic properties of CPS programs
, 1999
"... Higher-order program transformations raise new challenges for proving properties of their output, since they resist traditional, rst-order proof techniques. In this work, we consider (1) the \one-pass" continuationpassing style (CPS) transformation, which is second-order, and (2) the occurrence ..."
Abstract
-
Cited by 22 (8 self)
- Add to MetaCart
Higher-order program transformations raise new challenges for proving properties of their output, since they resist traditional, rst-order proof techniques. In this work, we consider (1) the \one-pass" continuationpassing style (CPS) transformation, which is second-order, and (2) the occurrences of parameters of continuations in its output. To this end, we specify the one-pass CPS transformation relationally and we use the proof technique of logical relations.
Call-By-Push-Value: A Subsuming Paradigm
- in Proc. TLCA ’99
, 1999
"... . Call-by-push-value is a new paradigm that subsumes the call-by-name and call-by-value 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 call-by-push-value. To ..."
Abstract
-
Cited by 14 (0 self)
- Add to MetaCart
. Call-by-push-value is a new paradigm that subsumes the call-by-name and call-by-value 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 call-by-push-value. To explain call-by-push-value, 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 lambda-calculus primitives can be understood as push/pop commands for an operand-stack. We provide operational and denotational semantics for a range of computational effects and show their agreement. We hence obtain semantics for call-by-name and call-by-value, 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 hashing---must 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 hashing---must be reexamined.
Automating Functional Program Transformation
, 2000
"... We present a framework for automatic program transformation of a strict and pure functional language with a well-defined semantics. It will be shown that such a framework can be implemented most declaratively and concisely in a recently developed higher-order 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 well-defined semantics. It will be shown that such a framework can be implemented most declaratively and concisely in a recently developed higher-order logic programming language called LambdaProlog.
Interpreting functions as π-calculus processes: a tutorial
, 1999
"... This paper is concerned with the relationship between-calculus and ��-calculus. The-calculus 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 between-calculus and ��-calculus. The-calculus 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 the-calculus (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 well-known Continuation Passing Style transforms to derive the encodings into ��-calculus and prove their correctness; the encoding of typed-calculi.

