ICFP-programmeerwedstrijd - ICFP Programming Contest

De ICFP Programming Contest is een internationale programmeerwedstrijd die sinds 1998 jaarlijks rond juni of juli wordt gehouden en waarvan de resultaten zijn bekendgemaakt op de International Conference on Functional Programming .

Teams kunnen van elke grootte zijn en elke programmeertaal/talen kunnen worden gebruikt. Er is ook geen toegangsprijs. Deelnemers hebben 72 uur de tijd om hun inzending via internet in te vullen en in te dienen. Vaak is er ook een 24-uurs bliksemafdeling.

De winnaars behouden zich "opscheppen" om te beweren dat hun taal "de programmeertool bij uitstek is voor discriminerende hackers". Als zodanig is een van de doelen van de wedstrijd om de mogelijkheden van de favoriete programmeertalen en tools van de deelnemers te demonstreren. Eerdere winnaars van de eerste prijs hebben Haskell , OCaml , C++ , Cilk , Java , F# en Rust gebruikt .

De wedstrijden hebben meestal ongeveer 300 ingediende inzendingen.

Taken uit het verleden

Jaar Organisator Beschrijving
1998 Université de Montréal en Massachusetts Institute of Technology Schrijf een programma dat pousse speelt , een vreemde variant van boter-kaas-en-eieren. Deelnemersprogramma's werden in een toernooi ingevoerd om het programma voor de eerste en tweede plaats te bepalen.
1999 Harvard universiteit Case- statements om de grootte te optimaliseren (de wedstrijdtaak sprak over op tekst gebaseerde avonturengames , maar in feite was het de taak om de beschrijving van een dergelijk spel op grootte te optimaliseren).
2000 Cornell universiteit Implementeer een raytracer met behulp van een Postscript-achtige syntaxis.
2001 INRIA Rocquencourt Optimaliseer de grootte van een HTML-achtige opmaaktaal door onnodige witruimte en tags te verwijderen, enzovoort.
2002 OGI School of Science and Engineering Implementeer robots die een Sokoban- achtig spel tegen elkaar spelen.
2003 Chalmers University Implementeer robots die een auto zo snel mogelijk door verschillende racebanen rijden.
2004 Universiteit van Pennsylvania Ontwerp een mierenkolonie die de meeste voedseldeeltjes terugbrengt naar de mierenhoop, terwijl je mieren van een andere soort afweert. De wedstrijdinzending zou een state-machinebeschrijving van de mier opleveren: in principe hadden de inzendingen met de hand kunnen worden geschreven. Later werd de taak aangepast in Ant Wars, een strategie- en programmeerspel waarbij elke deelnemer een soort mier is . De deelnemer programmeert vervolgens, in een taal genaamd Antomata, een eindige-toestandsmachine om te functioneren als het brein van elke mier. De mier hersenen vervolgens de controle van de mier te vinden en te verzamelen eten mee te brengen naar het huis mierenhoop , om aanvallers of het maken van sporen van feromonen af te weren.
2005 PLT- groep Implementeer "bots" voor een "Cops & Robbers"-spel: deelnemers moeten het controleprogramma schrijven dat een Robber-Bot door een rustige stadswijk leidt op een missie om elke bank te beroven zonder betrapt te worden, en het controleprogramma voor een agent. Bot toegewijd om het te stoppen.
2006 Carnegie Mellon Universiteit Implementeer een virtuele machine met een besturingssysteem (genaamd UMIX ) geleverd door de juryleden, en kraak het met behulp van nieuwe programmeertalen met onconventionele syntaxis en semantiek, zoals 2D en een versie van BASIC met Romeinse cijfers. Veel puzzels waren kleine versies of parodieën op eerdere wedstrijden.
2007 Universiteit Utrecht Implementeer een virtuele machine met twee fasen die een DNA-achtige string uitvoert om een ​​afbeelding te produceren. Zoek vervolgens, gegeven een invoerreeks voor deze machine, een voorvoegsel dat, wanneer toegevoegd aan deze reeks, een afbeelding oplevert die zo dicht mogelijk bij de gegeven doelafbeelding ligt.
2008 Portland State University en de Universiteit van Chicago Zorg voor een Mars rover-besturingssysteem dat het naar een thuisbasis leidt en obstakels en vijanden ontwijkt.
2009 Universiteit van Kansas Bestuur een satelliet om tussen gespecificeerde banen te bewegen en rendez-vous met andere satellieten.
2010 Hogeschool voor Toegepaste Wetenschappen van Leipzig , Duitsland Internationale auto- en brandstofproductie.
2011 Tohoku University , Japan Programmeer een computer met 256 "slots" om aan het einde van de wedstrijd langer mee te gaan dan zijn tegenstander in termen van resterende slots. Inzendingen omvatten uitvoerbare bestanden die zijn ingevoerd in een toernooi in twee fasen.
2012 Universiteit van St. Andrews , Schotland Programmeer een AI voor een Boulder Dash- achtig spel.
2013 Microsoft Onderzoek Raad de implementatie van een blackbox-functie die is geïmplementeerd in een eenvoudige functionele taal door een webservice te ondervragen.
2014 Universiteit van Oxford en goed getypte LLP Schrijf AI-programma's voor een pacman-achtig spel, in SECD-machine- instructies voor pacman en 8-bits machine-assemblage-instructies voor vier geesten.
2015 Galois Schrijf een AI voor Tetris- achtig spel op een zeshoekig rasterveld dat geheime zinnen in de zetvolgorde insluit.
2016 Universiteit voor Elektro-Communicatie Schrijf een AI om abstracte origami op te lossen .
2017 Universiteit van Edinburgh Schrijf een AI voor een spel waarin spelers op hun beurt routedelen op de kaart claimen en degene met de beste dekking wint. Er zijn ook drie uitbreidingen van de hoofdspelmodus, waarvan een willekeurig aantal op een kaart kan worden ingeschakeld.
2018 Rochester Institute of Technology Genereer nanobot-sporen om 3D-doelobjecten te construeren, te vernietigen en te reconstrueren, terwijl het energieverbruik wordt geminimaliseerd.
2019 Yale-NUS College en Nationale Universiteit van Singapore Worker-Wrappers tegen Bit Rot.
2020 SKB Contactpersoon Bouw een virtuele machine volgens de buitenaardse specificatie , voer een door alien geleverde gameserver uit op die VM, verken het spel (2D ruimtegevecht op de planeetbaan met Chebyshev-afstand, met commando's voor versnellen, schieten, splitsen en ontploffen), reverse engineer game-protocol en maak een bot om dit spel te spelen.

prijzen

Prijzen hebben een bescheiden contante waarde, voornamelijk bedoeld om de winnaars te helpen de conferentie bij te wonen, waar de prijzen worden uitgereikt en de juryleden de volgende verklaringen afleggen:

Eerste prijs
[Taal 1] is de programmeertool bij uitstek voor onderscheidende hackers.
Tweede prijs
[Taal 2] is een prima programmeertool voor veel toepassingen.
Derde prijs
[Taal 3] is ook niet al te armoedig.
Winnaar van de bliksem divisie
[Taal L] is zeer geschikt voor rapid prototyping.
Juryprijs
[Team X] is een extreem cool stel hackers.

Als een winnende inzending meerdere talen omvat, wordt de winnaars gevraagd om er een of twee te nomineren. De talen genoemd in de verklaringen van de rechters zijn:

Jaar Eerste prijs Tweede prijs Derde prijs Bliksem
1998 Cilk OCamli
1999 OCamli Haskell
2000 OCamli OCamli
2001 Haskell Dylan
2002 OCamli C
2003 C++ C++ OCamli
2004 Haskell Haskell en C++ Java en C++
2005 Haskell Dylan Haskell
2006 2D NS samenkomst
2007 C++ Perl
2008 Java ML
2009 C++ Java ML
2010 C++ , Haskell , Python SageMath
2011 F# Shell en C++
2012 C++ OCamli Java
2013 Java , C# , C++ , PHP , Ruby en Haskell C++ en Python C# , C++ , bash , awk , sed en Excel C++
2014 Haskell C++ Perl OCamli
2015 C++ , Java , C# , PHP , Ruby en Haskell C++ , Python , JavaScript C++ C++
2016 Java , C++ , C# , PHP , Haskell C++ , Ruby , Python , Haskell , Java , JavaScript OCamli
2017 C++ C++ OCamli
2018 Roest C++ , Python , Ruby , JavaScript , bash en SQL OCamli
2019 Roest C++ C++ en Haskell
2020 Python C++ (eerste winnaar), Rust (tweede winnaar) Haskell
2021 C++ , roest Roest Rust , TypeScript en Go Rust , TypeScript en Go

Zie ook

Referenties en opmerkingen

  1. ^ "ICFP Programming Contest Scorebord" . Ontvangen 23 september 2012 .
  2. ^ https://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/results.php
  3. ^ "Antomata - De taal van Ant Wars" . Gearchiveerd van het origineel op 29-09-2007 . Ontvangen 2007-11-25 .
  4. ^ "De wedstrijd begint" . ICFP-programmeerwedstrijd 2019 . 2019-06-21 . Ontvangen 2020-07-15 .
  5. ^ Definitieve resultaten van de ICFP'99 Programming Contest
  6. ^ a b De wedstrijden in 1999 en 2002 hadden een bliksemafdeling, maar zonder aparte prijs. De winnaars van die afdeling werden bekroond met de juryprijzen.
  7. ^ De derde jaarlijkse ICFP-programmeerwedstrijd
  8. ^ De vierde ICFP-programmeerwedstrijd
  9. ^ De zevende jaarlijkse ICFP-programmeerwedstrijd
  10. ^ De achtste jaarlijkse ICFP-programmeerwedstrijd
  11. ^ 2D was een speelgoedtaal die werd uitgevonden voor de wedstrijd van 2006. Het winnende team gebruikte C++ , Haskell , Python , Bash en 2D.
  12. ^ De wedstrijd van 2007 had een bliksemafdeling, maar aangezien er na 24 uur nog geen duidelijke leider was, besloten de juryleden om geen winnaar te kiezen.
  13. ^ Resultaten van de ICFP-programmeringswedstrijd 2008
  14. ^ Http://www.vimeo.com/6613815 - geraadpleegd op 23 september 2009
  15. ^ ICFP 2010 programmeerwedstrijd (video)
  16. ^ ICFP-programmeerwedstrijd 2011
  17. ^ ICFP-programmeerwedstrijd 2012
  18. ^ ICFP-programmeerwedstrijd 2013
  19. ^ ICFP-programmeerwedstrijd 2014
  20. ^ ICFP-programmeerwedstrijd 2015
  21. ^ ICFP-programmeerwedstrijd 2016
  22. ^ ICFP-programmeerwedstrijd 2017
  23. ^ ICFP-programmeerwedstrijd 2018
  24. ^ "Eindresultaten" . ICFP-programmeerwedstrijd 2019 . 2019-08-20 . Ontvangen 2020-07-15 .
  25. ^ "ICFP Programming Contest Awards en rapporten" . 2020-08-26 . Ontvangen 2021-05-29 .
  26. ^ ICFP-programmeerwedstrijd 2021

Meerjarige teams

Externe links

Mierenoorlog spel