• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Sound Rules for Parallel Evaluation of a Functional Language with callcc (1993)

by Luc Moreau, Daniel Ribbens
Add To MetaCart

Tools

Sorted by:
Results 1 - 5 of 5

A Generic Account of Continuation-Passing Styles

by John Hatcliff, Olivier Danvy - 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 ...

Partial Continuations as the Difference of Continuations, A Duumvirate of Control Operators

by Luc Moreau, Christian Queinnec - International Conference on Programming Language Implementation and Logic Programming (PLILP'94). Proceedings , 1994
"... We define a partial continuation as the difference of two continuations. We exhibit, in a single framework, several design choices and their impact on semantics. The ability of partial continuations to manipulate stack frames blurs the nature of dynamic extent; therefore, we introduce a new concep ..."
Abstract - Cited by 19 (2 self) - Add to MetaCart
We define a partial continuation as the difference of two continuations. We exhibit, in a single framework, several design choices and their impact on semantics. The ability of partial continuations to manipulate stack frames blurs the nature of dynamic extent; therefore, we introduce a new concept of prefixal extent that characterises the time during which a partial continuation can be reified. We propose two equivalent formal semantics for partial continuations: a context-rewriting system and a cps translation. Two new and realistic examples illustrate both the interest of partial continuations and the expressiveness of our choices.

The PCKS-machine. an abstract machine for sound evaluation of parallel functional programs with first-class continuations

by Luc Moreau - In European Symposium on Programming (ESOP'94), number 788 in Lecture Notes in Computer Science , 1994
"... Abstract. The PCKS-machine is an abstract machine that evaluates parallel functional programs with rst-class continuations. Parallelism is introduced by the construct pcall, which provides a fork-and-join type of parallelism. To the best of our knowledge, the PCKS-machine is the rst implementation o ..."
Abstract - Cited by 7 (3 self) - Add to MetaCart
Abstract. The PCKS-machine is an abstract machine that evaluates parallel functional programs with rst-class continuations. Parallelism is introduced by the construct pcall, which provides a fork-and-join type of parallelism. To the best of our knowledge, the PCKS-machine is the rst implementation of such a language that is proved to have a transparent construct for parallelism: every program using such a construct returns the same result as in the absence of this construct. This machine is also characterised by the non-speculative invocation of continuations whose interest is illustrated in an application. 1

Non-speculative and Upward Invocation of Continuations in a Parallel Language

by Luc Moreau - In International Joint Conference on Theory and Practice of Software Development (TAPSOFT/FASE'95), LNCS 915 , 1995
"... . A method of preserving the sequential semantics in parallel programs with first-class continuations is to invoke continuations non-speculatively. This method, which prevents a continuation from being invoked as long as its invocation can infringe the sequential semantics, reduces parallelism by th ..."
Abstract - Cited by 2 (2 self) - Add to MetaCart
. A method of preserving the sequential semantics in parallel programs with first-class continuations is to invoke continuations non-speculatively. This method, which prevents a continuation from being invoked as long as its invocation can infringe the sequential semantics, reduces parallelism by the severe conditions that it imposes, especially on upward uses. In this paper, we present new conditions for invoking continuations in an upward way and both preserving the sequential semantics and providing parallelism. This new approach is formalised in the PCKS-machine, which is proved to be correct by showing that it has the same observational equivalence theory as the sequential semantics. 1 Introduction The continuation of an expression is the computation that remains to be performed after evaluating this expression [16]. Some programming languages like Scheme [14], or SML of New Jersey [1] provide the user with two facilities to act on the interpreter continuation: the capture and th...

A Parallel Functional Language With First-Class Continuations. Programming Style and Semantics

by Luc Moreau - Computers and Artificial Intelligence
"... We present an operational semantics for a functional language with rst-class continuations and transparent constructs for parallelism fork and pcall. The sequential semantics of programs with rst-class continuations is preserved when parallel evaluation is allowed, by verifying whether some expre ..."
Abstract - Cited by 1 (0 self) - Add to MetaCart
We present an operational semantics for a functional language with rst-class continuations and transparent constructs for parallelism fork and pcall. The sequential semantics of programs with rst-class continuations is preserved when parallel evaluation is allowed, by verifying whether some expressions have returned a value before applying a continuation. These expressions are the ones that are evaluated before this continuation is applied in a left-to-right sequential order. An implementation is proposed using a notion of higher-order continuation that we call metacontinuation. This semantics is costless when rst-class continuations are not used. Several programs also illustrate the programming style that can be adopted in such a language. Keywords: Scheme, parallelism, transparency, continuation, metacontinuation, left expression, operational semantics. 1 Introduction There are essentially two trends to extend a functional language with parallel constructs. On the one...
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University