Abstract
Fully reflective systems have the notion of a control transfer from base-level code to meta-level code in order to change the behavior of the base-level system. There exist various opinions on how the programming model of a meta architecture has to look like. A common necessity of all models and systems is the need to intercept messages and operations, such as the creation of objects. We analyze the trade-offs of various message interception mechanisms for Java. We show their impact on the meta-level programming model and performance. We demonstrate that it is beneficial to integrate the interception mechanism with the virtual machine and the just-in-time compiler.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
9 References
V. A. Aho, R. Sethi, D. J. Ullman: Compilers: Principles, Techniques, and Tools, Addison-Wesley 1985
M. Bickel: Realisierung eines Prototyps für die Koordinierungs-Metaarchitektur SMArT in Java., March 1999
S. Brandt, R. W. Schmidt: The Design of a Metalevel Architecture for the BETA Language. In Advances in Object-Oriented Metalevel Architectures and Reflection, CRC Press, Boca Raton, Florida 1996, pp. 153–179
S. Chiba, T. Masuda: Designing an Extensible Distributed Language with a Meta-Level Architecture. In Proceedings of the European Conference on Object-Oriented Programming’ 93 Lecture Notes in Computer Science 707, Springer-Verlag 1993, pp. 482–501
S. Chiba, M. Tatsubori: Yet Another java.lang.Class. In ECOOP’ 98 Workshop on Reflective Object-Oriented Programming and Systems 1998
T. Cramer: Compiling Java Just-in-time. In IEEE Micro, May 1997
R. Crelier: Interview about the Borland JBuilder JIT Compiler.
G. Czajkowski, T. von Eicken: JRes: A Resource Accounting Interface for Java. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications’ 98, ACM Press 1998, pp. 21–35
J. Dolby, A. A. Chien: An Evaluation of Object Inline Allocation Techniques. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications’ 98, ACM Press 1998, pp. 1–20
E. Gamma, R. Helm, Johnson R., J. Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Reading, MA 1994
B. Garbinato, R. Guerraoui, K. Mazouni: Implementation of the GARF Replicated Objects Platform. In Distributed Systems Engineering Journal, March 1995
J. d. O. Guimaraes: Reflection for Statically Typed Languages. In Proceedings of the European Conference on Object-Oriented Programming’ 98 1998, pp. 440–461
U. Hölzle: Integrating Independently-Developed Components in Object-Oriented Languages. In Proceedings of the European Conference on Object-Oriented Programming’ 93 Lecture Notes in Computer Science 512, July 1993
G. Kiczales, J. Lamping, C. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, J. Irwin: Aspect-Oriented Programming. In Proceedings of the European Conference on Object-Oriented Programming’ 97 Lecture Notes in Computer Science 1357, Springer-Verlag, Berlin, Heidelberg, New York, Tokyo 1997
H. Kopp: Design und Implementierung eines maschinenunabhängigen Just-in-time-Compilers für Java. Diplomarbeit (Masters Thesis), Sep. 1998
T. Lindholm, F. Yellin: The Java Virtual Machine Specification., Addison Wesley 1996
H. Masuhara, A. Yonezawa: Design and Partial Evaluation of Meta-objects for a Concurrent Reflective Language. In Proceedings of the European Conference on Object-Oriented Programming’ 98 1998, pp. 418–439
S. Matsuoka: OpenJIT-A Reflective Java JIT Compiler. In OOPSLA’ 98 Workshop on Reflective Programming in C++ and Java UTCCP Report, Center for Computational Physics, University of Tsukuba, Tsukuba, Oct. 1998
J. McAffer: Engineering the meta-level. In Proceedings of the Reflection’ 96 1996
Microsoft: Microsoft Web Page. http://www.microsoft.com/java/sdk/20/vm/.Jit_Compiler.htm 1998
A. Oliva, L. E. Buzato: The Design and Implementation of Guaraná. In COOTS’ 99 1999
T. Riechmann, F. J. Hauck, J. Kleinöder: Transitiver Schutz in Java durch Sicherheitsmetaobjekte. In JIT-Java Informations-Tage 1998, Nov. 1998
SunTest: JavaCC-A Java Parser Generator 1997
Z. Szyperski: Component Software-Beyound Object-Oriented Programming, ACM Press 1998
I. Welch, R. Stroud: Dalang-A Reflective Java Extension. In OOPSLA’ 98 Workshop on Reflective Programming in C++ and Java UTCCP Report, Center for Computational Physics, University of Tsukuba, Tsukuba, Oct. 1998
F. Yellin, T. Lindholm: Java Internals. In JavaOne’ 97 1997
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Golm, M., Kleinöder, J. (1999). Jumping to the Meta Level. In: Cointe, P. (eds) Meta-Level Architectures and Reflection. Reflection 1999. Lecture Notes in Computer Science, vol 1616. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48443-4_3
Download citation
DOI: https://doi.org/10.1007/3-540-48443-4_3
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66280-8
Online ISBN: 978-3-540-48443-1
eBook Packages: Springer Book Archive