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.