Glossary

This glossary explains the terminology of the Eiffel language.

agent

An object that represents a callable routine.

Agents are equivalent to, but probably more powerful than, what some other languages call delegates or method pointers or closures.

ancestor

A class from which the current class inherits, either directly or indirectly.

Ancestors are often called superclasses in some other languages.

attribute

A property of a class that denotes a field present in each instance of the class.

Attributes are equivalent to what some other languages call instance variables or field variables.

CAT calls

"Change of Availability or Type" calls

class

A collection of features representing a single, coherent concept. A class exists in a hierarchy of of inheritance from other classes.

cluster

A group of logically related classes that have something in common. The corresponding class texts are generally stored in files of a single directory.

CQS

Command-Query Separation

This is the principle that features which return values must not overlap with features that alter the state of objects.

creation routine

A procedure to be called during the instantiation of a class.

Creation routines are equivalent to what some other languages call constructors.

deferred

The opposite of effective.

A feature is deferred if it has no implementation; the implementation is to be provided by a descendant class. A class is deferred if any of its features are deferred; but even if none are deferred, the class may be declared deferred. A deferred class cannot be instantiated.

Deferred is equivalent to what some other languages call abstract.

descendant

A class that inherits either directly or indirectly from the current class.

Descendants are sometimes called subclasses in some other languages.

effective

The opposite of deferred.

A feature is effective if it has an implementation in the current class. A class is effective if none of its features are deferred, and if the class is not declared deferred. An effective class must have a creation routine.

Effective is equivalent to what some other languages call concrete.

feature

An operation (command or query) applicable to all instances of the class, and specified in the class text. Routines and attributes are examples of features.

Features are equivalent to what some other languages call members.

function

In a class, a feature with an associated algorithm that returns a result. A pure function or query does not affect the state of its object.

library

A group of related classes, devised to cover all the facilities needed in a certain application areas. A library is made of a number of clusters and may depends on other libraries. For example a math library may be composed of clusters devoted to random number generation, linear algebra, integration, etc.

object

An instance of a class.

procedure

In a class, a feature with an associated algorithm that does not return a result directly but often changes the state of the object associated with the Procedure

routine

In a class, a feature with an associated algorithm, so that calling the feature executes that algorithm. A routine takes zero or more arguments.

Routines are equivalent to what some other languages call methods.