What is Eiffel programming language?



 



What is Eiffel?

Actually, in this case it is short for “The Eiffel Development Framework™” – a comprehensive approach to software development. It consists of the Eiffel methodology for the beginning-to-end construction of robust, reusable software; the Eiffel language, which supports the methodology; and EiffelStudio™, the environment that contains the Eiffel compiler and the complete set of productivity tools which make the development environment. The individual parts fit together with and support each other’s function in the pursuit of making the best software possible.

No other software development system has been designed to work in such a simple and powerful way. The results of this approach and design are staggering. Productivity increases. Cost of ownership goes down. Quality levels go up.

Eiffel takes companies’ software to a level of efficiency and reliability far above the capabilities of other languages and development tools.

View Eiffel in detail


Where does the name come from?

Eiffel is named after Gustave Eiffel, an engineer who created the famous tower. The Eiffel Tower, built in 1887 for the 1889 World Fair, was completed on time and within budget, as will software projects written in Eiffel. If you look at that wonderful structure, you will see a small number of robust design patterns, combined and varied repeatedly to yield an extremely powerful, bottom-up structure – exactly like a system built out of Eiffel Software’s reusable libraries. Like many software systems today, the Eiffel Tower was initially conceived as a temporary structure; and like many systems built with Eiffel, it was able to endure far beyond its original goals.


How did Eiffel come about, and what is its history?

Eiffel was designed at Eiffel Software (then known as ISE) in 1985, initially as an internal tool to develop various internal applications. Eiffel Software engineers needed a powerful, object-oriented environment integrating the concepts of modern software engineering, and there was simply nothing available. This is why, Dr. Bertrand Meyer, founder of Eiffel Software, designed for them the The Eiffel 1 compiler. It was introduced to the public at the first OOPSLA conference in October of 1986 where it attracted considerable attention, leading us to release it as a commercial product at the end of 1986. The technology spread rapidly over the following years, leading to a set of successful industrial projects in the US, Canada, Europe and the Far East. Right from the start, Eiffel also attracted attention from the academic community as an ideal tool for teaching programming at all levels. Numerous universities around the world have since used it as the primary teaching language.

Successive versions of the environment appeared at the rate of about once a year. Eiffel recognition was given wider visibility with the publication in 1988 of the book Object-Oriented Software Construction by Dr. Bertrand Meyer, which quickly became a best-selling title and was translated into eight languages; the book used Eiffel to explain and illustrate the fundamental concepts of object technology and Design by Contract™. Since then, an expanded new edition of this book has been released: Object-Oriented Software Construction, 2nd Edition.

The last iteration of the original technology was version 2.3, released in the Summer of 1990. The next version, Eiffel 3, was written entirely in Eiffel; it was bootstrapped from 2.3. Eiffel 3 introduced the Melting Ice Technology for fast recompilation, a fully graphical environment based on innovative user interface concepts, and considerable advances in libraries (graphics, networking…) and optimization of the generated code. The initial versions were released on Unix and followed by Linux, VMS, OS/2, Windows (Windows 3.1, Windows 95, Windows NT), .NET, and Mac OS X.

Today, the Eiffel technology continues to push the frontiers of software development. With the introduction of EiffelStudio, programmers can take advantage an efficient IDE for achieving highest-quality, robust, scaleable, reusable software applications – on all major platforms.


What is EiffelStudio?

EiffelStudio is the Integrated Development Environment (IDE) designed exclusively for the Eiffel Object-Oriented language. Seamlessly addressing the whole life cycle of software development, EiffelStudio provides facilities that will help your team to develop from initial design time, right through deployment, testing, and maintenance. Built in functionalities such as Computer Aided Software Engineering (CASE) tool for the Business Object Notation (BON) method allow you to see and interact with the design of your system during development, and there is no need for reverse engineering as everything is done concurrently. EiffelStudio also has superb browsing mechanisms for viewing information about your code and it performs and behaves at execution. From full feature browsing, to built in metrics and profiling, EiffelStudio can give you information on almost anything about your system.

Centered around the Design by Contract™ methodology, EiffelStudio’s debugger will allow your software to find the bugs for you, minimizing the costs of maintenance that systems designed with other languages have to endure. Coupled with a browsable editor, EiffelStudio allows you to navigate to any part of your system to track down and fix the so called ‘hard to find’ bugs, reducing project costs even further.

View EiffelStudio page


What is the difference between Eiffel and EiffelStudio?

Eiffel is the language a developer uses to write great software. EiffelStudio is the environment and toolkit that surrounds the Eiffel language.


Is Eiffel intended for any specific application area?

Not specifically. Eiffel shines in ambitious systems that need to adapt to changing market and user demands. It brings many benefits to serious application development and is used in various industries, from financial applications to manufacturing, product configuration control, healthcare, telecommunication systems, defense ….

Eiffel scales up thanks to its abstraction and structuring facilities. It is one of the few environments that won’t let you down when your project (or company) grows in size, scope, and ambition.


What about operating systems then? Where does Eiffel run?

