Results 11  20
of
27
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.
From Control Effects to Typed Continuation Passing
 In 30th SIGPLANSIGACT Symposium on Principles of Programming Languages (POPL’03
, 2003
"... Firstclass continuations are a powerful computational effect, allowing the programmer to express any form of jumping. Types and effect systems can be used to reason about continuations, both in the source language and in the target language of the continuationpassing transform. In this paper, we e ..."
Abstract

Cited by 19 (2 self)
 Add to MetaCart
Firstclass continuations are a powerful computational effect, allowing the programmer to express any form of jumping. Types and effect systems can be used to reason about continuations, both in the source language and in the target language of the continuationpassing transform. In this paper, we establish the connection between an effect system for firstclass continuations and typed versions of continuationpassing style. A region in the effect system determines a local answer type for continuations, such that the continuation transforms of pure expressions are parametrically polymorphic in their answer types. We use this polymorphism to derive transforms that make use of effect information, in particular, a mixed linear/nonlinear continuationpassing transform, in which expressions without control effects are passed their continuations linearly.
Advanced Languages for Systems Software The Fox Project in 1994
, 1994
"... It has been amply demonstrated in recent years that careful attention to the structure of systems software can lead to greater flexibility, reliability, and ease of implementation, without incurring an undue penalty in performance. It is our contention that advanced programming languages particul ..."
Abstract

Cited by 15 (0 self)
 Add to MetaCart
It has been amply demonstrated in recent years that careful attention to the structure of systems software can lead to greater flexibility, reliability, and ease of implementation, without incurring an undue penalty in performance. It is our contention that advanced programming languages particularly languages with a mathematically rigorous semantics, and featuring higherorder functions, polymorphic types, firstclass continuations, and a useful and powerful module systemare ideally suited to expressing such structure. Indeed, our previous research has shown that the use of an advanced programming language can have a fundamental effect on system design, leading naturally to system architectures that are highly modular, efficient, and allow reuse of code. We are thus working to demonstrate the viability and benefits of advanced languages for programming realworld systems. To achieve this, we have organized our research into the three areas of language design, compiler technolo...
On the Transformation between Direct and Continuation Semantics
 Proceedings of the 9th Conference on Mathematical Foundations of Programming Semantics, number 802 in Lecture Notes in Computer Science
, 1993
"... . Proving the congruence between a direct semantics and a continuation semantics is often surprisingly complicated considering that directstyle terms can be transformed into continuation style automatically. However, transforming the representation of a directstyle semantics into continuation sty ..."
Abstract

Cited by 14 (11 self)
 Add to MetaCart
. Proving the congruence between a direct semantics and a continuation semantics is often surprisingly complicated considering that directstyle terms can be transformed into continuation style automatically. However, transforming the representation of a directstyle semantics into continuation style usually does not yield the expected representation of a continuationstyle semantics (i.e., one written by hand). The goal of our work is to automate the transformation between textual representations of direct semantics and of continuation semantics. Essentially, we identify properties of a directstyle representation (e.g., totality), and we generalize the transformation into continuation style accordingly. As a result, we can produce the expected representation of a continuation semantics, automatically. It is important to understand the transformation between representations of direct and of continuation semantics because it is these representations that get processed in any kind of ...
Recursion from Iteration
 Lisp and Symbolic Computation
, 1994
"... . In a simplytyped, callbyvalue (CBV) language with firstclass continuations, the usual CBV fixpoint operator can be defined in terms of a simple, infinitelylooping iteration primitive. We first consider a natural but flawed definition, based on exceptions and "iterative deepening" of finite unf ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
. In a simplytyped, callbyvalue (CBV) language with firstclass continuations, the usual CBV fixpoint operator can be defined in terms of a simple, infinitelylooping iteration primitive. We first consider a natural but flawed definition, based on exceptions and "iterative deepening" of finite unfoldings, and point out some of its shortcomings. Then we present the proper construction using full firstclass continuations, with both an informal derivation and a proof that the behavior of the defined operator faithfully mimics a "builtin" recursion primitive. In fact, given an additional uniformity assumption, the construction is a twosided inverse of the usual definition of iteration from recursion. Continuing, we show that the CBV looping primitive is in fact the directstyle equivalent of a continuationpassingstyle fixpoint, and that this correspondence extends all the way to traditional definitions of these operators in terms of reflexive types. 1. Introduction 1.1. Background ...
ML partial evaluation using setbased analysis
 Record of the 1994 ACM SIGPLAN Workshop on ML and its Applications, Rapport de recherche N o 2265, INRIA
, 1994
"... 8313, issued by ESD/AVS under Contract No. F1962891C0168. It was also partially sponsored ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
8313, issued by ESD/AVS under Contract No. F1962891C0168. It was also partially sponsored
Polymorphism by Name for . . .
 IN CONFERENCE RECORD OF THE TWENTIETH ANNUAL ACM SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES
, 1993
"... This article investigates an MLlike language with byname semantics for polymorphism: polymorphic objects are not evaluated once for all at generalization time, but reevaluated at each specialization. Unlike the standard ML semantics, the byname semantics works well with polymorphic references and ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
This article investigates an MLlike language with byname semantics for polymorphism: polymorphic objects are not evaluated once for all at generalization time, but reevaluated at each specialization. Unlike the standard ML semantics, the byname semantics works well with polymorphic references and polymorphic continuations: the naive typing rules for references and for continuations are sound with respect to this semantics. Polymorphism by name leads to a better integration of these imperative features into the ML type discipline. Practical experience shows that it retains most of the eciency and predictability of polymorphism by value.
Unchecked Exceptions can be Strictly More Powerful than Call/CC
 HigherOrder and Symbolic Computation
, 1996
"... We demonstrate that in the context of staticallytyped purelyfunctional lambda calculi without recursion, unchecked exceptions (e.g., SML exceptions) can be strictly more powerful than call/cc. More precisely, we prove that a natural extension of the simplytyped lambda calculus with unchecked exce ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
We demonstrate that in the context of staticallytyped purelyfunctional lambda calculi without recursion, unchecked exceptions (e.g., SML exceptions) can be strictly more powerful than call/cc. More precisely, we prove that a natural extension of the simplytyped lambda calculus with unchecked exceptions is strictly more powerful than all known sound extensions of Girard's Fomega (a superset of the simplytyped lambda calculus) with call/cc. This result is established by showing that the first language is Turing complete while the later languages permit only a subset of the recursive functions to be written. We show that our natural extension of the simplytyped lambda calculus with unchecked exceptions is Turing complete by reducing the untyped lambda calculus to it by means of a novel method for simulating recursive types using uncheckedexceptionreturning functions. The result concerning extensions of Fomega with call/cc stems from previous work of the author and Robert Harper.
Implicit Polymorphic Type System for the Blue Calculus
, 1997
"... The Blue Calculus is a direct extension of both the lambda and the pi calculi. In a preliminary work from Gérard Boudol, a simple type system was given that incorporates Curry's type inference for the lambdacalculus. In the present paper we study an implicit polymorphic type system, adapted from th ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
The Blue Calculus is a direct extension of both the lambda and the pi calculi. In a preliminary work from Gérard Boudol, a simple type system was given that incorporates Curry's type inference for the lambdacalculus. In the present paper we study an implicit polymorphic type system, adapted from the ML typing discipline. Our typing system enjoys subject reduction and principal type properties and we give results on the complexity for the type inference problem. These are interesting results for the blue calculus as a programming notation for higherorder concurrency.