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].
[picture of journal cover]

June 2003 - hosc@brics.dk