Computational reflection provides the developers with a programming mechanism devoted to favorite code extensibility, reuse and maintenance. Notwithstanding that, it has not achieved developers' unanimous acceptance and its full potential yet. In our opinion, this depends on the intrinsic complexity of most of the reflective approaches that hinders their efficient implementation. The aim of this paper consists of defining the essence of reflection, that is, to identify the minimal set of characteristics that a software system must have to be considered reflective. The consequence is the realization of a run-time environment supporting the essence of reflection without affecting the programming language and with a minimal impact on the programming system design. This achievement will improve reflective system performances reducing the impact of one of the most diffuse criticism about reflection: low performance.
[1]
Ian Welch,et al.
Kava - A Reflective Java Based on Bytecode Rewriting
,
1999,
Reflection and Software Engineering.
[2]
Shigeru Chiba,et al.
Load-Time Structural Reflection in Java
,
2000,
ECOOP.
[3]
Niklaus Wirth,et al.
Programming in Oberon - steps beyond Pascal and Modula
,
1992
.
[4]
Pattie Maes,et al.
Concepts and experiments in computational reflection
,
1987,
OOPSLA '87.
[5]
Daniel P. Friedman,et al.
An Introduction to Reeection-oriented Programming
,
1996
.
[6]
Walter Cazzola,et al.
Evaluation of Object-Oriented Reflective Models
,
1998,
ECOOP Workshops.
[7]
Shigeru Chiba,et al.
OpenJava: A Class-Based Macro System for Java
,
1999,
Reflection and Software Engineering.