Higher-Order and Symbolic Computation, 17(1/2)47-92
Specialization Scenarios: A Pragmatic Approach to Declaring Program Specialization
Anne-Françoise Le Meur, INRIA/LaBRI, ENSEIRB, 1 avenue du docteur Albert Schweitzer, 33402 Talence Cedex, France
Julia L. Lawall, Department of Computer Science, University of Copenhagen, Universitetsparken 1, DK-2100 Copenhagen, Denmark
Charles Consel, INRIA/LaBRI, ENSEIRB, 1 avenue du docteur Albert Schweitzer, 33402 Talence Cedex, France
Abstract: Partial evaluation is a program transformation that
automatically specializes a program with respect to
invariants. Despite successful application in areas such as graphics,
operating systems, and software engineering, partial evaluators have
yet to achieve widespread use. One reason is the difficulty of
adequately describing specialization opportunities. Indeed,
underspecialization or overspecialization often occurs, without any
feedback as to the source of the problem. We have developed a
high-level, module-based language allowing the program developer to
guide the choice of both the code to specialize and the invariants to
exploit during the specialization process. To ease the use of partial
evaluation, the syntax of this language is similar to the declaration
syntax of the target language of the partial evaluator. To provide
feedback, declarations are checked during the analyses performed by
partial evaluation. The language has been successfully used by a
variety of users, including students having no previous experience
with partial evaluation.
Keywords: semantics-based program manipulation, program
specialization, predictable partial evaluation, declaration of
specialization opportunities
|
This article can be downloaded [here].
|
|