ICFP-programmeringstävling

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 5 juli 2022; kontroller kräver 9 redigeringar .

ICFP Programming Contest är en internationell programmeringstävling som hålls årligen i juni-juli sedan 1998. Resultaten av tävlingen tillkännages vid den internationella konferensen om funktionell programmering .

Kommandon kan vara av valfri storlek och använda valfritt programmeringsspråk (eller flera språk). Det finns inga deltagaravgifter. Deltagarna får 72 timmar på sig att slutföra uppgifterna och skicka in sina lösningar via Internet . Ibland finns det en 24-timmars blitzturnering.

Vinnarna har den särskilda rätten att hävda att deras föredragna språk är "den kräsna hackarens val". Ett av målen med tävlingen är alltså att kunna visa på möjligheterna med programmeringsspråket och verktygen som deltagaren i tävlingen använder. Topppristagare har tidigare använt språk som Haskell , OCaml , C++ , Cilk och Java för att lösa problem .

Uppgifter

År Arrangör En uppgift
1998 Massachusetts Institute of Technology Skriv ett program som simulerar en grodd , ett slags tick-tac-toe- spel . De presenterade programmen var uppdelade på första och andra plats.
1999 Harvard Universitet Optimering av falluttryck (i beskrivningen av uppgiften stod det om ett textuppdrag , men i själva verket reducerades uppgiften till att optimera beskrivningen av ett sådant spel).
2000 Cornell University Implementera strålväg med Postscript- liknande syntax.
2001 INRIA Rocquencourt Optimering av HTML -liknande märkningsspråk genom att eliminera onödiga mellanslag, taggar, etc.
2002 OGI School of Science and Engineering Implementera robotar som kan spela mot varandra i ett spel som Sokoban .
2003 Chalmers tekniska högskola Implementera robotar som kan köra en bil i högsta möjliga hastighet på banor av varierande komplexitet.
2004 University of Pennsylvania Myrkoloni. Skapa en koloni som kan leverera mat till myrstacken snabbare och undvika andra myrarter. Lösningen var statsmaskinen. Uppgiften anpassades senare till Ant Wars strategiprogrammeringsspel med Antomata, [1] beskrivningsspråk för finita tillståndsmaskiner .
2005 PLT- gruppen Implementera bots för spelet "Cops & Robbers". Lösningen blev två kontrollprogram, det ena för en rånarbot vars uppgift var att råna alla banker i närheten utan att åka fast av polisen, det andra för en polisbot som fångar rånare.
2006 Carnegie Mellon University Implementera en virtuell maskin för att köra UMIX- operativsystemet som tillhandahålls av arrangörerna. Knäck sedan det med nya programmeringsspråk med ovanlig syntax, som 2D och den romerska versionen av BASIC . Många minimysterier med förenklade versioner eller parodier på tidigare spel.
2007 Utrecht universitet Implementera en virtuell tvåstegsmaskin som exekverar en DNA-liknande sträng för att få en bild. För en given sträng, hitta ett prefix som, när det läggs till strängen, kommer att producera en bild som är mest lik målet.
2008 Portland State University och University of Chicago Roverkontrollsystemet som implementerar återgången till basen. Det krävs för att undvika hinder och fiender.
2009 University of Kansas Satellitkontroll i jordens omloppsbana: övergångar mellan banor och dockning med andra satelliter.
2010 Leipzig University of Applied Science , Tyskland Internationell produktion av fordon och bränslen.
2011 Tohoku University , Japan Programmera en dator med 256 "slots" för att besegra en motståndare med antalet platser som återstår i slutet av en match. Mellan deltagarnas beslut arrangeras en turnering på två nivåer.
2012 University of St. Andrews , Skottland Implementera artificiell intelligens för ett spel som Boulder Dash .
2013 Microsoft Research , USA Välj en aritmetisk-logisk funktion med hjälp av exempel på parametrar och utvärden.
2014 Oxford universitet Skapa ett program för att slutföra en labyrint som liknar spelet Pac-Man .
2015 Galois [2] , USA Skriv ett program för att slutföra ett spel som liknar Tetris .
2016 University of Electro-Communications, Tokyo Skapa ett program för att återställa origami- svepet från utseendet på den monterade platta figuren.
2017 University of Edinburgh Skapa ett program för att spela en analog av Ticket to Ride.
2018 Rochester Institute of Technology , USA Skapa ett program som genererar kommandon för nanobotar som måste montera, demontera eller återmontera givna 3D-objekt, vilket minimerar energiförbrukningen.
2019 Yale-NUS College och National University of Singapore , Singapore Skapa ett program som styr en målarrobot som måste täcka alla celler på nivåkartan. Målet är att täcka hela ytan av nivån på minsta möjliga tid genom att samla och applicera olika boosters utspridda på kartan.
2020 SKB Kontur Implementera en virtuell maskin enligt specifikationen från utomjordingar, kör en spelserver mottagen från utomjordingar på den, förstå spelets regler (tvådimensionell rymdstrid i planetarisk omloppsbana med diskret fysik på Chebyshev-avstånd, med kommandon: acceleration, skott , division och självdetonation), skriv en bot för att delta i mästerskapet för det här spelet.

