by
Hidehiko Masuhara, Yuuya Sugita and Akinori Yonezawa
Abstract:
In reflective languages, application programs can customize a language system that executes the application programs. Our premise is that this customizability of reflective languages can be a basic mechanisms of software evolution. In this paper, we present a simple architecture of a reflective language that can dynamically select meta-interpreters, and a dynamic compilation scheme by using run-time specialization (RTS) techniques, which could also be useful to dynamically optimize systems with mechanisms of dynamic software evolution. Our prototype system showed that dynamically compiled reflective programs run more than four times faster than the interpreted ones, and that compilation processes are fast enough to be invoked at runtime. Compared to statically compiled programs, however, dynamically compiled ones yet have 20-30% overheads. We also discuss this problem.
Reference:
Dynamic Compilation of a Reflective Language Using Run-Time Specialization (Hidehiko Masuhara, Yuuya Sugita and Akinori Yonezawa), In International Symposium on Principles of Software Evolution (Takuya Katayama, Tetsuo Tamai, Naoki Yonezaki, eds.), IEEE Computer Society, 2000.
Bibtex Entry:
@inproceedings{masuhara2000ispse,
author = {Hidehiko Masuhara and Yuuya Sugita and Akinori Yonezawa},
title = {Dynamic Compilation of a Reflective Language Using
Run-Time Specialization},
booktitle = {International Symposium on Principles of Software
Evolution},
url = {http://www.jaist.ac.jp/ISPSE/},
editor = {Takuya Katayama and Tetsuo Tamai and Naoki Yonezaki},
year = 2000,
publisher = {IEEE Computer Society},
pdf = {ispse2000.pdf},
pages = {128--137},
month = nov,
abstract = {In reflective languages, application programs can customize a language system that executes the application programs. Our premise is that this customizability of reflective languages can be a basic mechanisms of software evolution. In this paper, we present a simple architecture of a reflective language that can dynamically select meta-interpreters, and a dynamic compilation scheme by using run-time specialization (RTS) techniques, which could also be useful to dynamically optimize systems with mechanisms of dynamic software evolution. Our prototype system showed that dynamically compiled reflective programs run more than four times faster than the interpreted ones, and that compilation processes are fast enough to be invoked at runtime. Compared to statically compiled programs, however, dynamically compiled ones yet have 20-30\% overheads. We also discuss this problem.}
}