Eiffel
Overview
- Proprietary product of Interactive Software Engineering, Inc.
- Designed by Bertrand Meyer around 1986
- Compiled programming language
- Object oriented
- Useful for telecommunication systems, financial applications,
teaching purposes, rapid prototyping
- Syntax is similar to Pascal
Features
- Completely object-oriented
- Every type is based on a class, including basic types such as
integer, boolean, real, character, string, array
- Eiffel is strongly typed (every entity has a declared type)
- Static typing (all type errors are caught at compile time,
rather than run time)
- Preconditions
- Postconditions
- Invariants
- The preconditions of a routine are the responsibility of
the
caller.
- The postconditions of a routine are the responsibility of
the
routine.
- Invariants are properties that apply to all instances of a
class and that must be preserved by all methods of the class.
- If the preconditions, postconditions, or invariants are
violated, an exception is raised.
- Exception handling
- Method overriding
- Multiple inheritance
- Feature renaming; a class can give a new name to an inherited
feature
- Unconstrained genericity
Case sensitivity
- Eiffel is case insensitive.