Vinnare

Priset är en liten summa pengar som gör att vinnaren kan kompensera kostnaderna för att delta i ICFP-konferensen. Juryn delar ut flera priser:

Första pris [Språk 1] som ett programmeringsverktyg för smarta hackare. Andrapris [Språk 2] som ett bekvämt verktyg för att utveckla många applikationer. Tredje pris [Språk 3] är inte heller för löpande. Vinnare av Lightning Division [Språk L] lämpar sig väl för snabb prototypframställning. Jurypris [Team X] är en väldigt cool grupp hackare.

Om vinnarna använde mer än ett språk kommer de att nominera ett eller två av de använda språken.

År Första pris Andrapris Tredje pris "Blixt"
1998 Cilk Ocaml
1999 Ocaml Haskell -
2000 Ocaml Ocaml
2001 Haskell Dylan
2002 Ocaml C -
2003 C++ C++ Ocaml
2004 Haskell Haskell och C++ Java och C++
2005 Haskell Dylan Haskell
2006 2D [3] D assembleringsspråk
2007 C++ Perl ingen vinnare
2008 Java ML [4]
2009 C++ Java ML [5]
2010 C++ , Haskell , Python Salvia
2011 [6] F# Shell och C++
2012 C++
2013 [7] Java, C#, C++, PHP, Ruby och Haskell C# , C++
2014 Haskell
2015 C++, Java, C#, PHP, Ruby och Haskell
2016 [8] Java , C++ , C# , PHP , Haskell C++ , Ruby , Python , Haskell , Java , JavaScript Ocaml
2017 [9] C++ C++ Ocaml
2018 [10] Rost C++ , Python , Ruby , JavaScript , Bash och SQL Ocaml
2019 [11] Rost C++ C++ och Haskell
2020 [12] Pytonorm C++ (första vinnare), Rust (andra vinnare) Haskell

Se även

Anteckningar

  1. Antomata - Myrkrigens språk arkiverad 29 september 2007.
  2. ICFP-programmeringstävling kommer att äga rum i helgen - Galois, Inc.  (engelska) . Arkiverad från originalet den 26 november 2015, Galois, Inc. Hämtad 26 november 2015.
  3. 2D är ett konstgjort språk som uppfanns för 2006 års tävling. Vinnarna använde C++ , Haskell , Python , Bash , 2D och ett icke namngivet proprietärt språk som används av Google Inc. (nu Alphabet).
  4. http://web.cecs.pdx.edu/~sheard/2008IcfpContest/ Arkiverad 8 april 2011 på Wayback Machine - tillgänglig 23 september 2009
  5. http://www.vimeo.com/6613815 Arkiverad 9 november 2012 på Wayback Machine - åtkoms 23 september 2009
  6. ICFP-programmeringstävling 2012  (engelska)  (nedlänk) . icfpcontest.org . Hämtad 13 september 2012. Arkiverad från originalet 21 april 2012.
  7. ICFP-programmeringstävling 2013 (nedlänk) . Datum för åtkomst: 16 oktober 2013. Arkiverad från originalet 16 oktober 2013. 
  8. ICFP-programmeringstävling 2016
  9. ICFP-programmeringstävling 2017 . Hämtad 29 maj 2021. Arkiverad från originalet 5 mars 2021.
  10. ICFP-programmeringstävling 2018 . Hämtad 16 maj 2020. Arkiverad från originalet 31 oktober 2020.
  11. Slutliga resultat  . ICFP-programmeringstävling 2019 (20 augusti 2019). Hämtad 15 juli 2020. Arkiverad från originalet 7 november 2020.
  12. ICFP Programming Contest Awards och rapporter  ( 26 augusti 2020). Hämtad 29 maj 2021. Arkiverad från originalet 2 juni 2021.

Permanent deltagande lag

Länkar

Ant War-spel