Towards Unifying Inheritance and Automatic Program Specialization

  • Ulrik Pagh Schultz


Inheritance allows a class to be specialized and its attributes refined, but implementation specialization can only take place by overriding with manually implemented methods. Automatic program specialization can generate a specialized, efficient implementation. However, specialization of programs and specialization of classes (inheritance) are considered different abstractions. We present a new programming language, Lapis, that unifies inheritance and program specialization at the conceptual, syntactic, and semantic levels.
This paper presents the initial development of Lapis, which uses inheritance with covariant specialization to control the automatic application of program specialization to class members. Lapis integrates object-oriented concepts, block structure, and techniques from automatic program specialization to provide both a language where object-oriented designs can be efficiently implemented and a simple yet powerful partial evaluator for an object-oriented language.

Author Biography

Ulrik Pagh Schultz
How to Cite
Schultz, U. (2002). Towards Unifying Inheritance and Automatic Program Specialization. DAIMI Report Series, 31(566).