Der ICFP Contest ist ein Programmierwettbewerb, der jährlich im Umfeld der ICFP-Konferenz ausgerichtet wird. Der erste ICFP Contest fand 1998 statt.

Austragungsmodus Das gestellte Problem darf mit einer beliebigen Programmiersprache, zum Teil sogar mit beliebigen Hilfsmitteln und Anzahl an Teammitgliedern gelöst werden, auch wenn die Veranstalter 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, alleine oder im 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 Zu gewinnen ist 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 2024 Aufgabe: 2023 Aufgabe: 2022 Aufgabe: 2021 Aufgabe: 2020 Aufgabe: 2019 Aufgabe: Worker-Wrappers against Bit RotICFP Programming Contest 2019 (PDF; 1,4 MB), auf icfpcontest2019.github.io 2018 Aufgabe: Nanobot-Spuren generieren, um gezielte 3D-Objekte zu konstruieren und gleichzeitig den Energieverbrauch zu minimieren.ICFP Programming Contest 2018, auf icfpcontest2018.github.io 2017 Aufgabe: Es ist ein Spiel zu entwickeln, in dem Lambdas transportiert werden! 2016 Aufgabe: Es geht um Origami.ICFP Programming Contest 2016, auf icfpc2016.blogspot.com 2015 Aufgabe: Erstelle ein Tetris-ähnliches Spiel, welches geheime Botschaften übermittelt. 2014 Aufgabe: Schreibe ein Programm für ein Pacman-ähnliches Spiel. 2013 Aufgabe: Es ist ein durch einen beschränkten Befehlssatz kurzer Code zu finden, der ein als Zahl vorgegebenes Ergebnis aus einer Ausgangszahl berechnet. Je kürzer der Code, desto mehr Punkte gibt es. 2012 Aufgabe: Digger-Variante 2011 Aufgabe: Kartenspiel a la Magic: The Gathering mit SK-Kombinatorkalkül 13. Wettbewerb 2010 Aufgabe: Autos und passende Aufgabe: Autos und passende Treibstoffe Eigentlich Suche nach passenden Matrizen, die komplizierte Bedingungen erfüllen

12. Wettbewerb 2009 Aufgabe: Satelliten-Steuerung. First Prize: C++ Lightning: ML Judges Prize: Haskell, MATLAB, PHP, Python, C++, Java

11. Wettbewerb 200811. Wettbewerb 2008 Aufgabe: Kontrolle eines Mars-Rover, der diverse Hürden und Feinde umgehen muss First Prize: Java Lightning: OCaml Judges prize: TeX

10. Wettbewerb 200710. Wettbewerb 2007: Aufgabe: Bildtransformation mit Hilfe einer zusätzlichen Programmiersprache, die über Reverse Engineering entschlüsselt werden muss. First Prize: C++ Second Prize: Perl Judge’s Prize: Celestial Dire Badger (Jed Davis) mit OCaml und C++

9. Wettbewerb 20069. Wettbewerb 2006: Aufgabe: Implementierung einer virtuellen Maschine. First Prize: C++, Haskell, Python, bash, 2D und eine Google-eigene Sprache (Google-Team) Second Prize: D, C, C++, Java, Ruby Third Prize: Assembler, C++, Perl, Shellskript Judge’s Prize: C++, Perl

8. Wettbewerb 20058. Wettbewerb 2005: Aufgabe: Spielersteuerung eines komplexen Räuber-und-Gendarm-„Brettspiels“. First Prize: Haskell Second Prize: Dylan Third Prize: Haskell Judge’s Prize: Dylan

7. Wettbewerb 20047. Wettbewerb 2004: Aufgabe: Programmierung eines Ameisengehirns First Prize: Haskell Second Prize: C++ Lightning Division: Java, C++, Perl, m4 Judge’s Prize: Objective CAML

6. Wettbewerb 2003: 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: Aufgabe: Roboter-Paketdienst First Prize: Objective CAML Second Prize: C Judge’s Prize: Python

4. Wettbewerb 2001: Aufgabe: Entwicklung eines Parsers für sehr große SML/NG-Dateien First Prize: Haskell Second Prize: Dylan Judge’s Prize: Erlang

3. Wettbewerb 20003. Wettbewerb 2000: Aufgabe: Entwicklung eines Raytracers First Prize: Objective CAML Second Prize: Objective CAML Judge’s Prize: Standard ML

2. Wettbewerb 19992. Wettbewerb 1999: Aufgabe: Programmierung eines NPC First Prize: Objective CAML Second Prize: Haskell Judge’s Prize: Haskell

1. Wettbewerb 1998: Aufgabe: Gewinnstrategie für pousse (eine schräge Tic-Tac-Toe-Variante) First Prize: Cilk Second Prize: C und Objective CAML Judge’s Prize: J

Weblinks Offizielle Website (englisch) Programmierwettbewerb: 72 Stunden für Spitzen-Code (heise online) Icfp Programming Contest (WardsWiki, englisch) Programming geeks fight to the finish (CNET, englisch)

Einzelnachweise

Kategorie:Programmierwettbewerb Kategorie:Erstverleihung 1998