This paper presents a new approach to optimizing functional programs based on combining partial evaluation and rewriting. Programs are composed of higher-order primitives. Partial evaluation is used to eliminate higher-order functions. First-order rewriting is used to process the transformation. Laws about the higher-order primitives that are relevant for the optimizations are automatically extracted from a library and transformed into first-order terms using partial evaluation. Such a combination of a partial evaluation system and an intrinsically first-order rewriting tool allows a form of higher-order rewriting at a first-order level. This way, it is possible to automate deforestation of higher-order programs. Introduction The so-called...
Partial evaluation is a high-level optimization technique that, given a program text and some of its...
The completeness (i.e. confluent and terminating) property is an important concept when using a term...
. We revisit the main techniques of program transformation which are used in partial evaluation, mix...
Partial evaluation, or program specialization, is used when a variable is known to often hold one pa...
. The paper shows how term rewriting techniques can be used to automatically transform first-order f...
We demonstrate the usefulness of higher-order rewriting techniques for specializing programs, i.e., ...
In this paper we propose a complete fold/unfold based transformation system for optimizing (lazy) f...
. The aim of this work is to describe a procedure for the partial evaluation of functional logic lan...
Program manipulation is the task to perform transformations on program code, and is normally done in...
Many methods exist to perform program transformations, but most of them are dedicated to few program...
AbstractIn this paper we show how to transfer some developments done in the field of functionallogi...
Program specialization is a program transformation methodology which improves program efficiency by ...
Partial evaluation is an automatic program transformation that optimizes programs by specialization....
We show how the complexity of higher-order functional programs can be analysed automatically by appl...
Abstract. Recent advances in the foundations and the development of functional logic programming lan...
Partial evaluation is a high-level optimization technique that, given a program text and some of its...
The completeness (i.e. confluent and terminating) property is an important concept when using a term...
. We revisit the main techniques of program transformation which are used in partial evaluation, mix...
Partial evaluation, or program specialization, is used when a variable is known to often hold one pa...
. The paper shows how term rewriting techniques can be used to automatically transform first-order f...
We demonstrate the usefulness of higher-order rewriting techniques for specializing programs, i.e., ...
In this paper we propose a complete fold/unfold based transformation system for optimizing (lazy) f...
. The aim of this work is to describe a procedure for the partial evaluation of functional logic lan...
Program manipulation is the task to perform transformations on program code, and is normally done in...
Many methods exist to perform program transformations, but most of them are dedicated to few program...
AbstractIn this paper we show how to transfer some developments done in the field of functionallogi...
Program specialization is a program transformation methodology which improves program efficiency by ...
Partial evaluation is an automatic program transformation that optimizes programs by specialization....
We show how the complexity of higher-order functional programs can be analysed automatically by appl...
Abstract. Recent advances in the foundations and the development of functional logic programming lan...
Partial evaluation is a high-level optimization technique that, given a program text and some of its...
The completeness (i.e. confluent and terminating) property is an important concept when using a term...
. We revisit the main techniques of program transformation which are used in partial evaluation, mix...