Proposed Spec for Eiffel Introspection Library (v0.1.1 - 3/28/99)

Introduction

This page describes a proposed specifications for Eiffel introspection library. Introspection is also known as reflection, meta-level programming or meta-object protocols.

An introspection library allows a running program to examine the structure of its objects. The minimal number of tasks such a library must perform is:

The library must be powerful enough to to implement the ELKS class STORABLE entirely in Eiffel.

Requirements

There are several somewhat arbitrary levels of implementation that would make this library useful. They are:

Proposed Classes

Inheritance

EIFFEL_TYPE, EIFFEL_SYSTEM and EIFFEL_ASSERTION have no parents or descendants. The other classes are related as follows:

Implementation Notes

Today it is possible to implement such library at Level 1 with ISE's compiler. Level 2 maybe possible with the "delayed calls" features, but I haven't looked into it.

Changelog

References

Contributors

These classes and ideas are based on work and discussions with Jean-Pierre Sarkis, Philippe Stephan, Gurvan Lullien and Nick Leaton.

The comments of the following people were important in the improvement of this document: Bertrand Meyer, Eric Bezault, Alexander Kogtenkov, and Sergei S. Ivanov.

I'm sorry if I left anyone out of this list - I got a lot of emails following the initial positing.


Richard Bielak
Last modified: Mon Mar 29 11:47:03 EST 1999