Reflex - Towards an Open Reflective Extension of Java

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, Guarana, 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.

[1]  Zhixue Wu Reflective Java and A Reflective Component-Based Transaction Architecture , 1998 .

[2]  Rachid Guerraoui,et al.  Concurrency and distribution in object-oriented programming , 1998, CSUR.

[3]  Michiaki Tatsubori,et al.  An Extension Mechanism for the Java Language , 1999 .

[4]  J. Davenport Editor , 1960 .

[5]  Rémi Douence,et al.  A Generic Reification Technique for Object-Oriented Reflective Languages , 2001, High. Order Symb. Comput..

[6]  Denis Caromel,et al.  Towards Seamless Computing and Metacomputing in Java , 1998, Concurr. Pract. Exp..

[7]  Luiz Eduardo Buzato,et al.  Composition of Meta-Objects in Guarana , 1999 .

[8]  Pierre Cointe,et al.  Towards a methodology for explicit composition of metaobjects , 1995, OOPSLA.

[9]  Shigeru Chiba,et al.  Yet Another java.lang.Class , 1998, ECOOP Workshops.

[10]  Chris Zimmermann Advances in Object-Oriented Metalevel Architectures and Reflection , 1996 .

[11]  Yutaka Ishikawa,et al.  Object Location Control Using Meta-level Programming , 1994, ECOOP.

[12]  Poseidon House,et al.  Reflective Java: Making Java Even More Flexible , 1997 .

[13]  Stéphane Ducasse,et al.  Evaluating Message Passing Control Techniques in Smalltalk , 1999 .

[14]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[15]  Michael Golm,et al.  Jumping to the Meta Level: Behavioral Reflection Can Be Fast and Flexible , 1999, Reflection.

[16]  Ian Welch,et al.  From Dalang to Kava - The Evolution of a Reflective Java Extension , 1999, Reflection.

[17]  Shigeru Chiba,et al.  Load-Time Structural Reflection in Java , 2000, ECOOP.

[18]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[19]  Ralph E. Johnson,et al.  Reflective facilities in Smalltalk-80 , 1989, OOPSLA '89.