Competition

We hereby announce the competition Compiler of the Year.

The Hungry Tiger was torn between satisfying its hunger or coming to the aid of Princess Ozma immediately.

His eyes stared longingly at the lunch pail tree, located near the beach where Dorothy and Billina, the yellow hen, were washed ashore after they were tossed overboard from the steamship in the fierce storm. He wasn't staring because lunch pail trees were all that unusual in the Land of Ev, but because he was always hungry - no matter how much he ate.

In any case, he had limited time. If he decided to go eat, he should get the most out of it. The lunch pails on the tree have different sizes, and the larger they are, the harder they are to tear open. Thus, a fixed duration of time to spare would define a volume of lunch pails he would have time to go through. Not surprisingly, evolution of lunch pail trees had made it difficult to predict the nutrition value of a given lunch pail. However, The Hungry Tiger was quite experienced and knew immediately from the color of the lunch pail how much food would be in there. "Mmmh..., this requires some planning, but time is scarce; how can I solve this quickly?". The Hungry Tiger had a degree in Computer Science and almost immediately thought "Knapsack.hun"! If only I had a compiler that would produce really fast code for this...

As another option, The Hungry Tiger was considering not worrying so much about this and just grabbing a few lunch pails and continuing on his way to help Princess Ozma solve a problem with The Wheelers. The loud-yelling creatures were an unruly bunch and Princess Ozma needed all the help she could getting this crowd organized into manageable classes, with a super wheeler and descendants who knew their place in the hierarchy. However, there were many other problems she could end up asking him to solve.

You could help The Hungry Tiger and Princess Ozma solve some of these problems...

Unfortunately, the prize is not the princess and half the kingdom. Actually, if you win, I'm afraid your reaction might be that "all I got was this lousy T-shirt..." As usual, the rulers of the activity will be as just as possible in deciding who wins the prize...

The compilers will be run on publicly available Hungry programs (note that a program such as "OutOfBounds.hun" is bugged; thus, here the correct runtime behavior is to return the correct error code) as well as on further tests. Additionally, the compilers will be exposed to a time trial of the generated code for the Hungry program, Knapsack.hun. Finally, we will evaluate the extent of additions that improve on other aspects such as ease of programming in Hungry, space utilization, and other elements.

We make a combined evaluation of the correctness, efficiency, and features of the compilers (and possibly extended Hungry 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 fantastically 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 that 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 hungry -x. Then we will use this option during the time trial.


Last modified: Mon Jan 30 14:56:00 CET 2012
Kim Skak Larsen (kslarsen@imada.sdu.dk)