Higher-Order and Symbolic Computation, 12(4)309-335

Combining Program and Data Specialization

Sandrine Chirokoff, Compose project, IRISA/INRIA-Université de Rennes 1, Campus Universitaire de Beaulieu, 35042 Rennes Cedex, France
Charles Consel, Compose project, IRISA/INRIA-Université de Rennes 1, Campus Universitaire de Beaulieu, 35042 Rennes Cedex, France
Renaud Marlet, Compose project, IRISA/INRIA-Université de Rennes 1, Campus Universitaire de Beaulieu, 35042 Rennes Cedex, France

Abstract: Program and data specialization have always been studied separately, although they are both aimed at processing early computations. Program specialization encodes the result of early computations into a new program; while data specialization encodes the result of early computations into data structures.

In this paper, we present an extension of the Tempo specializer, which performs both program and data specialization. We show how these two strategies can be integrated in a single specializer. This new kind of specializer provides the programmer with complementary strategies which widen the scope of specialization. We illustrate the benefits and limitations of these strategies and their combination on a variety of programs.

Keywords: program transformation, partial evaluation, program specialization, data specialization, combining program, data specialization

This article can be downloaded [here].
[picture of journal cover]

June 2003 - hosc@brics.dk