Abstract:
We present techniques of compiling a reflective concurrent object-oriented language, ABCL/R3, by using partial evaluation. Although the compilation framework is based on the first Futamura projection, mere application of partial evaluation cannot improve performance due to concurrent, object-oriented, and dynamically modifiable design in ABCL/R3. Instead of developing a dedicated partial evaluator for ABCL/R3, we specialize the meta-level by applying sequential partial evaluator after translating the meta-level into sequential programs. We also showed a framework to specialize programs that are modified at run-time by using dynamic code generation techniques. Our techniques presented in the paper could also be useful to other programs with `impure' features, such as concurrency, object-oriented style, and dynamic modification. 1 Introduction Partial evaluation[6, 7] has long been recognized as a technique that compiles a program executed by an interpreter. A program in a reflective l...
Citations
|
545
|
Partial Evaluation and Automatic Program Generation
– Jones, Gomard, et al.
- 1993
|
|
183
|
A General Approach for Run-Time Specialization and its Application to C
– Consel, Nol
- 1996
|
|
173
|
Reflection and semantics in lisp
– Smith
- 1984
|
|
144
|
Optimizing ML with run-time code generation
– Lee, Leone
- 1996
|
|
123
|
Computational reflection
– Maes
- 1987
|
|
108
|
vcode: A retargetable, extensible, very fast dynamic code generation system
– Engler
- 1996
|
|
54
|
Object-oriented concurrent reflective languages can be implemented e#ciently
– Masuhara, Matsuoka, et al.
- 1992
|
|
41
|
Partial evaluation of computation process—an approach to a compiler-compiler
– Futamura
- 1999
|
|
31
|
Compiling away the meta-level in object-oriented concurrent reflective languages using partial evaluation
– Masuhara, Matsuoka, et al.
- 1995
|
|
19
|
Schematic: A Concurrent Object-Oriented Extension to Scheme
– Taura, Yonezawa
- 1996
|
|
12
|
Across the bridge between reflection and partial evaluation
– Danvy
- 1988
|
|
8
|
Partial evaluation in reflective system implementations
– Ruf
- 1993
|
|
5
|
Partial evaluation of call-by-value lambda-calculus with side-e ects
– Asai, Masuhara, et al.
|
|
4
|
Architecture Design and Compilation Techniques Using Partial Evaluation in Reflective Concurrent Object-Oriented Languages
– MASUHARA
- 1999
|
|
3
|
An e#cient implementation of a reflective language using a dynamic code generation technique
– Sugita, Masuhara, et al.
- 1998
|
|
2
|
Run-time program specialization in java bytecode
– Masuhara, Yonezawa
- 1999
|
|
2
|
On-the-fly specialization of reflective programs using dynamic code generation techniques
– Sugita, Masuhara, et al.
- 1998
|