Skip to main content

Jumping to the Meta Level

Behavioral Reflection can be fast and flexible

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1616))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

9 References

  1. V. A. Aho, R. Sethi, D. J. Ullman: Compilers: Principles, Techniques, and Tools, Addison-Wesley 1985

    Google Scholar 

  2. M. Bickel: Realisierung eines Prototyps für die Koordinierungs-Metaarchitektur SMArT in Java., March 1999

    Google Scholar 

  3. 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

    Google Scholar 

  4. 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

    Google Scholar 

  5. S. Chiba, M. Tatsubori: Yet Another java.lang.Class. In ECOOP’ 98 Workshop on Reflective Object-Oriented Programming and Systems 1998

    Google Scholar 

  6. T. Cramer: Compiling Java Just-in-time. In IEEE Micro, May 1997

    Google Scholar 

  7. R. Crelier: Interview about the Borland JBuilder JIT Compiler.

    Google Scholar 

  8. 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

    Google Scholar 

  9. 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

    Google Scholar 

  10. E. Gamma, R. Helm, Johnson R., J. Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Reading, MA 1994

    Google Scholar 

  11. B. Garbinato, R. Guerraoui, K. Mazouni: Implementation of the GARF Replicated Objects Platform. In Distributed Systems Engineering Journal, March 1995

    Google Scholar 

  12. J. d. O. Guimaraes: Reflection for Statically Typed Languages. In Proceedings of the European Conference on Object-Oriented Programming’ 98 1998, pp. 440–461

    Google Scholar 

  13. 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

    Google Scholar 

  14. 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

    Google Scholar 

  15. H. Kopp: Design und Implementierung eines maschinenunabhängigen Just-in-time-Compilers für Java. Diplomarbeit (Masters Thesis), Sep. 1998

    Google Scholar 

  16. T. Lindholm, F. Yellin: The Java Virtual Machine Specification., Addison Wesley 1996

    Google Scholar 

  17. 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

    Google Scholar 

  18. 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

    Google Scholar 

  19. J. McAffer: Engineering the meta-level. In Proceedings of the Reflection’ 96 1996

    Google Scholar 

  20. Microsoft: Microsoft Web Page. http://www.microsoft.com/java/sdk/20/vm/.Jit_Compiler.htm 1998

    Google Scholar 

  21. A. Oliva, L. E. Buzato: The Design and Implementation of Guaraná. In COOTS’ 99 1999

    Google Scholar 

  22. T. Riechmann, F. J. Hauck, J. Kleinöder: Transitiver Schutz in Java durch Sicherheitsmetaobjekte. In JIT-Java Informations-Tage 1998, Nov. 1998

    Google Scholar 

  23. SunTest: JavaCC-A Java Parser Generator 1997

    Google Scholar 

  24. Z. Szyperski: Component Software-Beyound Object-Oriented Programming, ACM Press 1998

    Google Scholar 

  25. 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

    Google Scholar 

  26. F. Yellin, T. Lindholm: Java Internals. In JavaOne’ 97 1997

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics