Difference between revisions of "EiffelBase2"
(→Design overview) |
(→Design overview) |
||
Line 22: | Line 22: | ||
==Design overview== | ==Design overview== | ||
− | [[Image:eb2_container.png|left|Container class hierarchy]] | + | [[Image:eb2_container.png|800px|thumb|left|Container class hierarchy]] |
− | [[Image:eb2_iterator.png|left|Iterator class hierarchy]] | + | [[Image:eb2_iterator.png|800px|thumb|left|Iterator class hierarchy]] |
==Model-based contracts== | ==Model-based contracts== |
Revision as of 03:48, 23 April 2010
Overview
EiffelBase2, currently under development, is a general-purpose data structures library for Eiffel. It is intended as the future replacement for the EiffelBase library ("Classic EiffelBase" in this document), which has for many years played a central role in Eiffel development.
Design goals
The design goals for EiffelBase2 are:
- Verifiability. The library is designed to allow proofs of correctness.
- Full contracts. Partly as a result of the verifiability goal, but also for clarity and documentation, the contracts associated with classes and features should describe the relevant semantics in its entirety.
- Simple and consistent hierarchy, in particular avoidance of descendant hiding and of "taxomania" (classes not representing a meaningful abstraction, unnecessary inheritance links).
- As in Classic EiffelBase, application of a systematic classification (a theory) of fundamental data structures.
- Full traversal mechanisms, based on external cursors (with internal cursors also provided when useful).
- Client-interface compatibility with corresponding classes in Classic EiffelBase, whenever it does not conflict with the preceding goals.
Design overview
Model-based contracts
Status and roadmap
Development of EiffelBase has started as a project at ETH Zurich; see the project page. Documentation and other material will soon be transferred to the present page.