Towards Unifying Inheritance and Automatic Program Specialization
Author(s) -
Ulrik Pagh Schultz
Publication year - 2002
Publication title -
daimi report series
Language(s) - English
Resource type - Journals
eISSN - 2245-9316
pISSN - 0105-8517
DOI - 10.7146/dpb.v31i566.7123
Subject(s) - inheritance (genetic algorithm) , computer science , programming language , class (philosophy) , object oriented programming , block (permutation group theory) , multiple inheritance , theoretical computer science , object (grammar) , simple (philosophy) , artificial intelligence , mathematics , chemistry , epistemology , geometry , philosophy , gene , biochemistry
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.
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom