Results 1 
5 of
5
Polymorphic type assignment and CPS conversion
 LISP and Symbolic Computation
, 1993
"... Meyer and Wand established that the type of a term in the simply typedcalculus may be related in a straightforward manner to the type of its callbyvalue CPS transform. This typing property maybe extended to Schemelike continuationpassing primitives, from which the soundness of these extensions ..."
Abstract

Cited by 35 (10 self)
 Add to MetaCart
Meyer and Wand established that the type of a term in the simply typedcalculus may be related in a straightforward manner to the type of its callbyvalue CPS transform. This typing property maybe extended to Schemelike continuationpassing primitives, from which the soundness of these extensions follows. We study the extension of these results to the DamasMilner polymorphic type assignment system under both the callbyvalue and callbyname interpretations. We obtain CPS transforms for the callbyvalue interpretation, provided that the polymorphic let is restricted to values, and for the callbyname interpretation with no restrictions. We prove that there is no callbyvalue CPS transform for the full DamasMilner language that validates the MeyerWand typing property and is equivalent to the standard callbyvalue transform up toconversion. 1
CPS Transformation after Strictness Analysis
 ACM Letters on Programming Languages and Systems
, 1993
"... syntax of the source language ` c : ' f:::; x : ø ; :::g ` x : ø ß ` e : ø !ø ß ` fix e : ø ß [ fx : ø 1 g ` e : ø 2 ß ` x : ø 1 : e : ø 1 !ø 2 ß ` e 0 : ø 1 !ø 2 ß ` e 1 : ø 1 ß ` @ e 0 e 1 : ø 2 ß ` e 1 : ' ß ` e 2 : ø ß ` e 3 : ø ß ` if e 1 then e 2 else e 3 : ø ß ` e 0 : ø 0 ß [ fx : ø 0 g ` ..."
Abstract

Cited by 26 (10 self)
 Add to MetaCart
syntax of the source language ` c : ' f:::; x : ø ; :::g ` x : ø ß ` e : ø !ø ß ` fix e : ø ß [ fx : ø 1 g ` e : ø 2 ß ` x : ø 1 : e : ø 1 !ø 2 ß ` e 0 : ø 1 !ø 2 ß ` e 1 : ø 1 ß ` @ e 0 e 1 : ø 2 ß ` e 1 : ' ß ` e 2 : ø ß ` e 3 : ø ß ` if e 1 then e 2 else e 3 : ø ß ` e 0 : ø 0 ß [ fx : ø 0 g ` e 1 : ø 1 ß ` let x = e 0 in e 1 : ø 1 ß ` e 1 : ø 1 ß ` e 2 : ø 2 ß ` pair e 1 e 2 : ø 1 \Theta ø 2 ß ` e : ø 1 \Theta ø 2 ß ` fst e : ø 1 ß ` e : ø 1 \Theta ø 2 ß ` snd e : ø 2 Fig. 2. Typechecking rules for the source language approach is used by Kesley and Hudak [11] and by Fradet and Le M'etayer [9]. Both include a CPS transformation. Fradet and Le M'etayer compile both CBN and CBV programs by using the CBN and the CBV CPStransformation. Recently, Burn and Le M'etayer have combined this technique with a global programanalysis [2], which is comparable to our goal here. 1.4 Overview Section 2 presents the syntax of the source language and the strictnessannotated language. We c...
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
Callbyneed and Continuationpassing Style
 Lisp and Symbolic Computation
, 1993
"... . This paper examines the transformation of callbyneed terms into continuation passing style (CPS). It begins by presenting a simple transformation of callbyneed terms into program graphs and a reducer for such graphs. From this, an informal derivation is carried out, resulting in a translat ..."
Abstract

Cited by 17 (0 self)
 Add to MetaCart
. This paper examines the transformation of callbyneed terms into continuation passing style (CPS). It begins by presenting a simple transformation of callbyneed terms into program graphs and a reducer for such graphs. From this, an informal derivation is carried out, resulting in a translation from terms into selfreducing program graphs, where the graphs are represented as CPS terms involving storage operations. Though informal, the derivation proceeds in simple steps, and the resulting translation is taken to be our canonical CPS transformation for callbyneed terms. In order to define the CPS transformation more formally, two alternative presentations are given. The first takes the form of a continuation semantics for the callbyneed language. The second presentation follows Danvy and Hatcliff 's twostage decomposition of the callbyname CPS transformation, resulting in a similar twostage CPS transformation for callbyneed. Finally, a number of practical matters are...
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.