Terminology
The design of Eiffel also reflects a concern with the
software engineering issues involved in the development
and maintenance of class libraries.
(See also section [library-design].)
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 -- \c{to change} inherited features
deferred -- \c{to} postpone \c{the} implementation
require, ensure, invariant -- assertions
slide: Eiffel -- terminology
The keyword class precedes a class definition,
which in the terminology of [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
relationships.
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
class,
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.