ICFP programmeringskonkurrence

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 5. juli 2022; checks kræver 9 redigeringer .

ICFP-programmeringskonkurrencen er en international programmeringskonkurrence, der afholdes årligt i juni-juli siden 1998. Resultaterne af konkurrencen offentliggøres på den internationale konference om funktionel programmering .

Kommandoer kan være af enhver størrelse og bruge et hvilket som helst programmeringssprog (eller flere sprog). Der er ingen deltagergebyrer. Deltagerne får 72 timer til at udføre opgaverne og indsende deres løsninger via internettet . Nogle gange er der en 24-timers blitz-turnering.

Vinderne har den særlige ret til at hævde, at deres foretrukne sprog er "den kræsne hackers valg". Et af målene med konkurrencen er således at kunne vise mulighederne i det programmeringssprog og værktøjer, som deltageren i konkurrencen bruger. Toppræmievindere har tidligere brugt sprog som Haskell , OCaml , C++ , Cilk og Java til at løse problemer .

Opgaver

År Arrangør En opgave
1998 Massachusetts Tekniske Institut Skriv et program, der simulerer en spire , en slags tic-tac-toe- leg . De præsenterede programmer var opdelt i første- og andenpladser.
1999 Harvard Universitet Optimering af kasusudtryk (i beskrivelsen af ​​opgaven stod der om en tekstquest , men faktisk blev opgaven reduceret til at optimere beskrivelsen af ​​sådan et spil).
2000 Cornell University Implementer strålesti ved hjælp af Postscript - lignende syntaks.
2001 INRIA Rocquencourt Optimering af det HTML -lignende opmærkningssprog ved at eliminere unødvendige mellemrum, tags osv.
2002 OGI School of Science and Engineering Implementer robotter, der kan spille mod hinanden i et spil som Sokoban .
2003 Chalmers Tekniske Universitet Implementer robotter, der er i stand til at køre en bil med den højest mulige hastighed på baner af varierende kompleksitet.
2004 University of Pennsylvania Myrekoloni. Skab en koloni, der kan levere mad til myretuen hurtigere og undgå andre myrearter. Løsningen var statsmaskinen. Opgaven blev senere tilpasset til Ant Wars strategiprogrammeringsspillet med Antomata, [1] finite state machine description language .
2005 PLT gruppe Implementer bots til spillet "Cops & Robbers". Løsningen var to kontrolprogrammer, det ene til en røverbot, hvis opgave var at røve alle banker i nærheden uden at blive fanget af politiet, det andet til en politibot, der fanger røvere.
2006 Carnegie Mellon University Implementer en virtuel maskine til at køre UMIX -operativsystemet leveret af arrangørerne. Knæk det derefter ved hjælp af nye programmeringssprog med usædvanlig syntaks, såsom 2D og romertalsversionen af ​​BASIC . Mange mini-mysterier med forenklede versioner eller parodier af tidligere spil.
2007 Utrecht Universitet Implementer en to-trins virtuel maskine, der udfører en DNA-lignende streng for at få et billede. For en given streng skal du finde et præfiks, der, når det føjes til strengen, vil producere et billede, der minder mest om målet.
2008 Portland State University og University of Chicago Rover-kontrolsystemet, der implementerer tilbagevenden til basen. Det er nødvendigt for at undgå forhindringer og fjender.
2009 University of Kansas Satellitkontrol i kredsløb om jorden: overgange mellem baner og docking med andre satellitter.
2010 Leipzig University of Applied Science , Tyskland International produktion af køretøjer og brændstoffer.
2011 Tohoku Universitet , Japan Programmering af en computer med 256 "slots" for at besejre en modstander med antallet af pladser tilbage i slutningen af ​​en kamp. Mellem deltagernes beslutninger arrangeres en to-niveau turnering.
2012 University of St. Andrews , Skotland Implementer kunstig intelligens til et spil som Boulder Dash .
2013 Microsoft Research , USA Vælg en aritmetisk-logisk funktion ved hjælp af eksempler på parametre og outputværdier.
2014 Oxford Universitet Opret et program til at fuldføre en labyrint, der ligner spillet Pac-Man .
2015 Galois [2] , USA Skriv et program til at fuldføre et spil, der ligner Tetris .
2016 University of Electro-Communications, Tokyo Opret et program til at genoprette origami -sweep fra udseendet af den samlede flade figur.
2017 University of Edinburgh Opret et program til afspilning af en analog af Ticket to Ride.
2018 Rochester Institute of Technology , USA Opret et program, der genererer kommandoer til nanobots, der skal samle, adskille eller samle givne 3D-objekter, hvilket minimerer energiforbruget.
2019 Yale-NUS College og National University of Singapore , Singapore Lav et program, der styrer en malerrobot, der skal dække alle cellerne på niveaukortet. Målet er at dække hele overfladen af ​​niveauet på et minimum af tid ved at indsamle og anvende forskellige boostere spredt rundt på kortet.
2020 SKB Kontur Implementer en virtuel maskine i henhold til specifikationen modtaget fra aliens, kør en spilserver modtaget fra aliens på den, forstå spillets regler (todimensionel rumkamp i planetarisk kredsløb med diskret fysik på Chebyshev-afstande, med kommandoer: acceleration, skud , division og selvdetonation), skriv en bot for at deltage i mesterskabet for dette spil.

Vindere

Prisen er et lille beløb, der giver vinderen mulighed for at kompensere for omkostningerne ved at deltage i ICFP-konferencen. Juryen uddeler flere priser:

Førstepræmie [Sprog 1] som et programmeringsværktøj til kloge hackere. Anden præmie [Sprog 2] som et praktisk værktøj til at udvikle mange applikationer. Tredje præmie [Sprog 3] er heller ikke for løbende. Vinder af Lightning Division [Sprog L] er velegnet til hurtig prototyping. Juryens pris [Team X] er en meget sej gruppe af hackere.

Hvis vinderne brugte mere end ét sprog, vil de nominere et eller to af de anvendte sprog.

År Førstepræmie Anden præmie Tredje præmie "Lyn"
1998 Cilk OKaml
1999 OKaml Haskell -
2000 OKaml OKaml
2001 Haskell Dylan
2002 OKaml C -
2003 C++ C++ OKaml
2004 Haskell Haskell og C++ Java og C++
2005 Haskell Dylan Haskell
2006 2D [3] D samlesprog
2007 C++ Perl ingen vinder
2008 Java ML [4]
2009 C++ Java ML [5]
2010 C++ , Haskell , Python Salvie
2011 [6] F# Shell og C++
2012 C++
2013 [7] Java, C#, C++, PHP, Ruby og Haskell C# , C++
2014 Haskell
2015 C++, Java, C#, PHP, Ruby og Haskell
2016 [8] Java , C++ , C# , PHP , Haskell C++ , Ruby , Python , Haskell , Java , JavaScript OKaml
2017 [9] C++ C++ OKaml
2018 [10] Rust C++ , Python , Ruby , JavaScript , Bash og SQL OKaml
2019 [11] Rust C++ C++ og Haskell
2020 [12] Python C++ (første vinder), Rust (anden vinder) Haskell

Se også

Noter

  1. Antomata - Myrekrigens sprog arkiveret 29. september 2007.
  2. ICFP-programmeringskonkurrencen skal finde sted denne weekend - Galois, Inc.  (engelsk) . Arkiveret fra originalen den 26. november 2015, Galois, Inc. Hentet den 26. november 2015.
  3. 2D er et kunstigt sprog opfundet til 2006-konkurrencen. Vinderne brugte C++ , Haskell , Python , Bash , 2D og et unavngivet proprietært sprog brugt af Google Inc. (nu Alphabet).
  4. http://web.cecs.pdx.edu/~sheard/2008IcfpContest/ Arkiveret 8. april 2011 på Wayback Machine - tilgået 23. september 2009
  5. http://www.vimeo.com/6613815 Arkiveret 9. november 2012 på Wayback Machine - tilgået 23. september 2009
  6. ICFP-programmeringskonkurrence 2012  (engelsk)  (downlink) . icfpcontest.org . Hentet 13. september 2012. Arkiveret fra originalen 21. april 2012.
  7. ICFP-programmeringskonkurrence 2013 (downlink) . Dato for adgang: 16. oktober 2013. Arkiveret fra originalen 16. oktober 2013. 
  8. ICFP-programmeringskonkurrence 2016
  9. ICFP-programmeringskonkurrence 2017 . Hentet 29. maj 2021. Arkiveret fra originalen 5. marts 2021.
  10. ICFP-programmeringskonkurrence 2018 . Hentet 16. maj 2020. Arkiveret fra originalen 31. oktober 2020.
  11. Endelige resultater  . ICFP-programmeringskonkurrence 2019 (20. august 2019). Hentet 15. juli 2020. Arkiveret fra originalen 7. november 2020.
  12. ICFP-programmeringskonkurrencepriser og rapporter  ( 26. august 2020). Hentet 29. maj 2021. Arkiveret fra originalen 2. juni 2021.

Permanente deltagende hold

Links

Ant War spil