This site contains older material on Eiffel. For the main Eiffel page, see

Technology paper:
Agents, iterators and introspection

You can access the white paper on agents, iterators and introspection in Eiffel from


Latest revision: May 2000.

Document format and contents

The text is in Acrobat PDF format, so you will need the Acrobat Reader plug-in to read it from within your browser.

This document is written in the form of an addition to the book Eiffel: The Language. Note that internal hypertext links will work, but not the links to other chapters.

Mechanism availability and restrictions

The facilities included here have been available since version 4.2 of ISE Eiffel. Some facilities are not supported yet:

    + The associated feature of a call expression may not belong to a base type; for example {REAL}~abs will not work. In the rare cases in which this is needed, encapsulate the feature in a routine of your class, which takes the intended target as argument.

    + The mechanism is not yet applicable to operator features (infix or prefix, see top of page 578). If you want to use an operator feature in an active expression, encapsulate it in an identifier feature for that purpose.

    + The TYPE class has no useful feature, and generator returns a string.

    + EiffelBase has not been updated to take advantage of agents. A forthcoming version will integrate iterator mechanisms in classes such as TRAVERSAL, as described in the document.

    + Class PREDICATE is not available yet.

    + Inline agents are not available yet.


Major non-ISE contributions to the mechanisms described in the chapter came from

    Paul Dubois (Lawrence Livermore National Laboratory, <>.

    Mark Howard (Axa Rosenberg, formerly Rosenberg Institutional Equity Management)

We are very grateful to them for their essential insights.