Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
ICFP Programming Contest

The ICFP Programming Contest is an international programming competition held annually around June or July 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' favorite programming languages and tools. Previous first prize winners have used Haskell, OCaml, C++, Cilk, Java, F#, and Rust.

The contests usually have around 300 submitted entries.

We don't have any images related to ICFP Programming Contest yet.
We don't have any YouTube videos related to ICFP Programming Contest yet.
We don't have any PDF documents related to ICFP Programming Contest yet.
We don't have any Books related to ICFP Programming Contest yet.
We don't have any archived web articles related to ICFP Programming Contest yet.

Past tasks

YearOrganiserDescription
1998Université de Montréal and Massachusetts Institute of TechnologyWrite 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.
1999Harvard UniversitySize-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).
2000Cornell UniversityImplement a ray tracer using a Postscript-like syntax.
2001INRIA RocquencourtSize-optimize an HTML-like markup language by removing unnecessary whitespace and tags, and so on.
2002OGI School of Science and EngineeringImplement robots playing a Sokoban-like game one against each other.
2003Chalmers UniversityImplement robots driving a car as fast as possible through different racing tracks.
2004University of PennsylvaniaDesign 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 Wars, a strategy and programming game where each participant is a species of ant. The participants then, in a language called Antomata,3 program a finite-state machine to function as the brain of each ant. The ant brain then controls the ant to find and collect food to bring to the home ant hill, to fend off attackers or make trails of pheromones.
2005PLT groupImplement "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.
2006Carnegie Mellon UniversityImplement 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.
2007Utrecht UniversityImplement 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.
2008Portland State University and the University of ChicagoProvide a Mars rover control system that will guide it to a home base while avoiding obstacles and enemies.
2009University of KansasControl a satellite to move between specified orbits and rendezvous with other satellites.
2010Leipzig University of Applied Science, GermanyInternational Car and Fuel Production.
2011Tohoku University, JapanProgram a computer with 256 "slots" to outlast its opponent in terms of slots remaining at the end of the match. Submissions include executables that are entered into a two-phase tournament.
2012University of St Andrews, ScotlandProgram an AI for a Boulder Dash-like game.
2013Microsoft ResearchGuess the implementation of a blackbox function implemented in a simple functional language through querying a web service.
2014University of Oxford and Well-Typed LLPWrite AI programs for a pacman like game, in SECD machine instruction for pacman and 8-bit machine assembly instructions for four ghosts.
2015GaloisWrite an AI for Tetris-like game on a hexagon grid field that embeds secret phrases in the move sequence.
2016University of Electro-CommunicationsWrite an AI to solve abstract origami.
2017University of EdinburghWrite an AI for a game where players in turn claim route parts on the map and the one with the best coverage wins. There are also three extensions to the main game mode, any number of which can be enabled on a map.
2018Rochester Institute of TechnologyGenerate nanobot traces to construct, destruct, and reconstruct target 3D objects while minimizing energy used.
2019Yale-NUS College and National University of SingaporeWorker-Wrappers against Bit Rot.4
2020SKB KonturBuild virtual machine by the alien specification, run alien provided game-server on that VM, explore the game (2D space battle on the planet orbit with Chebyshev distance, with accelerate, shoot, split and detonate commands), reverse engineer game-protocol and create bot to play this game.
2021Alex Lang and Jasper Van der JeugtManipulate a figure similar to a mechanical linkage to fit through a hole in the wall.
2022Alperen KelesReconfigure a prefilled canvas into a painting.

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:

