Results 11  20
of
21
Value Transforming Style
, 1992
"... A new program transformation is presented that allows to remove control operators related to partial continuations. The basis for the transformation is to adopt an improved representation for continuations that makes frames apparent. Various examples of control operators with or without dynamic exte ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
A new program transformation is presented that allows to remove control operators related to partial continuations. The basis for the transformation is to adopt an improved representation for continuations that makes frames apparent. Various examples of control operators with or without dynamic extent stress are presented. Scheme [IEE91], offers firstclass continuations with indefinite extent. Pioneered in [Lan65, Rey72], continuations proved to be very useful tools allowing to program a wide variety of control features such as coroutines [Wan80], engines [HF84], escapes [HFW84] etc. The call/cc function reifies [Wan86] continuations into monadic functions, transfer of control occurs when these functional objects are applied. A transformation called "Continuation Passing Style" (or CPS for short) exists that transforms a program using call/cc into a new semantically equivalent program without call/cc. In this transformation, continuations are transformed again into monadic functions....
The Buried Binding and Dead Binding Problems of Lisp 1.5: Sources of Incomparability in Garbage Collector Measurements
, 1976
"... Lisp has become the language of choice for many applications such as artificial intelligence programs or symbol manipulation. The original implementation of Lisp 1.5 was a concise, elegant statement of the semantics of the language. Although production Lisp systems have undergone significant develop ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Lisp has become the language of choice for many applications such as artificial intelligence programs or symbol manipulation. The original implementation of Lisp 1.5 was a concise, elegant statement of the semantics of the language. Although production Lisp systems have undergone significant development and evolution since Lisp 1.5, including the development of sophisticated compilers, there have been few significant theoretical improvements in the implementations of these systems. Most improvements, such as arrays or shallowbinding, have been made more for the sake of speed than for the sake of storage. A notable exception to this is the technique of tail recursion, which can save more than just stack space. We believe that more can be done to reduce the storage requirements of Lisp programs. Although in many instances, the Lisp programmer can reduce the storage requirements of his program by deleting unneeded pointers as soon as possible, there is nothing he can do about systematic ...
Continuation Conscious Compilation
 Lisp Pointers
