Liberty Eiffel is a free compiler for the Eiffel programming language
It continues the development of the legacy SmartEiffel system, which was the former GNU Eiffel Compiler - a role proudly taken over by Liberty Eiffel a number of years ago.
Liberty Eiffel is a complete, small and fast Eiffel compiler, including an Eiffel to C compiler, documentation tools, a pretty printer, a debugger and various other tools. It also includes a large library of classes distributed under the terms of the MIT/X Consortium License as well as a comprehensive set of wrappers/bindings for widespread Free-Software libraries.
Eiffel is an advanced object-oriented programming language that emphasizes the design and construction of high-quality and reusable software.
If you are impatient hop over to Getting Started directly, otherwise read a few words about Liberty Eiffel's history:
The origins of the language is Eiffel and more specifically SmartEiffel. At one point in time one could consider Liberty Eiffel a direct fork of the legacy SmartEiffel code base. Since then Liberty Eiffel has evolved quite significantly beyond the original code base in multiple areas.
We want to retain from SmartEiffel its rigour; but not its rigidity. Think of Liberty as SmartEiffel liberated from its academic constraints.
Liberty is free as in freedom. We want people to contribute to Liberty from the start. So please, do join us to give Eiffel the leading position it should have won twenty years ago :-)
The following documents were published by the SmartEiffel team:
- Conformance of agents in the Eiffel language
- Reconciling Subtyping and Code Reuse in Object-Oriented Languages
Liberty Eiffel's future
Liberty Eiffel Community
Origins of Liberty Eiffel's predecessor
During the course of his work on his thesis, Dominique Colnet, principal author of SmartEiffel, discovered the Eiffel language while editing an encyclopedic work on object oriented languages ([MNCLT 1989], [MNCLT 1991]).
Holding the post of Assistant Professor of Computer Science in 1989, the Powers That Be at his educational institution at the time decided, in 1990, to use the Eiffel language for introductory computer science. It is amusing to mention here that Dominique Colnet was at the time a fervent defender of Smalltalk. As everyone knows, it's a pretty good thing that it's not up to a young Assistant Professor of Computer Science to decide which programming language is the best one to use. So, it is amusing to note that Dominique Colnet was forced to use Eiffel against his will in 1990!
In order to reconcile his teaching and research work on the compilation of object oriented languages, Dominique Colnet decided to abandon Smalltalk for Eiffel and to establish a project to kill two birds with one stone: combine interesting research with a free product that would also be useful for teaching - with which he actually started in 1994 when he decided to write his own Eiffel compiler.
Writing an Eiffel compiler is no small undertaking. Before making this decision, Dominique Colnet had begun to write a new Eiffel class library whose architecture simply corresponded nearly word for word with the base classes of Smalltalk-80 libraries at the time ([GR 1983], [Goldberg 1984]). Because of the very bad quality of the commercial Eiffel compilers available at that time the decision was taken to write a new one from scratch. The new compiler was named SmallEiffel to make reference to both Smalltalk and Eiffel ([OOSC 1988], [ETL 1992]). An entire year was necessary to write the first version of SmallEiffel and it was not until July 1995 that SmallEiffel was able to compile itself. Since that time, more than thirty versions have seen the light of day.
Little SmartEiffel developing into something bigger?
Starting out as simple research prototype and teaching aid, SmartEiffel has seen its capabilities steadily increase from version to version since 1995.
In 1998, on the occasion of a visit to LORIA by Richard Stallman, president and founder of the FSF (Free Software Foundation), the GNU designation was added to the project's name.
From 2002 and up to 2005, Dominique Colnet participated actively in meetings with the initial objective of standardizing the Eiffel language (ECMA standards committee TC39-TG4, ECMA standard number 367). Of course it goes without saying that the entire SmartEiffel team was associated with the standards work and its many long discussions...
Finally, in May 2005, the SmartEiffel project team announced that it was going to continue to work on the true Eiffel language. In reality, the language described by the ECMA TC39-TG4 working group clearly had diverged from what was conventionally called Eiffel. ECMA-Eiffel is a very different language, and above all, not yet experimented. The SmartEiffel team decided to never implement ECMA TC39-TG4.
Note: In this respect the Liberty Eiffel development team is
not as strict as the original SmartEiffel developers used to be.
See ECMA about Liberty's attitude to ECMA.
In July 2005, at the time when these lines got written, after more than 10 years of work not only on the compiler but also on the Eiffel language itself, the SmartEiffel team considered that the Eiffel language as they knew it contained nearly all desirable features. Therefore, version 2.2 of SmartEiffel marked the debut of a new level of stability and corresponded to what the team thought of as being the true Eiffel language.