The Tipu Sultan was a great fan of machinery displaying elegant design and efficient operational mechanisms—not least if it were at all related to tigers as in the pearl of his collection where a tiger is savaging a European...The sultan announced a competition for best design or efficiency of some automated device. The prize was his weight in salt—not as fabulous as his weight in gold, but still quite a prize given the value of salt at the time.
The competition has yet to be settled, but that will happen this year. Unfortunately, the prize now only represents the value of a T-shirt. Everything else is unchanged. In particular, the ruler will subjectively decide who wins the prize...
The compilers will be run on the publicly available Tipu programs (note that a program such as OutOfBounds.tipu is bugged; thus, here the correct runtime behavior is to return the correct error code) as well as on further tests, which are not made publicly available until after the deadline.
Additionally, the compilers will be exposed to a time trial of the generated code for the Tipu program, Knapsack.tipu.
Finally, we will evaluate the extent of additions that improve on other aspects such as ease of programming in Tipu, space utilization, and other elements.
We make a combined evaluation of the correctness, efficiency, and features of the compilers (and possibly extended Tipu language). Correctness has highest priority in the sense that there is a limit to how many errors the compiler can make before everything else becomes uninteresting. Efficiency and other features have equal weight. Thus, it's quite possibly to win despite of not performing excellently in the time trial.
Our evaluation will lead to the selection of the Compiler of the Year. The winner group will be announced on the course home page. As mentioned, there will be a small prize, but you are primarily competing for the honor.
If you want to make extensions which are time-consuming at
runtime (runtime checks for out-of-bounds, etc.),
you may equip your compiler with the ability to recognize an option
-x such that as default your compiler runs with the
time-consuming code, but with an option, these can be
deactivated using tipu -x. Then we will use this option
during the time trial.