ICFP '99 Programming Contest Entry


Just For Fun:  In order to show off our abundant programming skills and to demonstrate the fact that assembly language, and in particular, typed assembly language, is the programming tool of choice for the distinguished hacker, the TAL group entered the ICFP '99 programming contest. (Who needs high-level languages?)

There were 37 entrants of which 9 chose C, 5 chose C++, 2 chose Perl and the remainder used safe languages.  In a nutshell, the contest problem was to parse in, then optimize and print out decision trees.  See the contest page for details.  There were 2 divisions: Lightning (24 hours) and Standard (72 hours).  Because programming in assembly language is so simple and efficient, Team TAL naturally entered in the Lightning category.  

Regardless of the category, all entrants were judged at 3 levels.

Level 0:  Entrants produced syntactically correct output on all of the judges' tests. 4 C programs, 1 C++ program, and both Perl programs crashed and did not make it through this round.  Go TAL; go TAL; go, go, go TAL.

Level 1:  Entrants produced semantically correct output on all of the judges' tests. 4 C programs, 1 C++ program, 2 Haskell programs, and 2 O'Caml variants were rejected.  Onward brave TAL coders, onward!!

Comment:  Although we hesitate to judge others choice of programming tools ... well not really ... we couldn't help but notice that 12 out of the 16 programs written in unsafe languages failed to meet the basic correctness criteria whereas only 4 out of the remaining 21 safe language programs were rejected. 

Level 2:  Entrants are judged based on how well they were able to optimize the programs.  Despite the fact that the contest problem appears undecidable, our TAL entry miraculously computes the optimal answer every time and we were awarded a special prize for our efforts!  Here's an explanation of how we did it and a copy of our TAL code (and popcorn too --- we did actually write it in popcorn and just compile to TAL, but don't tell the contest committee that!) ;-)

Our sincere congratulations and admiration go to the true winners, Lennart Augustsson who wrote a marvelously elegant 376-line Haskell program in 24 hours that performed almost as well as any other, a second Haskell entry that also entered in the Lightening division, and a Group from Inria who wrote a massive 3500-line optimizer in O'Caml over the weekend.  Wow.  They are all extremely cool hackers.