ICFP Programming Contest
From Wikipedia, the free encyclopedia
The ICFP Programming Contest is an annual international programming competition associated with the International Conference on Functional Programming. The first was held in 1998.
Teams may be of any size and any programming language(s) may be used. There is also no entry fee. Participants have 72 hours to complete and submit their entry over the Internet. There is often also a 24-hour lightning division.
The winners reserve "bragging rights" to claim that their language is "the programming tool of choice for discriminating hackers". Previous first prize winners have used Haskell, Objective Caml, Cilk and C++.
[edit] Past tasks
- 1998: write a program that plays pousse, an odd variant of tic-tac-toe. Contestant programs were entered into a tournament to determine the first- and second-place program.
- 1999: size-optimize case statements (the contest task spoke about text-based adventure games, but in fact the task was to size-optimize the description of such a game).
- 2000: implement a ray tracer using a Postscript-like syntax.
- 2001: size-optimize an HTML-like markup language by removing unnecessary whitespace and tags, and so on.
- 2002: implement robots playing a Sokoban-like game one against each other.
- 2003: implement robots driving a car as fast as possible through different racing tracks.
- 2004: design an ant colony that will bring the most food particles back to its anthill, while fending off ants of another species. The contest entry would output a state-machine description of the ant: in principle, entries could have been written by hand.
- 2005: implement "bots" for a "Cops & Robbers" game: contestants have to write the control program that guides a Robber-Bot through a quiet urban neighborhood on a mission to rob every bank without getting caught, and the control program for a Cop-Bot dedicated to stopping it.
- 2006: implement a virtual machine that runs an operating system (called UMIX) provided by the judges, and crack it using new programming languages with unconventional syntax and semantics, such as 2D and a version of BASIC using roman numerals.
[edit] Prizes
Prizes have a modest cash value, primarily aimed at helping the winners to attend the conference, where the prizes are awarded and the judges make the following declarations:
- First prize
- [Language 1] is the programming tool of choice for discriminating hackers.
- Second prize
- [Language 2] is a fine programming tool for many applications.
- Third prize
- [Language 3] is also not too shabby.
- Winner of the lightning division
- [Language L] is very suitable for rapid prototyping.
- Judges' prize
- [Team X] are an extremely cool bunch of hackers.
Where a winning entry involves several languages, the winners are asked to nominate one or two. The languages named in the judges' declarations have been:
Year | First Prize | Second Prize | Third Prize | Lightning |
---|---|---|---|---|
1998 | Cilk | OCaml | ||
1999 | OCaml | Haskell | [1] | |
2000 | OCaml | OCaml | ||
2001 | Haskell | Dylan | ||
2002 | OCaml | C | [1] | |
2003 | C++ | C++ | OCaml | |
2004 | Haskell | Haskell and C++ | Java and C++ | |
2005 | Haskell | Dylan | Haskell | |
2006 | 2D[2] | D | Assembly |
- ^ a b The contests in 1999 and 2002 had a lightning division, but without a separate prize. The winners of that division were awarded Judges' prizes.
- ^ 2D was a toy language invented for the 2006 contest. The winning team used C++, Haskell, Python, Bash, 2D and a private Google language.
[edit] External links
- 1998 contest site
- (Partial) mirror of the 1999 contest site
- 2000 contest site
- 2001 contest site
- 2002 contest site
- 2003 contest site
- 2004 contest site
- 2005 contest site
- 2006 contest site
- 2007 contest site
- ICFP Programming Contest History (Ward Cunningham's Wiki)
- Programming geeks fight to the finish (CNET)
- Fiction-filled computer code mystery peppered with 'ancient' puzzles (Pittsburgh Post-Gazette)
- Video of 2006 contest results