Tiger 2004

During this year, Akim was helped by:

Comaintainers

Alexandre Duret-Lutz, Raphaël Poss, Robert Anisko, Yann Régis-Gianas,

Assistants

Arnaud Dumont, Pascal Guedon, Samuel Plessis-Fraissard,

Students

Cédric Bail, Sébastien Broussaud (Darks Bob), Stéphane Molina (Kain), William Fink.

Deliveries:

Stage

Submission

TC-2

Tuesday, March 4th 2002 at noon

TC-3

Friday, March 15th 2002 at noon

TC-4

Friday, April 12th 2002 at noon

TC-5

Friday, June 14th 2002 at noon

TC-6

Monday, July 15th 2002 at noon

Criticisms include:

The driver is not maintainable

The compiler driver was a nightmare to maintain, extend etc. when delivering additional modules etc. This was fixed in 2005 by the introduction of the Task model.

No sane documentation

This was addressed by the use of Doxygen in 2005.

No UML documentation

The solution is yet to be found.

Too many visitors

It seems that some students think there were too many visitors to implement. I (Akim) do not subscribe to this view (after all, why not complain that “there are too many programs to implement”, or, in a more C++ vocabulary “there are too many classes to implement”), nevertheless in Tiger 2005 this was addressed by making the EscapeVisitor “optional” (actually it became a rush).

Too many memory leaks

The only memory properly reclaimed is that of the AST. No better answer for the rest of the compiler. This is the most severe flaw in this project, and definitely the worst thing to remember of: what we showed is not what student should learn to do.

Though a garbage collector is tempting and well suited for our tasks, its pedagogical content is less interesting: students should be taught how to properly manage the memory.

Filling holes is not interesting

Cannot be solved, see Tiger 2003.

Ending on TC-6 is frustrating

Several students were frustrated by the fact we had to stop at TC-6: the reference compiler did not have any back-end. Continuing onto TC-7 was offered to several groups, and some of them actually finished the compiler. We took their work, adjusted it, and it became the base of the reference compiler of 2005. The most significant effort was made by Daniel Gazard.

Double submission is intractable

Students were allowed to deliver twice their project—with a small penalty—if they failed to meet the so-called “first submission deadline”, or if they wanted to improve their score. But it was impossible to organize, and led to too much sloppiness from some students. These problems were addressed with the introduction of “uploads” in Tiger 2005.