Eiffel is very portable, a feature that developers love. It runs just about everywhere, including Windows (classic and .NET), Unix, Linux, VMS, and Mac OS X. This allows developers the flexibility to maintain their legacy code while developing new code on a completely different operating system.


Won’t I have to forsake my existing software, thus losing millions of dollars?

Absolutely not. Eiffel is an open system, at its best when used as a combination technology to reuse software components written in various languages. In particular, Eiffel includes a sophisticated C and C++ interface, supporting:

    • Calling C functions from Eiffel.
    • Accessing C++ classes and all their components (functions or “methods”, data members, constructors, destructors etc.) from Eiffel.
    • Accessing Eiffel mechanisms from C or C++ through the Cecil library (C-Eiffel Call-In Library).
    • Automatically producing a “wrapper” Eiffel class from a C++ class.

Eiffel makes it possible to move to modern software technology while reusing the best results of earlier practices.


How fast is Eiffel’s run-time performance?

FAST. Eiffel Software has shown that it is possible to utilize the full power of modern object technology without sacrificing run-time performance. Various benchmarks show run-time efficiency similar to C and Fortran, and in many cases better.


What is Melting Ice Technology?

Eiffel Software’s unique incremental compilation technology which combines compilation, generating optimally efficient code, with bytecode interpretation, for a fast turnaround after a change.

View corresponding documentation


Is it true that Eiffel Compiles into C?

Yes. The Eiffel compiler generates an internal form known as “bytecode”. The bytecode can be interpreted directly, but it can also be translated into other forms.

To generate the final version of a system, the bytecode is optimized and translated into C, to take advantage of the presence of C compilers on just about every platform under the sun. This is the process known as “finalization”, which performs extensive optimizations (routine inlining, static calls, array optimization), permitting performance achievements.

Using C as an intermediate language takes advantage of the platform-specific optimizations performed by C compilers, and most importantly, facilitates interoperability with software written in C and C++.


What about graphics?

Eiffel offers a choice of graphical libraries for a variety of application scenarios.

For portable projects, EiffelVision is a high-level graphical library covering user interface objects (windows, dialogs, menus, buttons, dialog boxes etc.) as well as geometrical figures (polygons, circles and the like) that will run on all the supported platforms, adapting in each case to the native look-and-feel.

For platform-specific projects, to take advantage of the full set of “controls” or “widgets” available on a particular window system, the platform-specific libraries are available:

    • On Windows, WEL (the Windows Eiffel Library) gives access to essentially all the Windows graphical API, including the most recent controls. A separate page describes how WEL combines the advantages of Windows and Eiffel. An extensive WEL tutorial is available on-line, as well as a general presentation of the design of WEL.
    • On Unix, Linux and VMS we provide GEL, the GTK Eiffel Library.

 

Using EiffelVision or one of the platform-specific libraries is not an exclusive proposition: you can mix-and-match the two levels, using EiffelVision for its abstract capabilities, and for example, WEL to take advantage of specific Windows controls. In fact, EiffelVision internally relies, for its implementation on each platform, on the corresponding platform-specific library, so you already have WEL if you are using EiffelVision on Windows.


What about relational databases?

Eiffel Software provides the EiffelStore library for object-relational interfaces, with mappings available for ODBC (giving access to dozens of database systems on Windows), Oracle, Sybase and Ingres.

Eiffel has also been interfaced with such object-oriented databases as Matisse, Versant, and O2.


What does the IDE look like?

EiffelStudio is a fully graphical environment that includes all you would expect and more: analysis and design workbench with round-trip (or reversible) engineering, fast recompilation, editing, sophisticated browsing facilities, automatic documentation (see for example the descriptions of the “short form” below), an advanced debugging mechanism, etc.

Just as an illustration, with further explanations available in the Online documentation, below is a screenshot from EiffelStudio:

 

concurrent_engineering

For more views, see EiffelStudio sreenshots page.


A counter is great but how do I write a real system?

The principles scale up. A class can represent a counter, but it can also represent an assembly line or a factory.

The Eiffel mechanisms for abstraction, reliability, and simplicity provide a power of expression unmatched in the software world.


What about reusability?

As Roland Racko wrote in Software Development:

“Everything about Eiffel is single-mindedly, unambiguously, gloriously focused on reusability — right down to the choice of reserved words and punctuation and right up to the compile time environment”.

We couldn’t have said it better. Eiffel was designed from day one to be the vehicle for the new software industry, based on the reuse of high-quality components — rather than on everyone reinventing the wheel all the time.

This saves organizations countless hours and thousands of dollars in wasted development time.

Eiffel has put these ideas into practice by providing a rich set of professional reusable libraries (several thousand carefully crafted classes): EiffelBase, EiffelVision, EiffelNet, EiffelWeb, EiffelParse, EiffelLex, WEL, MEL, PEL etc.

View Eiffel libraries

0 Response to "What is Eiffel programming language?"

Post a Comment

Article Top Ads

Central Ads Article 1

Middle Ads Article 2

Article Bottom Ads