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
|