Experiments with Eiffel
- Supervisor Dr. Joseph Kiniry
- Subject Area Programming Languages
- Pre-requisite Good understanding of object-oriented programming, basic knowledge of compilers
- Co-requisite (things you must learn along the way) Eiffel
- Subject Coverage Compilers
- Project Type Implement competing Eiffel language proposals and evaluate their utility
- Hardware/Software PC, laptop or workstation capable of running EiffelStudio
Description
The Eiffel language is current under revision while being "standardised" by an ECMA committee that consists of many (but not all) major players in the Eiffel world.
It is not clear at this time if:
- (a) the language decisions that are being made by the committee are the correct choices, as a compiler does not exist that implements all (or even most) of the new features, and
- (b) if the FLOSS Eiffel compilers (the GNU SmartEiffel compiler and Visual Eiffel) will implement any of the new language features of the new ECMA Eiffel language.
The purpose of this project is to implement one or more of the proposed language extensions in the SmartEiffel or VisualEiffel compilers so as to evaluate their design, effectiveness, and utility.
Mandatory
- Gain familiarity with the GNU SmartEiffel and VisualEiffel compilers.
- Gain familiarity with the ECMA Eiffel language specification.
- Choose at least one language feature that has multiple conflicting realisations.
- Design and implement the alternative realisations of the language feature.
- Evaluate the language feature from multiple points of view, theoretical and practical, through the implementation of new non-trivial code, or, more likely, modification of an existing codebase like Gobo.
Discretionary
- Coauthor, submit, and publish a paper on this work.
Sources of information and preparatory reading
- Eiffel programming language
- Eiffel the Language (aka ETL3)
- Object-Oriented Software Construction, by Bertrand Meyer (Joe has a copy you can borrow, or the library should have a copy or you should buy a copy, as it is a critical text for any CS student)
- Visual Eiffel
- SmartEiffel
- The Start of an Eiffel Standard by Bertrand Meyer
- The draft ECMA Eiffel Standard