CS 4448 - Spring 1998
Object-Oriented Programming and Design
Discussion 6.2.2
by
Phil Hugger
Summary of Eiffel Discussion
- Eiffel is a OO language, as well as a programming environment
and an analysis tool.
- What are the goals of ISE Eiffel?
- Rapid prototyping - get your software out fast.
- Lower maintenance costs - write bug-free software the first time.
- Quick reaction to market demands - easily adaptable software.
- Preserve your investment - robust, reusable software.
-
Eiffel is an open system, best used as a combination technology.
- Includes a sophisticated C and C++ interface which supports:
- Calling C functions from Eiffel
- Accessing C++ classes and components (functions or "methods," data
members, constructors, destructors, etc.) from Eiffel.
- Accessing Eiffel mechanisms from C or C++ through Cecil library
(C-Eiffel Call-In Library)
- Automatically producing a "wrapper" Eiffel class from a C++ class.
- Benchmarks show a speed similar to C and Fortran, and in some cases
better.
- Uses a unique incremental compilation technology, called "melting ice
technology."
-
Combines traditional compilation (for fast, efficient code) with bytecode
interpretation (allowing fast turnaround after changes) to use the
advantagesof both methods.
- Final version of code is then translated from the optimized bytecode
into C, in a process called "finalization".
- Eiffel written in itself.
- Provides a full set of platform-specific libraries which include:
- WEL (Windows Eiffel Library) for Windows 95/NT
- PEL (Presentation-manager Eiffel Library) for OS/2
- MEL (Motif Eiffel Library) for Unix
- Relational database interfaces:
-
EiffelStore library with mappings available for ODBC (windows databases),
Oracle, Sybase, and Ingres.
- Eiffel has a fully graphical environment.
- Analysis and design workbench
- Editor
- Browser/Debugger
- Documentation
- Design by contract - systematic engineering approach to building
reliable software.
- Invariants
- All operations guaranteed to maintain this condition.
- Preconditions
- Must be true when method is called.
- Postconditions
- If precondition is true, postcondition is guaranteed.
-
Build software together with the arguments that justify it's correctness.
-
Can select which assertions are monitored at runtime - assertion levels
- no check
- preconditions only
- postconditions only
- "Short form" notation gives the users of a class a precise description
of the interface and assertions without revealing the implementation.
-
Supports inheritance and clean mulitple inheritance.
-
Renaming mechanism eliminates name clashes, selection facility
removes ambiguities resulting from multiple redelacrations.
-
Statically typed
-
Errors are caught at compile time, not run time.
-
Dynamically bound
-
Guarantees that the right version of an operation will always be applied
depending on the target object.
Copyright © University of Colorado. All rights reserved.
Revised: April 14, 1998