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
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
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.
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.