YearFirst PrizeSecond PrizeThird PrizeLightning
1998CilkOCaml
19995OCamlHaskell6
20007OCamlOCaml
20018HaskellDylan
2002OCamlC9
2003C++C++OCaml
200410HaskellHaskell and C++Java and C++
200511HaskellDylanHaskell
20062D12DAssembly
2007C++Perl13
200814JavaML
200915C++JavaML
201016C++, Haskell, PythonSageMath
201117F#Shell and C++
201218C++OCamlJava
201319Java, C#, C++, PHP, Ruby and HaskellC++ and PythonC#, C++, bash, awk, sed and ExcelC++
201420HaskellC++PerlOCaml
201521C++, Java, C#, PHP, Ruby and HaskellC++, Python, JavaScriptC++C++
201622Java, C++, C#, PHP, HaskellC++, Ruby, Python, Haskell, Java, JavaScriptOCaml
201723C++C++OCaml
201824RustC++, Python, Ruby, JavaScript, bash and SQLOCaml
201925RustC++C++ and Haskell
202026PythonC++ (first winner), Rust (second winner)Haskell
202127C++, RustRustRust, TypeScript and GoRust, TypeScript and Go
202228Rust, Go and PythonRust, C++ and PythonC++, Rust and PythonRust, C++ and Python

See also

References and notes

References

  1. "ICFP Programming Contest Scoreboard". Retrieved 23 September 2012. http://www.boundvariable.org/scoreboard.shtml

  2. https://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/results.php https://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/results.php

  3. "Antomata - The Language of Ant Wars". Archived from the original on 2007-09-29. Retrieved 2007-11-25. https://web.archive.org/web/20070929161325/http://www.ant-wars.net/html/antomata.html

  4. "The Contest Begins". ICFP Programming Contest 2019. 2019-06-21. Retrieved 2020-07-15. https://icfpcontest2019.github.io/post/start/

  5. Final results of the ICFP'99 Programming Contest https://www.cs.tufts.edu/~nr/icfp/results.html

  6. The contests in 1999 and 2002 had a lightning division, but without a separate prize. The winners of that division were awarded Judges' prizes.

  7. The Third Annual ICFP Programming Contest http://www.cs.cornell.edu/icfp/

  8. The Fourth ICFP Programming Contest http://cristal.inria.fr/ICFP2001/prog-contest/

  9. The contests in 1999 and 2002 had a lightning division, but without a separate prize. The winners of that division were awarded Judges' prizes.

  10. The Seventh Antual ICFP Programming Contest https://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/results.php

  11. The Eighth Annual ICFP Programming Contest http://icfpc.plt-scheme.org/

  12. 2D was a toy language invented for the 2006 contest. The winning team used C++, Haskell, Python, Bash, and 2D. /wiki/C%2B%2B

  13. The 2007 contest had a lightning division, but since there was no clear leader after 24 hours the judges decided not to choose a winner.

  14. ICFP 2008 Programming Contest Results http://web.cecs.pdx.edu/~sheard/2008IcfpContest/results/

  15. http://www.vimeo.com/6613815 - accessed September 23, 2009 https://www.vimeo.com/6613815

  16. ICFP 2010 Programming Contest (video) https://vimeo.com/15391093

  17. ICFP Programming Contest 2011 http://icfpc2011.blogspot.jp/

  18. ICFP Programming Contest 2012 http://icfpcontest2012.wordpress.com/

  19. "ICFP Programming Contest 2013". Archived from the original on 2013-10-16. Retrieved 2013-08-15. https://web.archive.org/web/20131016080051/http://icfpc2013.cloudapp.net/

  20. ICFP Programming Contest 2014 https://icfpcontest2014.github.io

  21. ICFP Programming Contest 2015 http://2015.icfpcontest.org/

  22. ICFP Programming Contest 2016 http://icfpc2016.blogspot.com.au/2016/09/contest-results-are-up.html

  23. ICFP Programming Contest 2017 https://icfpcontest2017.github.io/

  24. ICFP Programming Contest 2018 https://icfpcontest2018.github.io/

  25. "Final Results". ICFP Programming Contest 2019. 2019-08-20. Retrieved 2020-07-15. https://icfpcontest2019.github.io/post/results-announced/

  26. "ICFP Programming Contest Awards and Reports". 2020-08-26. Archived from the original on 2021-12-21. Retrieved 2021-05-29. https://www.youtube.com/watch?v=WfRqE4NBecM

  27. ICFP Programming Contest 2021 https://icfpcontest2021.github.io/

  28. ICFP Programming Contest 2022 https://icfpcontest2022.github.io/