EiffelBase2

From EiffelStudio: an EiffelSoftware project
Revision as of 12:51, 23 April 2010 by Kenga (talk | contribs)
Jump to navigation Jump to search


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

Container class hierarchy
Container class hierarchy
Iterator class hierarchy
Iterator class hierarchy

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.