Skip to main content

Reflex — Towards an Open Reflective Extension of Java

  • Conference paper
  • First Online:
Book cover Metalevel Architectures and Separation of Crosscutting Concerns (Reflection 2001)

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

Included in the following conference series:

Abstract

Since version 1.1 of the Java Development Kit, the Java reflective facilities have been successively extended. However, they still prove to be limited. A number of systems (e.g. MetaXa, Guaraná, Kava, Javassist) have addressed this limitation by providing reflective extensions of Java with richer MetaObject Protocols (MOPs). All these extensions provide a particular, monolithic, infrastructure that reflects the commitment of the designer to particular trade-offs between efficiency, portability, expressiveness and flexibility. Unfortunately, these trade-offs are not satisfactory for all applications, since different applications may have different needs. This calls for breaking down the building of a reflective extension into different components that can be specialized in order to fit specific needs. We qualify such a reflective extension as open. In this paper, we present Reflex, a prototype open reflective extension of Java. Reflex can be seen both as a reflective extension of Java and as a first step towards a framework for building such extensions.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. V. Aggarwal. The magic of Merlin-how the new JDK 1.4 levitates its functionality. Java World, March 2001.

    Google Scholar 

  2. M. Braux and J. Noyé. Towards partially evaluating reflection in Java. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, Boston, MA, USA, January 2000. ACM Press. ACM SIGPLAN Notices, 34(11).

    Google Scholar 

  3. J.-P. Briot, R. Guerraoui, and K.-P. Löhr. Concurrency and distribution in object oriented programming. ACM Computer Surveys, 30(3), September 1998.

    Google Scholar 

  4. D. Caromel, W. Klauser, and J. Vayssiere. Towards seamless computing and metacomputing in Java. In Concurrency Practice and Experience, volume 10. Wiley & Sons, September 1998.

    Google Scholar 

  5. S. Chiba. Load-time structural reflection in Java. In E. Bertino, editor, ECOOP 2000-Object-Oriented Programming-14th European Conference, number 1850 in Lecture Notes in Computer Science, pages 313–336, Sophia Antipolis and Cannes, France, June 2000. Springer-Verlag.

    Chapter  Google Scholar 

  6. S. Chiba and M. Tatsubori. Yet another java.lang.class. In ECOOP’98 Workshop on Reflective Object-Oriented Programming and Systems, Brussels, Belgium, July 1998.

    Google Scholar 

  7. P. Cointe, editor. Proceedings of Reflection’ 99, volume 1616 of Lecture Notes in Computer Science, Saint-Malo, France, 1999. Springer-Verlag.

    Google Scholar 

  8. R. Douence and M. Südholt. A generic reification technique for object-oriented reflective languages. Higher-Order and Symbolic Computation, 14(1), 2001.

    Google Scholar 

  9. S. Ducasse. Evaluating message passing control techniques in Smalltalk. Journal of Object-Oriented Programming, June:39–50, 1999.

    Google Scholar 

  10. Proceedings of the ACM SIGPLAN Workshop on Dynamic and Adaptive Compilation and Optimization (Dynamo’00), Boston, MA, USA, January 2000. ACM Press. ACM SIGPLAN Notices, 35(7).

    Google Scholar 

  11. B. Foote and R.E. Johnson. Reflective facilities in Smalltalk-80. In N. Meyrowitz, editor, OOPSLA’89, Conference Proceedings, pages 327–335, New Orleans, Louisiana, USA, October 1989. ACM SIGPLAN Notices, 24(10).

    Google Scholar 

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

    Google Scholar 

  13. M. Golm and J. Kleinöder. Jumping to the meta level, behavioral reflection can be fast and flexible. In Cointe[7], pages 22–39.

    Google Scholar 

  14. N.D. Jones, C.K. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. International Series in Computer Science. Prentice Hall, 1993.

    Google Scholar 

  15. SUN Microsystems. Dynamic proxy classes. http://java.sun.com/j2se/1.3/docs/guide/reflection/proxy.html, 1999.

  16. P. Mulet, J. Malenfant, and P. Cointe. Towards a methodology for explicit composition of metaobjects. In Proceedings of OOPSLA’95, pages 316–330. ACM Press, October 1995.

    Google Scholar 

  17. H. Okamura and Y. Ishikawa. Object location control using meta-level programming. In Proceedings of ECOOP’94, pages 299–319, 1994.

    Google Scholar 

  18. A. Oliva and L. E. Buzato. Composition of meta-objects in Guarana. In Proceedings of the 5th USENIX Conference on Object-Oriented Technologies & Systems (COOTS’99), San Diego, California, USA, May 1999.

    Google Scholar 

  19. B. Redmond and V. Cahill. Iguana/J: Towards a dynamic and efficient reflective architecture for Java. ECOOP 2000 Workshop on Reflection and Metalevel Architectures, June 2000.

    Google Scholar 

  20. R.J. Stroud and Z. Wu. Using metaobject protocols to satisfy non-functional requirements. In C. Zimmermann, editor, Advances in Object-Oriented Metalevel Architectures and Reflection, pages 31–52. CRC Press, 1996.

    Google Scholar 

  21. SUN Microsystems. Object Serialization, 1998. http://java.sun.com/products/jdk/1.2/docs/guide/serialization/.

  22. Java Remote Method Invocation specification. Technical report, SUN Microsystems, 1999. http://java.sun.com.products/jdk/1.2/docs/guide/rmi/.

  23. E. Tanter. Reflex, a reflective system for Java — application to flexible resource management in Java mobile object systems. Master’s thesis, Universidad de Chile, Chile-Vrije Universiteit Brussel, Belgium, 2000.

    Google Scholar 

  24. E. Tanter. Reflex Website, 2001. http://www.dcc.uchile.cl/~etanter/Reflex.

  25. M. Tatsubori. An extension mechanism for the Java language. Master’s thesis, University of Tsukuba, Japan, 1999.

    Google Scholar 

  26. I. Welch and R. Stroud. From Dalang to Kava-the evolution of a reflective Java extension. In Cointe[7], pages 2–21.

    Google Scholar 

  27. Z. Wu. Reflective Java and a reflective-component-based transaction architecture. In J.-C. Fabre and S. Chiba, editors, Proceedings of the ACM OOPSLA’98 Workshop on Reflective Programming in Java and C++, October 1998.

    Google Scholar 

  28. Z. Wu and S. Schwiderski. Reflective Java: Making Java even more flexible. APM 1936.02, APM Limited, Castle Park, Cambridge, UK, February 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Tanter, É., Bouraqadi-Saâdani, N.M.N., Noyé, J. (2001). Reflex — Towards an Open Reflective Extension of Java. In: Yonezawa, A., Matsuoka, S. (eds) Metalevel Architectures and Separation of Crosscutting Concerns. Reflection 2001. Lecture Notes in Computer Science, vol 2192. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45429-2_2

Download citation

  • DOI: https://doi.org/10.1007/3-540-45429-2_2

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42618-9

  • Online ISBN: 978-3-540-45429-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics