allanswers.org - comp.lang.eiffel Frequently Asked Questions (FAQ)

 Home >  Programming >

comp.lang.eiffel Frequently Asked Questions (FAQ)

Section 1 of 2 - Prev - Next


Archive-name: eiffel-faq
Posting-Frequency: approximately monthly
Last-modified: 14 Jan 2004

 EIFFEL: FREQUENTLY ASKED QUESTIONS
 ----------------------------------

This question-and-answer list is posted monthly to the Usenet
newsgroups comp.lang.eiffel, comp.answers and news.answers.

Please send corrections and comments to franck@nenie.org

This information is abstracted and condensed from the posts of many
contributors to comp.lang.eiffel, supplemented by information from
vendors. No guarantees are made regarding its accuracy.

This compilation is by Franck Arnaud. Distribution is unrestricted.
It builds on the work of the previous maintainers: Rock Howard,
Roger Browne, Conrad Taylor in chronological order.

You can get the latest from the web:

   http://www.faqs.org/faqs/eiffel-faq/
   ftp://rtfm.mit.edu/pub/usenet/news.answers/eiffel-faq

or by sending an email message to mail-server@rtfm.mit.edu with this
message body:

   send /pub/usenet/news.answers/eiffel-faq

 --------------------

WHAT'S NEW?

Changes since the last posting:

   QBOK  Design by Contract book added
   LINC  New answer about the lack of increment operator
   LCQS  New answer about command/query separation
   
 --------------------

CONTENTS

Frequently Asked Questions:

   QEIF  What is Eiffel?
   QORI  Where did Eiffel come from?
   QCOM  What Eiffel compilers are available?
   QLIB  What Eiffel libraries are available?
   QFRE  Is Eiffel available as free software?
   QARC  Is there an archive of the comp.lang.eiffel newsgroup?
   QBOK  What books are available for learning about Eiffel?
   QWEB  Where can I find Eiffel on the World-Wide-Web?
   QEDI  Where can I get an Eiffel editor or emacs-mode?
   QBON  What is BON?
   QSTD  Are there standards for the Eiffel language?
   QPOR  How do I write portable applications?
   QTGV  How fast do Eiffel applications run?
   QGRP  Are there any Eiffel user groups?
   QADR  Where can I get Eiffel products and services?
   QCNF  Are there any conferences for Eiffel users?
   QECC  Why do many Eiffel implementations compile to C?
   QJVM  Where can I get an Eiffel to Java compiler?
   QNET  Where can I get an Eiffel to .NET compiler?

Language Issues:

   LFEA  What features does Eiffel have?
   LCHN  What changes have been made to the Eiffel language definition?
   LLIB  What libraries come with Eiffel?
   LDBC  What's the big deal about preconditions and postconditions?
   LCQS  What is command/query separation?
   LCON  Please explain and discuss covariance vs. contravariance.
   LCAT  Is it true that there are "holes" in the Eiffel type system?
   LTSK  Is there support for concurrency in Eiffel?
   LOVL  Why doesn't Eiffel allow function overloading?
   LINC  Why is there no increment operator?
   LAGE  What are Eiffel agents?
   LATR  Why are there no class attributes in Eiffel?
   LPAR  How can I call the parent-class version of a redefined
         routine?
   LEVC  Where can I find a comparison between Eiffel and C++?
   LDES  Are there any destructors in Eiffel?
   LDIS  How do I implement multiple inheritance efficiently?
   LISA  How does the `Iterating several actions' example in ETL work?
   LORB  Is COM/CORBA supported?

 --------------------

QEIF: What is Eiffel?

Eiffel is an advanced object-oriented programming language and 
method that emphasizes the design and construction of high-quality
and reusable software.

Eiffel is not a superset or extension of any other language. Eiffel
strongly encourages OO programming and does not allow dangerous
practices from previous generation languages although it does
interface to other languages such as C and C++. Eiffel supports the
concept of "Design by Contract" to improve software correctness.

Beyond the language aspect Eiffel may be viewed as a method of
software construction. Eiffel is an excellent vehicle for software
education, including for a first programming course.

 --------------------

QORI: Where did Eiffel come from?

Eiffel was created by Bertrand Meyer and developed by his company,
Eiffel Software Inc. of Goleta, CA.

Dr. Meyer borrowed on his extensive experience with OOP, particularly
with Simula. He also added in important concepts from his academic
work on software verification and computer language definition.

Eiffel's design addresses many practical concerns that software
engineers face when creating complex software. Eiffel has evolved
continually since its conception on September 14, 1985 and its first
introduction in 1986.

Eiffel is named after Gustave Eiffel, the engineer who designed the
Eiffel Tower.

 --------------------

QCOM: What Eiffel compilers are available?

The following Eiffel compilers are currently available and supported
by their vendors or authors. The list is ordered by date of first
publication.

In the case of commercial products, the price is not mentioned because
there can be varying conditions depending on platforms, conditions of
use (personal vs. professional), etc. Please check with the vendors'
web-sites for up to date pricing information.

In the list below, the 'target' entry indicates what code is produced
by the compiler. Most -- but not all -- compilers produce C code so a
supported C compiler may be needed. Some compilers or distributions
include a freeware C compiler.

In the 'platform' entry, an indication of supported platforms is given.
"Win32" means 32 bit version of Windows on Intel x86. "Unix" means
various Unices, check with vendor for the actual list of platforms.
All vendors supporting Unix do support Linux on Intel x86.

 Vendor: Eiffel Software, Inc., USA
 Product: EiffelStudio / EiffelENViSioN
 Licensing conditions: Commercial; free for non-commercial use
 Target: C/.NET
 Platforms: Win32, Unix, .NET, VMS
 Web: http://www.eiffel.com/

 Brief description:
  This product forrmely known as ISE Eiffel is available either as
  a stand alone development environment (EiffelStudio) or integrated
  into Visual Studio for .NET (Eiffel ENViSioN). It includes:
  - a complete graphical development environment with
    unique facilities for power browsing, documentation, symbolic
    debugging, fast compilations and more. It also supports a diagram
    tool based on the BON method.
  - EiffelBase, which is also available under an open source license,
    is a complete and professional set of classes covering containers,
    collections, I/O, iterators, object persistence, searching, etc.
  - EiffelVision2, a powerful multiplatform graphical library.
  - Under Windows, the Windows Eiffel Library (WEL), combining the
    power of Eiffel with access to the Windows API and the EiffelCOM
    library to create/reuse existing COM components.
  - Many other libraries: EiffelNet, EiffelLex, EiffelParse, EiffelWeb,
    EiffelStore, Eiffel2Java, EiffelThread, EiffelTime


 Vendor: Dominique Colnet et al
 Product: SmartEiffel the GNU Eiffel compiler
 Licensing conditions: Freeware (GPL)
 Target: ANSI C / Java Virtual Machine
 Platforms: Any ANSI C machine
 Web: http://smarteiffel.loria.fr/

 Brief description:
  SmartEiffel is intended to be a complete, though small and very fast,
  free Eiffel compiler, available for a wide range of platforms.
  It includes an Eiffel to C compiler, an Eiffel to Java bytecode
  compiler, a documentation tool, a pretty printer, etc.
  The compiler uses an innovative strategy involving whole system
  analysis which allows compilation to be often faster than the
  incremental compilation of traditional compilers.
  It was originally designed (under the name SmallEiffel) at the
  LORIA lab, Nancy, France, in 1994-95, and has since been used
  worldwide by many individuals and universities.


 Vendor: Object Tools GmbH, Germany
 Product: Visual Eiffel
 Licensing conditions: Commercial on Win32 (free eval); freeware on Linux
 Target: Native Intel x86
 Platforms: Win32, Linux (command line tools)
 Web: http://www.object-tools.com/ or http://www.eiffel.de/

 Brief description:
  Using Visual Eiffel and DM will help you to develop complex Windows
  applications in a very short time. Visual Eiffel gives you
  - an integrated workbench with the Windows look and feel
  - a professional Eiffel compiler producing very efficient native
    code for Intel processors
  - DM - the most rapid RAD tool you have ever seen gives you
    everything to build applications for Windows fast.
  - many useful libraries for the production of commercial Windows
    applications - for ActiveX component integration, for ODBC access,
    for the creation of nice graphical packages and much more.


 Vendor: Object Tools GmbH, Germany
 Product: Eiffel for OS X 
 Licensing conditions: Commercial (free eval)
 Target: ANSI C
 Platforms: Mac OS (PowerPC)
 Web: http://www.maceiffel.com/
 
 Brief description:
  Based on Object Tools' original Eiffel/S compiler, Eiffel
  for the Macintosh runs under Mac OS X.
  The compiler is available as an add-on for either Apple
  ProjectBuilder and or MetrowWerks CodeWarrior.
  It includes the usual kernel libraries and also Eiffel
  libraries wrapping the Macintosh API, both Cocoa and Carbon.
  The earlier version for MacOS 8 and 9 is available at
  http://www.object-tools.com/products/eiffel-s/


Other Eiffel compilers are worth mentioning although they may be
either not supported any more, or an older version, or at an early
stage of development so that their implementation of the language
may be far from complete.


 - SIG Eiffel/S, version 1.3: this was the first Eiffel 3 compiler,
   and the first compiler available on the PC platform. Version 1.3,
   which is a few years old, is still available as shareware from Object
   Tools (formerly SIG) at http://www.object-tools.com/.
   It is a command line compiler producing C code, and it is available
   for DOS32, Windows 95 and NT and many Unix platforms.

 - TowerEiffel was a commercial compiler with an emphasis on the 
performance 
   of generated code. It stopped being actively maintained and sold after 
   Tower Technology moved on to write a static Java compiler using the 
   same kinds of system-wide optimisations found in most Eiffel compilers.

 - iss-base was a compiler and environment from Halstenbach ACT GmbH.
   It started out as a licensed derivative of ISE Eiffel, but the
   development forked afterwards and the core compiler was developed
   independently and for a while became one of the best performing
   Eiffel compilers. The development environment remained almost
   unchanged, but independently developed add on libraries and a UI
   builder were added. The product is currently not being publicised.

 - There has been various other compiler projects which are not widely
   used: EON Eiffel, an Eiffel to C++ compiler, written
   in C++, not actively maintained; J-Eiffel, a compiler generating
   JVM bytecode form Pirmin Kalberer; and Fridtjof Siebert's FEC, a
   native code compiler for Sun SPARC machines.


 --------------------

QLIB: What Eiffel libraries are available?

Eiffel vendors usually supply a large set of libraries with their
compilers, and provide others as additions.

Many libraries, usually open source, are available from third
parties and are too numerous to list here. See QWEB for reference
websites which have listings of available libraries. A good
starting point is at:

http://www.cetus-links.org/oo_eiffel_libraries.html

 --------------------

QFRE: Is Eiffel available as free software?

SmartEiffel is an open source compiler, provided as a highly
portable C package that can compile on most ANSI C platforms.
The full Eiffel source code of the compiler itself (in
Eiffel) is included. See QCOM.

A ready-to-run package for Windows, including a freeware C
compiler, is available at http://elj.sourceforge.net/

Many commercial vendors offer free evaluation versions, with
some limitations. Commercial vendors often also have cheap
entry-level versions for popular platforms like Win32 and
Linux on x86 PCs.

 --------------------

QARC: Is there an archive of the comp.lang.eiffel newsgroup?

Yes, it is on Google groups:
 http://groups.google.com/groups?group=comp.lang.eiffel


 --------------------

QBOK: What books are available for learning about Eiffel?


ESSENTIAL READING

 Title: Object-Oriented Software Construction, second edition
Author: Bertrand Meyer
  ISBN: ISBN 0-13-629155-4 - Prentice Hall 1997
 Short: This book is the comprehensive reference on all aspects of
        object technology, from design principles to O-O techniques,
        Design by Contract, O-O analysis, concurrency, persistence,
        abstract data types and many more. While Eiffel is only
        presented as the 'notation' used to illustrate the concept,
        it is essential reading for any Eiffelist -- it includes a
        rather complete description of the 'notation'. It comes with
        a CD-ROM containing the complete hyperlinked text,
        supplementary material, and a version of ISE Eiffel.

 Title: Eiffel: The Language
Author: Bertrand Meyer
  ISBN: ISBN 0-13-247925-7 -- Prentice Hall 1992
 Short: This book combines an introduction to Eiffel, the language
        reference, and a good deal of philosophy into its 600 pages.
        This is a rigorous and comprehensive book which some readers
        may find heavy going despite Dr. Meyer's clarity of expression.
        It is the definitive language reference, and essential reading
        for all serious Eiffel users. Get the second or later printing
        (same ISBN), which includes many corrections and changes (there
        is not a second edition, and none is currently underway). This
        book is also available in French (ISBN 2-7296-0525-8).

OTHER BOOKS

 Title: Design by Contract, by Example
Author: Richard Mitchell, James McKim
  ISBN: 0-20-163460-0 -- Addison Wesley 2001
 Short: An example-based guide to Design by Contract. 
  
 Title: Design Patterns and Contracts
Author: Jean-Marc Jezequel, Michel Train, Christine Mingins
  ISBN: 0-20-130959-9 -- Addison-Wesley 1999
 Short: This book builds on the work on software design patterns
        as published in the 'Gang of Four' book by Gamma et al. Design
        by Contract is applied to design patterns.

 Title: Objects Unencapsulated: Java, Eiffel, and C++?
Author: Ian Joyner -- ISBN 0-13-014269-7 -- PH 1999
 Short: An examination of the core of object-oriented technology
        through a comparison between Java, Eiffel and C++.

 Title: Object Oriented Programming in Eiffel, 2nd edition
Author: Pete Thomas and Ray Weedon -- ISBN: 0-201-33131-4 -- AW 1997
 Short: This book is a very comprehensive Eiffel tutorial and textbook,
        with a solid "Abstract Data Type" approach.

 Title: Algorithms and Data Structures
Author: Jeffrey Kingston -- ISBN: 0-201-40374-9 -- AW 1997
 Short: A treatment of the central algorithms and data structures of
        computer science, including complete Eiffel implementations.

 Title: An Object-Oriented Introduction to Computer Science Using Eiffel
Author: Richard Wiener -- ISBN: 0-13-838725 -- PH 1997
 Short: None

 Title: Object Technology for Scientific Computing Object-Oriented
            Numerical Software in Eiffel and C
Author: Paul Dubois -- ISBN: 0-13-267808-X -- PH 1996
 Short: Accompanying CD with the Free Eiffel for UNIX & Linux
        environments.

 Title: Object-Oriented Software Engineering with Eiffel
Author: Jean-Marc Jezequel -- ISBN: 0-201-63381-7 -- AW 1996
 Short: A comprehensive guide to Eiffel. In addition to describing
        Eiffel, the book contains descriptions and comparisons of
        compilers and libraries available on the market.

 Title: Object Structures: Building OO Software Components with Eiffel
Author: Jacob Gore -- ISBN: 0-201-63480-5 -- AW 1996
 Short: This is the first "data structures" book for Eiffel, bringing
        to the study of that language the first comprehensive
        treatment of one of the most important topics in any
        programming language.

 Title: Eiffel Object-Oriented Programming
Author: John Tyrrell -- ISBN: 0-333-64554-5 -- 1995
 Short: This is an inexpensive and very approachable book.

 Title: Software Development Using Eiffel: There can be life other than C++
Author: Richard Wiener -- ISBN: 0-13-100686-X -- PH 1995
 Short: This is a useful book with a lot of code examples for those
        with a grounding in another OO language.

 Title: Object Success
Author: Bertrand Meyer -- ISBN: 0-13-192833-3 -- PH 1995
 Short: This book is a  manager's guide to object orientation, its
        impact on the corporation and its use for re-engineering the
        software process.

 Title: Object Oriented Programming in Eiffel
Author: R. Rist and R. Terwilliger -- ISBN: 0-13-205931-2 -- PH 1995
 Short: This is a textbook with an emphasis on design.

 Title: Seamless Object-Oriented Software Architecture: Analysis and
            Design of Reliable Systems
Author: Kim Walden & Jean-Marc Nerson -- ISBN: 0-13-031303-3 -- PH 1994
 Short: This book describes the Business Object Notation (BON) Method
        in detail.

 Title: Reusable Software: The Base Object-Oriented Component Libraries
Author: Bertrand Meyer -- ISBN: 0-13-245499-8 -- PH 1994
 Short: This book describes principles of library design and the
        taxonomy of fundamental computing structures. Serves as a
        manual for the EiffelBase libraries.

 Title: An Object-Oriented Environment: Principles and Application
Author: Bertrand Meyer -- ISBN: 0-13-245507-2 -- PH 1994
 Short: This book describes the ISE EiffelBench environment as well as
        the "Melting Ice" compilation technology and the EiffelBuild
        GUI application builder.

 Title: Object-Oriented Applications
Author: Meyer and Nerson editors -- ISBN: 0-13-013798-7 -- PH 1993
 Short: This book includes an introduction to Eiffel technology
        followed by seven in-depth descriptions of large applications
        written in Eiffel.

 Title: Eiffel: An Introduction
Author: Robert Switzer -- ISBN: 0-13-105909-2 -- PH 1993
 Short: This book is a very clear and concise Eiffel primer, with many
        code fragments and two substantial Eiffel applications. Also
        available in French (ISBN 2-225-84-656-1).

 Title: Object Oriented Software Construction, first edition
Author: Bertrand Meyer -- ISBN: 0-13-629049-3 -- PH 1988
 Short: An earlier edition of the second edition mentioned above, based
        on a previous version of the language.
        Also available in French, German, Italian, Dutch, etc.

Publishers are Addison Wesley (AW) and Prentice Hall (PH).

 --------------------

QWEB: Where can I find Eiffel on the World-Wide-Web?

http://www.cetus-links.org/oo_eiffel.html
  Cetus Links is a directory of resources on object-oriented
  programming, including useful Eiffel pages.

http://www.eiffel-nice.org/
  The home page of NICE, the Eiffel standardisation body.

http://www.gobosoft.com/
  The home of the Gobo Eiffel project.

The main vendors websites are:

 Eiffel Software   http://www.eiffel.com/
 Object Tools      http://www.object-tools.com/
 SmartEiffel       http://smarteiffel.loria.fr/


 --------------------

QEDI: Where can I get an Eiffel editor or emacs-mode?

Tower Technology developed an Eiffel 3 emacs mode that supports
syntax-directed highlighting, auto-indentation and is easily
customized for font use, color and indentation amounts.

The WINEDIT shareware programmer's editor offers colour syntax
highlighting, works with Eiffel/S under MS-Windows, and is available
from all main Windows shareware archives.

Alan Philips' free Programmers File Editor also works with Eiffel/S
under MS-Windows, has templates but not syntax highlighting, available
from http://www.lancs.ac.uk/people/cpaap/pfe/

The vim editor, an enhanced version of Unix's vi, includes Reimer
Behrend's Eiffel syntax file as part of the standard distribution,
from http://www.vim.org/

An Eiffel extension to the Windows programmers editor Codewright
from Premia implements chromacoding of Eiffel code, smart indenting
and some templates; from http://www.nenie.org/eiffel/free/

The commercial Windows editor TextPad (http://www.textpad.com/) has
a number of Eiffel syntax highlighting extensions.

 --------------------

QBON: What is BON?

BON ("Business Object Notation") is a method for high-level analysis
and design, offering a seamless reversible transition to an Eiffel
implementation. The method emphasizes Design by Contract and
systematic development. It is described in Walden and Nelson's book
'Seamless Object-Oriented Software Architecture' which is available 
online at http://www.bon-method.com/ along with other resources 
on the method.

Eiffel Software supports BON within EiffelStudio.

 --------------------

QSTD: Are there standards for the Eiffel language?

The definition of the Eiffel language is in the public domain. This
definition was initially controlled by NICE, the Non-profit
International Consortium for Eiffel, a group of Eiffel vendors
and users. Website: http://www.eiffel-nice.org/

The definition of the language is Bertrand Meyer's book, "Eiffel:
The Language" (2nd Printing). This is amended for the kernel
library (ELKS) by NICE documents: ELKS-95 with later incremental
updates for specific classes, which are all available from NICE's
website.

An ECMA committee has also now been established, with a view to
use the fast track process towards ISO standardisation. The result
of this process will be published in the third edition of "Eiffel:
The Language", a draft of which is reachable from Bertrand Meyer's
page: http://www.inf.ethz.ch/personal/meyer/

NICE is proceeding with kernel library standardisation while
the ECMA committee deals with the core language.

NICE membership is currently free. People interested in
the standardisation and promotion of Eiffel can join from the web
site. Open email lists are available for discussion on topics that
are of interest to the Eiffel community and NICE (see the website).

The NICE board members for 2003 are Joseph Kiniry, Frieder Monninger,
Berend de Boer and Franck Arnaud.

 --------------------

QPOR: How do I write portable applications?

It is possible to achieve reasonable code portability between
supported Eiffel compilers, when care is taken not to use proprietary
features or new extensions or obscure features of the language
whose implementations may vary.

Portability between several operating systems supported by a
given compiler is generally quite good.

The situation is less straightforward with libraries. The
only official library standard is the ELKS-2001 kernel standard.
The core features and classes are portable if vendor-specific
features are avoided, but the functionality coverage is limited.

ELKS-2001 does not include container classes (except ARRAY). Eiffel
Software has released its data structure library, EiffelBase, as open
source, and some other vendors support it with their compiler but it
does not work with others.

Eric Bezault's open source Gobo library (http://www.gobosoft.com/) is
probably the most widely used alternative library, and it has been
made portable to all current compilers. It includes an EiffelBase
emulation cluster so that most applications developed using
EiffelBase can be ported to any compiler using Gobo. Beyond
data structures, it includes essential functionality not
covered in ELKS-95 and abstractions of some differences between
Eiffel compilers.

 --------------------

QTGV: How fast do Eiffel applications run?

Eiffel is a statically typed object-oriented language using
automatic memory management.

Many Eiffel compilers make use of the static typing and perform
extensive global optimisations producing performance comparable
with other well-optimised statically typed languages like C++.

Eiffel's assertions are normally enabled during development,
and inevitably slow down execution. Assertions are not usually
compiled in production binaries and so have no impact on the
performance of optimised code.

The cost of garbage collection is an often debated point, and
large applications are often dominated by memory management rather
than computation. In principle a style of programming assuming a GC
could be more efficient than typical manual memory management. In
any case, there is nothing in Eiffel making garbage collection less
efficient than with any other language where it is used.

 --------------------

QGRP: Are there any Eiffel user groups?

Compiler vendors usually run user groups for their user base, often
in the form of a mailing-list or meetings during conferences. Contact
the individual vendors for more information.

A number of online discussion groups about Eiffel are hosted at Eiffel
Software's discussion site (http://www.talkitover.com/) and on Yahoo
Groups (http://groups.yahoo.com/). These sites provide both e-mail and
web-based interfaces.

Many Eiffel projects are hosted at Sourceforge, the free open source
hosting site. http://www.sourceforge.net/

South American users of Eiffel can look at the home page of RIPLEG
(Rio de la Plata Eiffel Group). http://www.ripleg.com.ar/

The Colorado Eiffel User's Group meets in Denver and has a mailing
list at http://groups.yahoo.com/group/colorado_eiffel_users/

 --------------------

QADR: Where can I get Eiffel products and services?

These vendors, resellers and suppliers of Eiffel training and
consultancy are listed in alphabetical order:


- Advanced Media Technology Ltd, http://www.eiffel.fi/
  (Jukka Haukijarvi, jukka.haukijarvi@eiffel.fi)

- Cap Gemini France, Division ITMI, http://www.capgemini.fr/
  (Jean Marc Nerson, jnerson@capgemini.fr)

- Class Technology Pty. Ltd., http://www.class.com.au/
  (Eiffel Desk, eiffel@class.com.au)

- Eiffel Ireland, http://www.eiffel.ie/Eiffel/
  (Simon Parker, sparker@eiffel.ie)

- Enea Data, http://www.enea.se/
  (Contact: eiffel@enea.se)

- Everything Eiffel, http://www.eiffel.demon.co.uk/
  (Roger Browne, roger@eiffel.tm)

- Information and Math Science Lab Inc., http://www.imslab.co.jp/
  (Contact: fushimi@imslab.co.jp)

- Eiffel Software, Inc. http://www.eiffel.com/
  (Contact: info@eiffel.com)

- Langmack & Partner, Feinarbeit, http://www.feinarbeit.de/
  (Olaf Langmack, langmack@feinarbeit.de)

- Object Tools GmbH, http://www.object-tools.com/
  (Frieder Monninger, fm@object-tools.com)

 --------------------

QCNF: Are there any conferences for Eiffel users?

TOOLS is an international conference devoted to the applications of
OO technology. It is organised by Eiffel Software and a popular conference
with Eiffelists. EiffelStudio user group meetings occur concurrently.
http://www.tools-conferences.com/

The ACM SIGPLAN Conference On Object-Oriented Programming Systems,
Languages and Applications (OOPSLA) is probably the largest technical
conference about OO Technology.
http://www.acm.org/sigplan/oopsla/

ECOOP is the annual European Conference for Object-Oriented
Programming. http://www.iam.unibe.ch/ECOOP/

 --------------------

QECC: Why do many Eiffel implementations compile to C?

By using C as a target language, an Eiffel implementor can:

 - bring Eiffel to the marketplace faster and at lower cost
 - port their implementation more easily to other platforms
 - take advantage of optimisation provided by the C compiler

Much of the technology that makes Eiffel relatively simple to use also
makes it more difficult to implement (an Eiffel-to-C compiler is
perhaps 4 to 5 times more difficult to create than a native Pascal
compiler).

Compiling Eiffel to C seems to work well under Unix. C is sometimes
thought of as the native code of Unix.

Still, there are quite a few compilers that can compile to other
targets, such as the Java or .NET virtual machines, or x86
assembly language.

 --------------------

QJVM: Where can I get an Eiffel to Java compiler?

Since Java became fashionable, everyone wants their favourite
language to be compiled for the JVM (Java Virtual Machine)'s byte
code. It is tempting to think about providing Eiffel compilation
to this platform with total interoperability between Java and Eiffel
code.

Unfortunately, things are not as simple as they look at first sight.
There are fundamental differences between the Java and Eiffel object
models (dynamic vs. static object systems, single vs. multiple
inheritance, design by contract vs. wishful thinking, are among the
problems).

While it is of course possible to provide a compiler from Eiffel to
the JVM (which is a Turing machine), it comes necessarily at a cost,
be it performance or interoperability or both. It is unlikely in the
foreseeable future to have an Eiffel to JVM compiler where it is
possible to mix and match freely classes written in Java and Eiffel
classes without having to worry about which language they are
written in.

Nevertheless, most compiler vendors are moving towards providing
some support for the JVM, with differing limitations depending on
the vendor and implementation strategy.

SmartEiffel is the first compiler available to produce some
usable result on the JVM. Eiffel Software and Object Tools
have announced ongoing efforts to support Java.

 --------------------

QNET: Where can I get an Eiffel to .NET compiler?

Eiffel Software's current compiler includes the ability to
generate code for Microsoft's Common Language Infrastructure,
the .NET runtime environment. Eiffel Software is also
involved in the ECMA (European Computer Manufacturers
Association) standardisation effort for the CLI. Both
the standalone environment and the add-on for Visual
Studio (ENViSioN) can be used to produce .NET code.

While the early version of this .NET target only supported a
ad-hoc subset of Eiffel, the current version supports the
full Eiffel language. Features of Eiffel not directly supported
by the .NET object model, are implemented on top of the core
features.

 --------------------

LFEA: What features does Eiffel have?

Eiffel is a pure, statically typed, object-oriented language. Its
modularity is based on classes. Its most notable feature is probably
design by contract. It brings design and programming closer together.
It encourages maintainability and the re-use of software components.

Eiffel offers classes, multiple inheritance, polymorphism, static
typing and dynamic binding, genericity (constrained and
unconstrained), a disciplined exception mechanism, systematic use of
assertions to promote programming by contract.

Eiffel has an elegant design and programming style, and is easy to
learn.

An overview is available at
http://www.eiffel.com/doc/manuals/language/intro/

 --------------------

LCHN: What changes have been made to the Eiffel language definition?

Eiffel is still a relatively new language, and there have been a
number of changes to its definition.

There were significant changes between the publication of
"Object-Oriented Software Construction", first edition in 1988,
and the release of Eiffel 2.3.

More significant changes came with the introduction of Eiffel 3, the
current and only version of the language in use today. These changes
are summarised in Eiffel: The Language.

There were some less significant changes between the first
and second printings of "Eiffel: The Language": new

Section 1 of 2 - Prev - Next

Back to category Programming - Use Smart Search
Home - Smart Search - About the project - Feedback

Игровые автоматы онлайн вебмани

© allanswers.org | Terms of use

LiveInternet