TY - JOUR AU - Schultz, Ulrik Pagh PY - 2002/12/01 Y2 - 2024/03/29 TI - Towards Unifying Inheritance and Automatic Program Specialization JF - DAIMI Report Series JA - DPB VL - 31 IS - 566 SE - Articles DO - 10.7146/dpb.v31i566.7123 UR - https://tidsskrift.dk/daimipb/article/view/7123 SP - AB - 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. <br /> 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. ER -