Programmer's Wiki

The ICFP Programming Contest is an international programming competition held annually since 1998, with results announced at the International Conference on Functional Programming.

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". As such, one of the competition's goals is to showcase the capabilities of the contestants' favourite programming languages and tools. Previous first prize winners have used Haskell, Objective Caml, C++ and Cilk.

Past tasks[]

Year Organiser Description
1998 Massachusetts Institute of Technology 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 Harvard University 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 Cornell University implement a ray tracer using a Postscript-like syntax.
2001 INRIA Rocquencourt size-optimize an HTML-like markup language by removing unnecessary whitespace and tags, and so on.
2002 OGI School of Science and Engineering implement robots playing a Sokoban-like game one against each other.
2003 Chalmers University implement robots driving a car as fast as possible through different racing tracks.
2004 University of Pennsylvania 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. Later the task was adapted into Ant, a strategy and Programming game where each participant is a species of Ant. The participant then, in a language called Antomata, program a Finite state machine to function as the brain of each ant. The ant Brain then control the ant to find and collect food to bring to the home Ant, to fend off attackers or making trails of pheromones.
2005 PLT group 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 Carnegie Mellon University 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. Many puzzles were tiny versions or parodies of previous contests.
2007 Utrecht University implement a 2-stage virtual machine that executes a DNA-like string to produce an image. Then, given an input string for this machine, find a prefix that when added to this string yields an image as close as possible to the given target image.
2008 Portland State University and the University of Chicago control a rover that has to explore Mars while avoiding obstacles and enemies.


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 Objective Caml
1999 Objective Caml Haskell (programming language)
2000 Objective Caml Objective Caml
2001 Haskell (programming language) Dylan (programming language)
2002 Objective Caml C (programming language) D (programming language) Assembly
2007 C++ Perl

References and notes[]

Perennial Teams[]

External links[]

Ant War game

Smallwikipedialogo.png This page uses content from Wikipedia. The original article was at ICFP Programming Contest. The list of authors can be seen in the page history. As with the Programmer's Wiki, the text of Wikipedia is available under the GNU Free Documentation License.

From ProgrammingWiki, a Wikia wiki.