, 1993
"... This paper proposes some (unimplemented) ideas for the compilation of Schemelike languages where functions may be specialized with respect to some of the continuations with which they are invoked. This allows for some optimizations, for instance, when a frame to be pushed and the frame on top of th ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This paper proposes some (unimplemented) ideas for the compilation of Schemelike languages where functions may be specialized with respect to some of the continuations with which they are invoked. This allows for some optimizations, for instance, when a frame to be pushed and the frame on top of the continuation can be combined into a single and simplified frame. Among possible improvements are: intermediate data structure elimination and removal of useless calculations. Functions can therefore be compiled with respect to their near future and reorganize it when appropriate. The compilation technique is based on a program transformation named Abstract Continuation Passing Style that makes continuation (i.e. stack) frames explicit. Shape of continuations is approximated to determine which frames would gain by being combined together then partial evaluation is used to determine the behavior of combined frames. Our main results cover local deforestationlike effect as well as iterative c...
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.
Modeldriven engineering from modular monadic semantics: Implementation techniques targeting hardware and software
 in Proceedings of the IFIP Working Conference on Domain Specific Languages (DSL09
, 2009
"... Abstract. Recent research has shown how the formal modeling of concurrent systems can benefit from monadic structuring. With this approach, a formal system model is really a program in a domain specific language defined by a monad for sharedstate concurrency. Can these models be compiled into effic ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. Recent research has shown how the formal modeling of concurrent systems can benefit from monadic structuring. With this approach, a formal system model is really a program in a domain specific language defined by a monad for sharedstate concurrency. Can these models be compiled into efficient implementations? This paper addresses this question and presents an overview of techniques for compiling monadic concurrency models directly into reasonably efficient software and hardware implementations. The implementation techniques described in this article form the basis of a semanticsdirected approach to modeldriven engineering. 1
Jumping Semantics For CallByPushValue
"... Abstract. We give a jumping machine for a higherorder language, embodying the intuition that calling a procedure is a jump, and returning from a procedure is also a jump. The machine makes it very easy to execute a program on paper, so it is a kind of pedagogical tool. It represents a closure in a ..."
Abstract
 Add to MetaCart
Abstract. We give a jumping machine for a higherorder language, embodying the intuition that calling a procedure is a jump, and returning from a procedure is also a jump. The machine makes it very easy to execute a program on paper, so it is a kind of pedagogical tool. It represents a closure in a graphical way, so that a jump does not need to be accompanied by a separate change of environment (as it does in the Krivine machine). The language used is callbypushvalue, making it easy to obtain similar jumping machines for callbyvalue and callbyname calculi (as these are fragments of callbypushvalue).
An early use of continuations and partial evaluation for compiling rules written in FOPC
 in FOPC. HigherOrder and Symbolic Computation
, 1999
"... This brief historical note describes research which was done in the period 19701973, and where continuations were introduced in a fairly pragmatic way together with partial evaluation in order to compile "rules" expressed as statements in firstorder predicate calculus. The methods used at that tim ..."
Abstract
 Add to MetaCart
This brief historical note describes research which was done in the period 19701973, and where continuations were introduced in a fairly pragmatic way together with partial evaluation in order to compile "rules" expressed as statements in firstorder predicate calculus. The methods used at that time were quite straightforward, but they may be of some interest for the present workshop as an "early bird" result. 1 Background Around 1970, there was considerable interest in the artificial intelligence community for "programming language for AI". The mostly referenced competitors for the title were Planner [5] and QA4 [8], but there were also other proposals such as Pop2 [2] and Lisp A [9]. At the time, I was starting a research group in this area at Uppsala University in Sweden. As it became increasingly evident that these languages were mostly used for deduction with the addition of certain additional techniques (such as nonmonotonicity), we started to investigate the idea of using...
Continuation Sensitive Compilation
"... This paper presents a compilation technique for Schemelike languages where functions may look at their continuation before pushing frames onto it. This allows for some optimizations when the frame to be pushed and the frame on top of the continuation can be combined into a single and simplified f ..."
Abstract
 Add to MetaCart
This paper presents a compilation technique for Schemelike languages where functions may look at their continuation before pushing frames onto it. This allows for some optimizations when the frame to be pushed and the frame on top of the continuation can be combined into a single and simplified frame. Among possible simplifications are: intermediate data structure elimination and removal of redundant calculations. Functions can therefore be compiled with respect to their near future and reorganize it when appropriate. The compilation technique is based on an improved CPSlike transformation that makes continuation (i.e. stack) frames explicit. Shape of continuations is approximated to determine which frames would gain by being combined together then partial evaluation is used to determine the behavior of combined frames. Our main results cover local deforestationlike effect as well as iterative compilation of associatively wrapped recursions. This paper presents a compilat...
15819 Typed Compilation
, 2000
"... ribed where the target language is a typed assembly language [MWCG98]. As usual, a typepreserving transformation relates the two languages. 1.1 The source language The source language for the translation is the usual core lambda calculus already introduced. However, in the interest of moving towa ..."
Abstract
 Add to MetaCart
ribed where the target language is a typed assembly language [MWCG98]. As usual, a typepreserving transformation relates the two languages. 1.1 The source language The source language for the translation is the usual core lambda calculus already introduced. However, in the interest of moving toward a more realistic source language, the constructor for functions has been made recursive. Also, a few operations on the integers have been provided. Types ::= ff Type variable j int The integer type j 1 \Theta 2 Product type j 1 ! 2 Function type j 8ff: Universal quantifier Expressions e ::= x Variable j i Integer constant 1 j e 1 + e 2