LISP and Symbolic Computation, 10(2)113-158
An Automatic Program Generator for Multi-Level Specialization
Robert Glück, DIKU, Department of Computer Science, University of
Copenhagen, Universitetsparken 1, DK-2100 Copenhagen, Denmark
Jesper Jørgensen, Department of Mathematics and Physics, Royal Veterinary and Agricultural University, Thorvaldsensvej 40, DK-1871 Frederiksberg C, Denmark
Abstract: Program specialization can divide a computation into
several computation stages. This paper investigates the theoretical
limitations and practical problems of standard specialization tools,
presents multi-level specialization, and demonstrates that, in
combination with the cogen approach, it is far more practical than
previously supposed. The program generator which we designed and
implemented for a higher-order functional language converts programs
into very compact multi-level generating extensions that guarantee
fast successive specialization. Experimental results show a remarkable
reduction of generation time and generator size compared to previous
attempts of multi-level specialization by self-application. Our
approach to multi-level specialization seems well-suited for
applications where generation time and program size are critical.
Keywords: programming languages, program transformation,
partial evaluation, generating extensions, binding-time analysis,
functional languages, Scheme
|
This article can be downloaded [here].
|
|