The design of Eiffel also reflects a concern with the
software engineering issues involved in the development
and maintenance of class libraries.
The language is built around a number of keywords,
which accounts for an easy to read, albeit somewhat verbose,
layout of programs.
The language Eiffel -- keywords
- class -- a model for a set of objects
- feature -- attribute, function, procedure
- export -- interface declaration
- inherit -- class inclusion and subtyping (!)
- redefine, rename -- to change inherited features
- deferred -- to postpone the implementation
- require, ensure, invariant -- assertions
slide: Eiffel -- terminology
The keyword class precedes a class definition,
according to [Meyer88],
may be considered as a model for a collection of objects.
The keyword feature precedes the attributes, functions
and procedures defined by a class.
The keyword export precedes the list of visible
features, in other words the interface declaration of the class.
The keyword inherit precedes the list of inherited
classes, specifying class inclusion and the subtyping
The keywords rename and redefine
are used to change inherited features.
The keyword deferred may be used to indicate
that a feature will be implemented (in the future) in an inherited
and the keyword obsolete may be used to indicate
that a feature will not be supported in a future release.
Finally, the keywords require, ensure
and invariant indicate assertions that specify
respectively the pre- and post-conditions
for a (method) feature and the class invariant.