Two key steps in the compilation of strict functional languages are the conversion of higher-order functions to data structures (clo- sures) and the transformation to tail-recursive style. We show how to perform both steps at once by applying first-order offline partial evaluation to a suitable interpreter. The resulting code is easy to transliterate to low-level C or native code. We have implemented the compilation to C; it yields a performance comparable to that of other modern Scheme-to-C compilers. In addition, we have integrated various optimizations such as constant propagation, higherorder removal, and arity raising simply by modifying the underlying interpreter. Purely first-order methods suffice to achieve the transformations. Our ...
Compiler generation based on Mosses ’ action semantics has been studied by Brown, Moura, and Watt, a...
Before software can be formally reasoned about, it must first be represented in some form of logic. ...
When doing an interactive proof about a piece of software, it is important that the underlying progr...
We illustrate a simple and effective solution to semantics-based compiling. Our solution is based o...
Partial evaluation can be used for automatic generation of compilers and was first implemented in [1...
Partial evaluation is a high-level optimization technique that, given a program text and some of its...
A partial evaluator is an automatic program transformation tool. Given as input a general program an...
As partial evaluation gets more mature, it is now possible to use this program transformation techni...
In this thesis we present and analyse a set of automatic source-to-source program transformations th...
We present a translation scheme from a pure functional domain-specific language (DSL) to C. The over...
Program specialization is a program transformation methodology which improves program efficiency by ...
) Lars Ole Andersen DIKU, Department of University of Copenhagen, Universitetsparken 1, DK 2100 Cop...
We present a strikingly simple partial evaluator, that is typedirected and reifies a compiled progra...
This paper presents a new approach to optimizing functional programs based on combining partial eval...
The techniques for compilation and optimiza-tion of the declarative (logic and functional) programmi...
Compiler generation based on Mosses ’ action semantics has been studied by Brown, Moura, and Watt, a...
Before software can be formally reasoned about, it must first be represented in some form of logic. ...
When doing an interactive proof about a piece of software, it is important that the underlying progr...
We illustrate a simple and effective solution to semantics-based compiling. Our solution is based o...
Partial evaluation can be used for automatic generation of compilers and was first implemented in [1...
Partial evaluation is a high-level optimization technique that, given a program text and some of its...
A partial evaluator is an automatic program transformation tool. Given as input a general program an...
As partial evaluation gets more mature, it is now possible to use this program transformation techni...
In this thesis we present and analyse a set of automatic source-to-source program transformations th...
We present a translation scheme from a pure functional domain-specific language (DSL) to C. The over...
Program specialization is a program transformation methodology which improves program efficiency by ...
) Lars Ole Andersen DIKU, Department of University of Copenhagen, Universitetsparken 1, DK 2100 Cop...
We present a strikingly simple partial evaluator, that is typedirected and reifies a compiled progra...
This paper presents a new approach to optimizing functional programs based on combining partial eval...
The techniques for compilation and optimiza-tion of the declarative (logic and functional) programmi...
Compiler generation based on Mosses ’ action semantics has been studied by Brown, Moura, and Watt, a...
Before software can be formally reasoned about, it must first be represented in some form of logic. ...
When doing an interactive proof about a piece of software, it is important that the underlying progr...