Towards unifying inheritance and automatic program specialization

Research output: Contribution to journalJournal articleResearch


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, effcient 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 e#ciently implemented and a simple yet powerful partial evaluator for an object-oriented language.
Original languageEnglish
Book seriesAarhus Universitet. Institut for Matematiske Fag. Datalogisk Afdeling. P B
Issue number566
Number of pages31
Publication statusPublished - 2002
Externally publishedYes


Dive into the research topics of 'Towards unifying inheritance and automatic program specialization'. Together they form a unique fingerprint.

Cite this