Eiffel is a programming language designed to encourage the construction of correct software components using the object-oriented approach.
Named after the French Engineer who built the Eiffel tower of Paris, and is a tribute to M. Eiffel’s excellent civil engineering skills. Early specifications of the language are found in Bertrand Meyers’ book Object-Oriented Software construction. Eiffel supports modern software engineering techniques. It tries to bring together two important aspects of thinking; powerful programming abilities and easy to use.
Eiffel is a good language to study further because it is easy to learn, has a lot of powerful techniques for error checking and is similar to what we already know; C++.
SAMPLE CODE:
From An Invitation to Eiffel, by Bertrand Meyers *
- class ACCOUNT feature
- balance: INTEGER;
owner: PERSON;
minimum_balance: INTEGER is 1000
open (who: PERSON) is
-- Assign the account to owner who.
do
owner := who
end
deposit (sum: INTEGER) is
-- Deposit sum into the account.
do
add (sum)
end
withdraw (sum: INTEGER) is
-- Withdraw sum from the account.
do
add (-sum)
end
may_withdraw (sum: INTEGER): BOOLEAN is
-- Is there enough money to withdraw sum?
do
Result := (balance >= sum + minimum_balance)
end
feature {NONE}
add (sum: INTEGER) is
-- Add sum to the balance.
do
balance := balance + sum
end
- end -- class ACCOUNT
*Dictionary of Programming Languages ("http://users.erols.com/siring/cgi-bin/cep/cep.pl?_alpha=e")
C can be used with Eiffel as an intermediate language. Using C as an intermediate language takes advantage of the optimizations performed by C compilers and, most importantly, facilitates interoperability of Eiffel software and software written in C and C++.
Eiffel has been used in many application areas, from financial applications to telecommunication systems. It is also widely used for teaching purposes.
Eiffel shines particularly for ambitious systems that must be easy to adapt to changing market demands. With Eiffel you can quickly produce a basic version of a system, reliable and efficient, put it into users' hands early (while the competition is still trying to produce a "prototype"), and come up with new releases rapidly, all the time maintaining the standards of robustness that are the hallmark of the approach.
Through its abstraction and structuring facilities, Eiffel is one of the few environments that won't let you down when your project grows in size, scope and ambition.