by
Hidehiko Masuhara and Akinori Yonezawa
Abstract:
Customizable meta-objects are a powerful abstraction for extending language features and implementation mechanisms, but interpretive execution suffers from severe performance penalty. Some of this penalty can be reduced by applying partial evaluation to meta-interpreters, but partial evaluation of meta-objects in existing concurrent object-oriented languages is ineffective. This paper proposes a new meta-object design for our reflective language ABCL/R3. It yields meta-objects that can be optimized effectively using partial evaluation. The crux of the design is the separation of state-related operations from other operations, and this separation is accomplished by using reader/writer methods in our concurrent object-oriented language called Schematic. Our benchmark trials show that non-trivial programs with partially evaluated meta-objects run more than six times faster than ones that are interpreted by meta-objects. In addition, a partially evaluated program that uses a customized meta-object runs as efficiently as a program that is manually rewritten so as to have the same functionality without using meta-objects.
Reference:
Design and Partial Evaluation of Meta-objects for a Concurrent Reflective Language (Hidehiko Masuhara and Akinori Yonezawa), In Proceedings of European Conference on Object-Oriented Programming (ECOOP'98) (Eric Jul, ed.), Springer-Verlag, volume 1445, 1998.
Bibtex Entry:
@inproceedings{masuhara98ecoop,
annote = {http://www.springer.de/comp/lncs/},
month = jul,
address = {Brussels, Belgium},
publisher = {Springer-Verlag},
series = {Lecture Notes in Computer Science},
volume = 1445,
editor = {Eric Jul},
year = 1998,
booktitle = {Proceedings of European Conference on Object-Oriented Programming
(ECOOP'98) },
author = {Hidehiko Masuhara and Akinori Yonezawa},
title = {Design and Partial Evaluation of Meta-objects for a
Concurrent Reflective Language},
pdf = {ecoop1998.pdf},
doi = {10.1007/BFb0054102},
url = {http://ecoop98.vub.ac.be/},
pages = {418--439},
acceptanceratio = {24/124 (19%)},
keywords = {ABCL/R},
abstract = {Customizable meta-objects are a powerful abstraction for extending language features and implementation mechanisms, but interpretive execution suffers from severe performance penalty. Some of this penalty can be reduced by applying partial evaluation to meta-interpreters, but partial evaluation of meta-objects in existing concurrent object-oriented languages is ineffective. This paper proposes a new meta-object design for our reflective language ABCL/R3. It yields meta-objects that can be optimized effectively using partial evaluation. The crux of the design is the separation of state-related operations from other operations, and this separation is accomplished by using reader/writer methods in our concurrent object-oriented language called Schematic. Our benchmark trials show that non-trivial programs with partially evaluated meta-objects run more than six times faster than ones that are interpreted by meta-objects. In addition, a partially evaluated program that uses a customized meta-object runs as efficiently as a program that is manually rewritten so as to have the same functionality without using meta-objects.}
}