International Conference on Functional Programming Contest
Der ICFP Contest ist ein Programmierwettbewerb, der jährlich im Umfeld der ICFP-Konferenz ausgerichtet wird. Der erste ICFP Contest fand 1998 statt. Der Wettbewerb 2007 findet vom 20. Juli bis 23. Juli statt.
Austragungsmodus
Bemerkenswert ist, daß das gestellte Problem mit einer beliebigen Programmiersprache, ja zum Teil sogar mit beliebigen Hilfsmitteln und Anzahl an Teammitgliedern gelöst werden darf, auch wenn die Veranstalter natürlich hoffen, dass sich eine funktionale Sprache durchsetzt. Die einzige Begrenzung stellt die zur Verfügung stehende Zeit dar (Zeitlimit).
Es gibt üblicherweise zwei Wertungen, die Lightning Division, für Lösungen, die innerhalb eines Tages erstellt wurden und die normale Main Division, wo drei Tage für die Lösung ausgeschöpft werden dürfen.
Die Probleme sind in der Regel recht anspruchsvoll, in der Vergangenheit war Hintergrundwissen aus den Bereichen Raytracing, Optimale Steuerung und KI gefordert.
Teilnehmer
Jeder kann teilnehmen, ob Student oder Profi. Man kann alleine teilnehmen, oder als Team.
Das Feld ist in der Regel stark besetzt. Unter den Teilnehmern vergangener Wettbewerbe befanden sich so illustre Namen wie Thomas Rockiki (dvips), Simon Peyton Jones (Haskell), Joe Armstrong (Erlang), Andreas Bogk (libc5, Dylan), Tom Duff (Duff's Device).
Austragungsort
Der Wettbewerb wird über das Internet veranstaltet, d.h. man kann von überall auf der Welt, wo es eine Netzanbindung gibt, teilnehmen.
Preise
Gewinnen kann man im wesentlichen Ruhm, denn für die ersten Plätze gibt es traditionelle Proklamationen:
The judges declare...
- Jurypreis: Your team is an extremely cool bunch of hackers!
- Sieger Lightning Division: Your language is very suitable for rapid prototyping.
- 2. Platz Main Division: Your language is a fine programming tool for many applications.
- 1. Platz Main Division: Your language is the language of choice for discriminating hackers!
Oft gibt es auch ein Ticket zur ICFP Konferenz, auf der die Gewinner und ihre Lösung vorgestellt werden.
Bisherige Wettbewerbe
- 9. Wettbewerb 2006: http://icfpcontest.org/index.shtml
- Aufgabe: Implementierung einer virtuellen Maschine.
- First Prize: C++, Haskell, Python, bash, 2D und eine Google-eigene Sprache (Google-Team)
- Second Prize: D, C (Programmiersprache), C++, Java (Programmiersprache), Ruby (Programmiersprache)
- Third Prize: Assembler, C++, Perl, Shell Script
- Judge's Prize: ?
- 8. Wettbewerb 2005: http://icfpc.plt-scheme.org/
- 7. Wettbewerb 2004: http://www.cis.upenn.edu/proj/plclub/contest
- 6. Wettbewerb 2003: http://www.dtek.chalmers.se/groups/icfpcontest
- Aufgabe: Optimale Steuerung eines Rennwagens durch zum Teil arg verzwickte Rennstrecken
- First Prize: C++
- Second Prize: C++
- Lightning Division: Objective CAML
- Judge's Prize: Dylan, C++
- 5. Wettbewerb 2002: http://icfpcontest.cse.ogi.edu/
- Aufgabe: Roboter-Paketdienst
- First Prize: Objective CAML
- Second Prize: C
- Judge's Prize: Python
- 4. Wettbewerb 2001: http://pauillac.inria.fr/cristal/ICFP2001/prog-contest
- 3. Wettbewerb 2000: http://www.cs.cornell.edu/icfp
- Aufgabe: Entwicklung eines Raytracers
- First Prize: Objective CAML
- Second Prize: Objective CAML
- Judge's Prize: Standard ML
- 2. Wettbewerb 1999: http://www.cs.virginia.edu/~jks6b/icfp
- Aufgabe: Programmierung eines NPC
- First Prize: Objective CAML
- Second Prize: Haskell
- Judge's Prize: Haskell
- 1. Wettbewerb 1998: http://www.ai.mit.edu/extra/icfp-contest
- Aufgabe: Gewinnstrategie für pousse (eine schräge Tic-Tac-Toe-Variante)
- First Prize: Cilk [1]
- Second Prize: C und Objective CAML
- Judge's Prize: J
Weblinks
- http://www.icfpcontest.org/ (Homepage)
- Programmierwettbewerb: 72 Stunden für Spitzen-Code (heise online-Newsticker)
- Icfp Programming Contest (Ward Cunninghams Urwiki)
- Programming geeks fight to the finish (CNET)