News & Events
SmartEiffel is a research and free software project that provides the Eiffel community with:
- a mature and free compiler (GPL licence)
- an extensive and entirely object-oriented class library (MIT/X-11 licence)
- all those Eiffel-specific tools needed for a complete development environment, as an Eiffel-level symbolic debugger or a documentation tool
As the compiler translates Eiffel code either to C or Java bytecode, it can be used to write programs that run on virtually any platform for which an ANSI C compiler or a Java virtual machine exist. The compiler and all the accompanying tools are fully written in Eiffel, so they can be used in all these platforms.
SmartEiffel extends traditional Eiffel care about reliability and good software engineering practises with a specific concern about runtime performance and tiny memory footprint. You can get a measure of the success of the project on that area at The Computer Language Shootout Benchmarks.
All the traditional Eiffel features are implemented in SmartEiffel:
- Design by Contract: including disciplined exceptions and optional assertion execution (on a by-cluster basis)
- Multiple inheritance and genericity
- Static typing
- Uniform type system
- Automatic garbage collection
- .ace configuration files
In addition, some more recently proposed improvements have also been incorporated:
- Tuples and agents
- Multiple insertion (implementation-only inheritance)
- A plug-in mechanism for better interoperability with other languages
- Limited introspection capabilities
The language has entered a stability period where only minor changes will be added. All future modifications must prove to represent a real gain from the point of view of software engineering, and they can not spoil run-time efficiency.
The SmartEiffel project is not interested in implementing a compiler compliant with the ECMA Eiffel standard of 21st June 2005 (ECMA-367). This norm describes a different language that breaks the traditional Eiffel taste for simplicity and imposes a run-time model incompatible with our performance aspirations. As other Eiffel compiler writers declare to be compromised with this standard (although it is far from being implemented at time being), writing portable across Eiffel compilers code is going to be increasingly difficult.
Amongst other things, SmartEiffel features an innovative strategy involving whole system analysis which allows compilation to be often faster than the incremental compilation of traditional compilers.
It is the result of a research project of the LORIA lab, a join computer science research centre in Nancy, France, involving:
- INRIA: Institut National de Recherche en Informatique et Automatique, or French National Institute for Research in Computer Science and Control
- CNRS: Centre National de la Recherche Scientifique, or French National Centre for Scientific Research
- University Henri Poincaré, Nancy 1
- University of Nancy 2
- INPL: Institut National Polytechnique de Lorraine
This project began in 1994 under the name "SmallEiffel", and since the very first public release in September 1995, the project has been used worldwide by increasingly numerous Individuals, Universities and Corporations.