Master thesis

Type of project:
Master thesis SS 2004, 15 March - 15 September 2004

Beat Fluri

Reflection Library for Eiffel



Reflection is the ability to discover object properties at runtime. We use reflection in various areas of Software Engineering nowadays. Its scope is beyond a simple debugger. Examples are object persistence, monitoring and automatic configuration. Eiffel does not have a reflection library yet.

In this thesis we evaluate reflection APIs of various state of the art programming languages and runtime environments. We point out that we are not fully satisfied with their designs. Based on these investigations we design a reflection library for Eiffel. We suggest the approach to map the Eiffel object model as exhaustively as possible to a simple interface. All of the evaluated programming languages, except Smalltalk, do not care for such an approach.

As an example application of the library we built the ObjectBrowser to browse a given object structure. We are able to modify the values of the objects' basic type attributes and to visualize the object structure in a graph view.

Further information and source code can be found on Beat Fluri's personal homepage at

Project plan (PDF)
Final Report (PDF)