Open-source Eiffel downloads

Nov/December 2005

Over the past few months a number of research efforts and plain student projects at ETH have yielded software products that should be of great practical interest to the readers of Eiffel World. All are freely downloadable. They're also all open-source software: their authors will be delighted if others want to participate in continuing the development.

They're all research, at various stages of advancement and with no promise of perfection, but they are not prototypes: all the products listed below are in my opinion useful, practical tools that can provide real value to software developers. Try them; I am confident you will find them helpful.

The central download page is:

http://se.ethz.ch/download/index.html

but I have also included the direct links to the specific project pages.

*AutoTest* (Ilinca Ciupa, Andreas Leitner) is a test generation tool that has the almost unique property of requiring no preparation of test data whatsoever. "Test While You Lunch" is the idea, and the slogan is "We Kick Bugs!". You submit to AutoTest a set of contract-equipped classes, and let it test them automatically, generating objects and routine calls according to its own criteria, and trying to defeat the contracts. More precisely, AutoTest tries to satisfy the preconditions -- trying a routine outside of its precondition is a waste of CPU cycles, even if it happens during lunch time -- and to break the postconditions. It's really push-button: you specify the classes and do nothing else, other than giving AutoTest time to plow through the haystack and find a few needles (bugs). It's incredibly effective, having for example succeeded for EiffelBase in finding (shame) a number of real bugs, heretofore unknown. It's the beauty of contracts that you don't have anything to do to get these results.

Notice: users are responsible for their lunches.
http://se.ethz.ch/people/leitner/auto_test/

Erl-G (Andreas Leitner): a reflection library for Eiffel, developed in part for AutoTest.
http://se.ethz.ch/people/leitner/erl_g/

EiffelMedia (Till Bay and many student projects): the multimedia library to end all multimedia libraries. ("ESDL", listed on the general download page, is the previous version.)
http://eiffelmedia.origo.ethz.ch/

The Graph Library (Olivier Jeger): an elegant extension to EiffelBase providing graph mechanisms through a carefully designed inheritance hierarchy.
http://se.ethz.ch/projects/olivier_jeger/index.html

SCOOPLI (Piotr Nienaltowski): the first real implementation
of the SCOOP model for object-oriented concurrency, based on Eiffel and Design by Contract principles. Still in its early stages, but look at all the examples that it can already run.
http://se.ethz.ch/research/scoop.html

TRAFFIC and FLAT HUNT (Patrick Schoenbach, Michela Pedroni
and several students): the library and game we use to teach introductory programming, based on the display, animation and simulation of a city. FLAT HUNT is a "Scotland Yard"-style game based on TRAFFIC: instead of cops chasing robbers, it's Zurich students chasing a real estate agent trying to escape from them and rent to more respectable customers.
http://se.ethz.ch/traffic/

Games (150 students): have a look at some of the games last year's 4th-semester students developed for their projects -- in only about 6 weeks! Because of extensive work on EiffelMedia and a game framework, we expect this year's projects to break new barriers, but some of last year's were already pretty cool.
http://games.ethz.ch

Pattern Wizard and Pattern Library (Karine Arnout): don't program design patterns any more -- just use the Pattern Library to use some of the major GoF patterns directly into your application, through the library's API.
http://se.ethz.ch/people/arnout/patterns/

Watch the page -- many more components, libraries and tools, and revisions to the current ones, will appear the coming months.

--Bertrand Meyer