See Also |

## Bibliographical References

Reusable Software, by B. Meyer. Prentice Hall, 1994. ISBN 0-13-245499-8.
This fundamental reference on reusability marks one of the first times that the software literature had given reuse more than lip service. It provides its readers with both components and expertise. The components are reusable software modules which cover some of the fundamental patterns of software development across application areas; the expertise will help readers not just to use these modules properly but also to develop their own libraries and make sure they are successful. Also describes the ISE EiffelBase library.

Object Structures, by J. Gore. Addison-Wesley, 1996. ISBN 0-201-63480-5.
This thoroughly object-oriented book takes the conventional topic of data structures and totally transforms it, leading you through the process of designing software components that are elegant, interchangeable, and reusable. Using Eiffel, the book will teach you techniques for designing object structure interfaces and inheritance hierarchies. You will find detailed analyses of all the familiar data structures (arrays, lists, queues, stacks, trees, etc.) but the emphasis is on abstracting these structures to create well-designed, reusable components.

Algorithms, second edition, by R. Sedgewick. Addison-Wesley, 1988. ISBN 0-201-06673-4.
This best-selling book describes a variety of algorithms in each of a number of areas of interest, including sorting, searching, string-processing, geometric, graph, and mathematical algorithms. This book may be useful for self-study, or as a reference for people engaged in the development of computer systems or applications programs.

| Data Strutures and Algorithms, by A. V. Aho, J. E. Hopcroft, J. D. Ullman. Addison-Wesley, 1974. This book describes the data structures and associated algorithms used for solving everyday programming problems. Although written 25 years ago, this book is a good introduction to Abstract Data Types (ADT).

Design Patterns, by E. Gamma, R. Helm, R. Johnson, J. M. Vlissides. Addison-Wesley, 1995. ISBN 0-201-63361-2.
This famous book from the Gang of Four is a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. Some of these patterns have been used during the design of the Gobo Eiffel Structure Library.

Eiffel Style Guidelines, by Bertrand Meyer.
Extracted from the book Object-Oriented Software Construction, second edition (Prentice Hall, 1997), these rules try to enforce consistency of style. Good software can, and should, look good. In the search for quality, there are of course more crucial aspects (solid system architecture, good use of Design by Contract, designing for change and reuse, information hiding, choice of data structures and algorithms etc.); but no detail is too small to be overlooked, especially for mission-critical systems, reusable components, and software that is meant to be kept for a long time.

## Related Resources

The Eiffel Zone Software Directory contains many links to Eiffel libraries sorted by category. Also of interest is the Cetus Links Eiffel page and its library section which provides links to numerous open-source and commercial Eiffel libraries.

ISE's EiffelBase is 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. The library and its design principles are described in detail in the book Reusable Software: The Base Object-Oriented Component Libraries (see Bibliographical References above). EiffelBase works both with ISE Eiffel and Visual Eiffel. In August 1998 ISE has released the source of EiffelBase under the IFELL (ISE Free Eiffel Library License).

The TowerEiffel Booch Components represent the combination of Booch's object-oriented analysis and design approach with the ideas and techniques for OO software development introduced by Eiffel, particularly Design-by-Contract. The library provides classes for many of the basic data structures and algorithms required in the production of quality software. Additionally, for each kind of structure, the library provides a family of classes, united by a shared interface but each employing a different representation, so that developers can select the ones with the time and space characteristics most appropriate to their application.

SiG (now Object-Tools) Eiffel Container Cluster is a data structure library for Eiffel/S 1.3 and ISE Eiffel 3. It contains simple and easy to use containers such as lists, tables, stacks and queues, but unfortunately the Design by Contract principles are not applied properly, making use of exceptions instead of specifying well defined assertions. This library is delivered under the GNU license and can be downloaded from the Eiffel Zone page. It is also included in Visual Eiffel standard distribution.

Pylon is a small, portable, freeware Eiffel library for data structures and other basic features that can be used as a foundation library by more ambitious or specialised Eiffel libraries. It supports ISE Eiffel (3.3 or above), SmallEiffel (-0.83 or above), Visual Eiffel (2.1 or above) and TowerEiffel (2.0 or above). Pylon is a copyrighted freeware developed by Franck Arnaud. It can be downloaded from the Eiffel Zone page.

KEDSAL is a library of data structures and algorithms written in Eiffel and available free under the GNU Public License. The library contains multiple implementations of many common abstract data types, plus sorting algorithms and graph algorithms. KEDSAL has been compiled and tested under ISE Eiffel 3. Ports to other implementations of Eiffel should be trivial. KEDSAL has been written by Jeffrey H. Kingston and can be downloaded from the Eiffel Zone page.

The Structure library from Nicolas Waquier was the first attempt to write a portable Data Struture library based on the ELKS standard. This library has been developed with TowerEiffel 1.3.1 and is distributed under the GNU general license. It can be downloaded from the Eiffel Zone page.

## Acknowledgements

Most ideas used throughout the design of the Gobo Eiffel Structure Library come from other existing data structure libraries, such as EiffelBase from ISE, the Eiffel Booch Components from Tower Technology or Pylon from Franck Arnaud.