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

EiffelBase: The ultimate in reusability

EiffelBase is one of the principal contributions of Eiffel: a library of fundamental structures and algorithms covering the basics of computing, and resulting from a "Linnaean" effort at a general-purpose taxonomy of computing structures. EiffelBase is one of the most carefully designed and extensively used libraries in the object-oriented industry.

The library and its design principles are described in detail in the book Reusable Software: The Base Object-Oriented Component Libraries.


The Kernel library covers the most common needs:

  • Universal classes providing facilities potentially useful for all classes: ANY and GENERAL. Every class is a descendant of these classes.
  • Fine control of the exception handling mechanism.
  • Arrays and strings.
  • Elements on which standard arithmetic operations are available.
  • Hashable elements, for use with hash tables.
  • Basic arithmetic conversions.

Fundamental structures and algorithms

  • Abstract structures, describing broad categories
  • Lists in their various forms
  • List elements
  • Circular chains
  • Sets and lists kept sorted
  • Various trees and binary trees
  • Cursor trees
  • Hash tables (dictionaries)
  • Dispensers: stacks, queues, priority queues

EiffelBase Basic Libraries

Support Library

The Support Library provides a number of classes that extend the language and environment facilities, enabling programmers to develop advanced uses of Eiffel: class STORABLE provides a way to produce a logical image of an entire data structure in a file; class MEMORY for fine tuning of the memory management mechanism; and more.

Data Structure Library

The Data Structure Library provides implementations of fundamental data structures and algorithms: Abstract structures, describing broad categories; lists in their various forms; list elements; circular chains; sorted sets and lists; various trees and binary trees; cursor trees; hash tables (dictionaries); various stacks, queues and priority queues; and more.

Iterations Library

The Iterations Library provides high-level templates that avoid using control structures such as loops and facilitates writing features so that control structures are more easily modified in descendant classes.