by
Hidehiko Masuhara, Satoshi Matsuoka, Kenichi Asai and Akinori Yonezawa
Abstract:
Meta-level programmability is beneficial for parallel/distributed object-oriented computing to improve performance, etc. The major problem, however, is interpretation overhead due to meta-circular interpretation. To solve this problem, we propose a compilation framework for object-oriented concurrent reflective languages using partial evaluation. Since traditional partial evaluators do not allow us to directly deal with meta-circular interpreters written with concurrent objects, we devised techniques such as pre-/post-processing, a new proposed preaction extension to partial evaluation in order to handle side-effects, etc. Benchmarks of a prototype compiler for our language ABCL/R3 indicate that (1) the meta-level interpretation is essentially `compiled away,' and (2) meta-level optimizations in a parallel application, running on a Fujitsu MPP AP1000, exhibits only 10–30% overhead compared to the hand-crafted source-level optimization in a non-reflective language.
Reference:
Compiling Away the Meta-Level in Object-Oriented Concurrent Reflective Languages Using Partial Evaluation (Hidehiko Masuhara, Satoshi Matsuoka, Kenichi Asai and Akinori Yonezawa), In Proceedings of Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) (OOPSLA'95) (Mary E. S. Loomis, ed.), volume 30(10), 1995.
Bibtex Entry:
@inproceedings{masuhara95oopsla,
editor = {Mary E. S. Loomis},
month = oct,
address = {Austin, TX},
organization = {{ACM}},
series = {ACM SIGPLAN Notices},
volume = {30(10)},
year = 1995,
booktitle = {Proceedings of Conference on Object-Oriented Programming
Systems, Languages, and Applications {(OOPSLA)} (OOPSLA'95)},
author = {Hidehiko Masuhara and Satoshi Matsuoka and
Kenichi Asai and Akinori Yonezawa},
title = {Compiling Away the Meta-Level in Object-Oriented
Concurrent Reflective Languages Using Partial
Evaluation},
doi = {10.1145/217839.217869},
pdf = {oopsla1995.pdf},
pages = {300--315},
acceptanceratio = {28/155},
keywords = {ABCL/R},
abstract = {Meta-level programmability is beneficial for parallel/distributed object-oriented computing to improve performance, etc. The major problem, however, is interpretation overhead due to meta-circular interpretation. To solve this problem, we propose a compilation framework for object-oriented concurrent reflective languages using partial evaluation. Since traditional partial evaluators do not allow us to directly deal with meta-circular interpreters written with concurrent objects, we devised techniques such as pre-/post-processing, a new proposed preaction extension to partial evaluation in order to handle side-effects, etc. Benchmarks of a prototype compiler for our language ABCL/R3 indicate that (1) the meta-level interpretation is essentially `compiled away,' and (2) meta-level optimizations in a parallel application, running on a Fujitsu MPP AP1000, exhibits only 10--30\% overhead compared to the hand-crafted source-level optimization in a non-reflective language.}
}