<language> An object-oriented language produced by Bertrand Meyer in
1985. Eiffel has classes with multiple inheritance and repeated inheritance,
deferred classes (like Smalltalk's abstract class), and clusters of classes.
Objects can have both static types and dynamic types. The dynamic type must be a
descendant of the static (declared) type. Dynamic binding resolves multiple
inheritance clashes. It has flattened forms of classes, in which all of the
inherited features are added at the same level and generic classes parametrised
Other features are persistent objects, garbage collection, exception handling,
foreign language interface. Classes may be equipped with assertions (routine
preconditions and postconditions, class invariants) implementing the theory of
"Design by Contract" and helping produce more reliable software.
Eiffel is compiled to C. It comes with libraries containing several hundred
classes: data structures and algorithms (EiffelBase), graphics and user
interfaces (EiffelVision) and language analysis (EiffelLex, EiffelParse).
The first release of Eiffel was release 1.4, introduced at the first OOPSLA in
October 1986. The language proper was first described in a University of
California, Santa Barbara report dated September 1985.
Eiffel is available, with different libraries, from several sources including
Interactive Software Engineering, USA (ISE Eiffel version 3.3); Sig Computer
GmbH, Germany (Eiffel/S); and Tower, Inc., Austin (Tower Eiffel).
The language definition is administered by an open organisation, the Nonprofit
International Consortium for Eiffel (NICE). There is a standard kernel library.
An Eiffel source checker and compiler front-end is available.
Latest version: 4.2, as of 1998-10-28.
Latest version: ISE Eiffel version 3.3.
See also Sather, Distributed Eiffel, Lace, shelf.
["Eiffel: The Language", Bertrand Meyer, P-H 1992].
EIA-485 « EIA-530 « EIDE « Eiffel » Eiffel
source checker » eigenvalue » eigenvector