<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage 2.0">
<title>See Also</title>
</head>

<body bgcolor="#FFFFFF">

<table border="0" width="100%">
    <tr>
        <td><font size="6"><strong>See Also</strong></font></td>
        <td align="right"><a href="flatshort/index.html"><img
        src="../image/previous.gif" alt="Previous" border="0"
        width="40" height="40"></a><a href="index.html"><img
        src="../image/next.gif" alt="Next" border="0" width="40"
        height="40"></a></td>
    </tr>
</table>

<hr size="1">

<h2>Bibliographical References</h2>

<table border="0" cellpadding="5">
    <tr>
        <td valign="top"><img
        src="../image/book/reusable_software.gif" align="top"
        border="1" width="80" height="100"></td>
        <td valign="top"><a
        href="http://www.prenhall.com/books/ptr_0132454998.html"
        name="reusable_software"><em><strong>Reusable Software</strong></em></a>,
        by B. Meyer. <a href="http://www.phptr.com/">Prentice
        Hall</a>, 1994. ISBN 0-13-245499-8.<br>
        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 <a
        href="http://www.eiffel.com/products/base.html"><em>EiffelBase</em></a>
        library. </td>
    </tr>
    <tr>
        <td valign="top"><img
        src="../image/book/object_structures.gif" align="top"
        border="1" width="80" height="100"></td>
        <td valign="top"><a
        href="http://www.amazon.com/exec/obidos/tg/detail/-/0201634805/"><em><strong>Object
        Structures</strong></em></a>, by J. Gore. <a
        href="http://www.aw.com/cseng">Addison-Wesley</a>, 1996.
        ISBN 0-201-63480-5.<br>
        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. </td>
    </tr>
    <tr>
        <td valign="top"><img src="../image/book/empty.gif"
        align="top" border="1" width="80" height="100"></td>
        <td valign="top"><a
        href="http://www.amazon.com/exec/obidos/ASIN/0201066734/"><em><strong>Algorithms</strong></em></a>,
        second edition, by R. Sedgewick. <a
        href="http://www.aw.com/cseng">Addison-Wesley</a>, 1988.
        ISBN 0-201-06673-4.<br>
        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.
        </td>
    </tr>
    <tr>
        <td valign="top"><img src="../image/book/data_structures_and_algorithms.gif"
        align="top" border="1" width="80" height="100"></td>
        <td valign="top"><a href="http://www.amazon.com/exec/obidos/ASIN/0201000237/"><em><strong>Data Strutures and
        Algorithms</strong></em></a>, by A. V. Aho, J. E. Hopcroft,
        J. D. Ullman. <a href="http://www.aw.com/cseng">Addison-Wesley</a>,
        1974.<br>
        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).</td>
    </tr>
    <tr>
        <td valign="top"><img
        src="../image/book/design_patterns.gif" align="top"
        border="1" width="80" height="100"></td>
        <td valign="top"><a
        href="http://www.amazon.com/exec/obidos/ASIN/0201633612/"
        name="design_patterns"><em><strong>Design Patterns</strong></em></a>,
        by E. Gamma, R. Helm, R. Johnson, J. M. Vlissides. <a
        href="http://www.aw.com/cseng">Addison-Wesley</a>, 1995.
        ISBN 0-201-63361-2.<br>
        This famous book from the <em>Gang of Four</em> 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 <em>Gobo
        Eiffel Structure Library</em>.</td>
    </tr>
    <tr>
        <td valign="top"><img src="../image/book/ise.gif"
        align="top" border="1" width="80" height="100"></td>
        <td valign="top"><a
        href="http://eiffel.com/doc/manuals/language/style/"
        name="style_guidelines"><em><strong>Eiffel Style
        Guidelines</strong></em></a>, by Bertrand Meyer.<br>
        Extracted from the book <a href="http://www.amazon.com/exec/obidos/ASIN/0136291554"><em>Object-Oriented Software
        Construction</em></a>, second edition (Prentice Hall, 1997),
        these rules try to enforce consistency of style. Good
        software can, and should, <em>look</em> 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.</td>
    </tr>
</table>

<h2>Related Resources</h2>

<p>The <a href="http://www.eiffelzone.com/">Eiffel Zone</a> 
<a href="http://www.eiffelzone.com/esd/index.html">Software Directory</a> 
contains many links to Eiffel libraries sorted by category. Also of
interest is the <a
href="http://www.cetus-links.org/oo_eiffel.html">Cetus Links
Eiffel</a> page and its <a
href="http://www.cetus-links.org/oo_eiffel_libraries.html">library
section</a> which provides links to numerous open-source and
commercial Eiffel libraries.</p>

<p><a href="http://www.eiffel.com">ISE</a>'s <a
href="http://www.eiffel.com/products/base.html" name="EiffelBase"><em>EiffelBase</em></a>
is a library of fundamental structures and algorithms covering
the basics of computing, and resulting from a
&quot;Linnaean&quot; effort at a general-purpose taxonomy of
computing structures. The library and its design principles are
described in detail in the book <em>Reusable Software: The Base
Object-Oriented Component Libraries</em> (see <a
href="#reusable_software"><em>Bibliographical References</em></a>
above). <em>EiffelBase</em> works both with <a
href="http://www.eiffel.com">ISE Eiffel</a> and <a
href="http://www.object-tools.com">Visual Eiffel</a>. In August
1998 ISE has released the source of <em>EiffelBase</em> under
the IFELL (<a
href="http://www.eiffel.com/products/base/license.html">ISE Free
Eiffel Library License</a>).</p>

<p>The <a
href="http://www.eiffelzone.com/esd/tebc/index.html"><em>TowerEiffel
Booch Components</em></a> 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 <em>Design-by-Contract</em>. 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. </p>

<p><a href="http://www.eiffelzone.com/esd/containe/index.html"><em>SiG</em> 
(now<em> Object-Tools</em>)<em> Eiffel Container
Cluster</em></a> is a data structure library for <a
href="http://www.object-tools.com">Eiffel/S</a> 1.3 and <a
href="http://www.eiffel.com">ISE Eiffel</a> 3. It contains simple
and easy to use containers such as lists, tables, stacks and
queues, but unfortunately the <em>Design by Contract</em>
principles are not applied properly, making use of exceptions
instead of specifying well defined assertions. This library is
delivered under the <a
href="http://www.fsf.org/licensing/licenses/gpl.html">GNU license</a> and
can be <a
href="http://www.eiffelzone.com/esd/containe/index.html">downloaded</a>
from the <a href="http://www.eiffelzone.com">Eiffel Zone</a> page. It
is also included in <a href="http://www.object-tools.com">Visual
Eiffel</a> standard distribution.</p>

<p><a href="http://www.nenie.org/eiffel/pylon/index.html"><em>Pylon</em></a>
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 <a
href="http://www.eiffel.com">ISE Eiffel</a> (3.3 or above), <a
href="http://SmartEiffel.loria.fr/">SmallEiffel</a> (-0.83 or
above), <a href="http://www.object-tools.com">Visual Eiffel</a>
(2.1 or above) and TowerEiffel (2.0 or above). <em>Pylon</em> is
a copyrighted freeware developed by <a
href="http://www.nenie.org/eiffel/index.html">Franck Arnaud</a>.
It can be <a
href="http://www.eiffelzone.com/esd/pylon/index.html">downloaded</a>
from the <a href="http://www.eiffelzone.com">Eiffel Zone</a> page.</p>

<p><a href="http://www.eiffelzone.com/esd/kedsal/index.html"><em>KEDSAL</em></a>
is a library of data structures and algorithms written in Eiffel
and available free under the <a
href="http://www.fsf.org/licensing/licenses/gpl.html">GNU Public License</a>.
The library contains multiple implementations of many common
abstract data types, plus sorting algorithms and graph
algorithms. <em>KEDSAL</em> has been compiled and tested under <a
href="http://www.eiffel.com">ISE Eiffel</a> 3. Ports to other
implementations of Eiffel should be trivial. <em>KEDSAL</em> has
been written by Jeffrey H. Kingston</a> and can be <a
href="http://www.eiffelzone.com/esd/kedsal/index.html">downloaded</a>
from the <a href="http://www.eiffelzone.com">Eiffel Zone</a> page.</p>

<p>The <a href="http://www.eiffelzone.com/esd/bds/index.html"><em>Structure</em></a> 
library from Nicolas Waquier was the first attempt to write a portable 
Data Struture library based on the <a 
href="http://www.gobosoft.com/eiffel/nice/elks95/">ELKS</a>
standard. This library has been developed with TowerEiffel 1.3.1
and is distributed under the <a
href="http://www.fsf.org/licensing/licenses/gpl.html">GNU general license</a>.
It can be <a
href="http://www.eiffelzone.com/esd/bds/index.html">downloaded</a>
from the <a href="http://www.eiffelzone.com">Eiffel Zone</a> page.</p>

<h2>Acknowledgements</h2>

<p>Most ideas used throughout the design of the <em>Gobo Eiffel
Structure Library</em> come from other existing data structure
libraries, such as <a
href="http://www.eiffel.com/products/base.html"><em>EiffelBase</em></a>
from <a href="http://www.eiffel.com">ISE</a>, the <a
href="http://www.eiffelzone.com/esd/tebc/index.html"><em>Eiffel
Booch Components</em></a><em> </em>from Tower Technology or <a
href="http://www.nenie.org/eiffel/pylon/index.html"><em>Pylon</em></a>
from Franck Arnaud.</p>

<hr size="1">

<table border="0" width="100%">
    <tr>
        <td><address>
            <font size="2"><b>Copyright © 1999-2005</b></font><font
            size="1"><b>, </b></font><font size="2"><strong>Eric
            Bezault</strong></font><strong> </strong><font
            size="2"><br>
            <strong>mailto:</strong></font><a
            href="mailto:ericb@gobosoft.com"><font size="2">ericb@gobosoft.com</font></a><font
            size="2"><br>
            <strong>http:</strong></font><a
            href="http://www.gobosoft.com"><font size="2">//www.gobosoft.com</font></a><font
            size="2"><br>
            <strong>Last Updated:</strong> 21 February 2005</font><br>
            <!--webbot bot="PurpleText"
            preview="
$Date$ 
$Revision$"
            --> 
        </address>
        </td>
        <td align="right" valign="top"><a
        href="http://www.gobosoft.com"><img
        src="../image/home.gif" alt="Home" border="0" width="40"
        height="40"></a><a href="index.html"><img
        src="../image/toc.gif" alt="Toc" border="0" width="40"
        height="40"></a><a href="flatshort/index.html"><img
        src="../image/previous.gif" alt="Previous" border="0"
        width="40" height="40"></a><a href="index.html"><img
        src="../image/next.gif" alt="Next" border="0" width="40"
        height="40"></a></td>
    </tr>
</table>
</body>
</html>
