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
- ^ "ICFP Programming Contest Scorebord" . Ontvangen 23 september 2012 .
- ^ https://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/results.php
- ^ "Antomata - De taal van Ant Wars" . Gearchiveerd van het origineel op 29-09-2007 . Ontvangen 2007-11-25 .
- ^ "De wedstrijd begint" . ICFP-programmeerwedstrijd 2019 . 2019-06-21 . Ontvangen 2020-07-15 .
- ^ Definitieve resultaten van de ICFP'99 Programming Contest
- ^ 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.
- ^ De derde jaarlijkse ICFP-programmeerwedstrijd
- ^ De vierde ICFP-programmeerwedstrijd
- ^ De zevende jaarlijkse ICFP-programmeerwedstrijd
- ^ De achtste jaarlijkse ICFP-programmeerwedstrijd
- ^ 2D was een speelgoedtaal die werd uitgevonden voor de wedstrijd van 2006. Het winnende team gebruikte C++ , Haskell , Python , Bash en 2D.
- ^ 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.
- ^ Resultaten van de ICFP-programmeringswedstrijd 2008
- ^ Http://www.vimeo.com/6613815 - geraadpleegd op 23 september 2009
- ^ ICFP 2010 programmeerwedstrijd (video)
- ^ ICFP-programmeerwedstrijd 2011
- ^ ICFP-programmeerwedstrijd 2012
- ^ ICFP-programmeerwedstrijd 2013
- ^ ICFP-programmeerwedstrijd 2014
- ^ ICFP-programmeerwedstrijd 2015
- ^ ICFP-programmeerwedstrijd 2016
- ^ ICFP-programmeerwedstrijd 2017
- ^ ICFP-programmeerwedstrijd 2018
- ^ "Eindresultaten" . ICFP-programmeerwedstrijd 2019 . 2019-08-20 . Ontvangen 2020-07-15 .
- ^ "ICFP Programming Contest Awards en rapporten" . 2020-08-26 . Ontvangen 2021-05-29 .
- ^ ICFP-programmeerwedstrijd 2021
Meerjarige teams
- De Al-Gore-ritmes (ook bekend als The Doug Boat)
- De Caml Riders
- Wrijvingsloze bananen
- DylanHackers 2005 rapport
- O Caml, mijn Caml
- Team Smartass
- Sir Bedevere de Wijze
Externe links
- Wedstrijd op ICFP-site
- 1998 wedstrijdsite
- Spiegel van 1998 wedstrijdtaak
- (Gedeeltelijke) spiegel van de wedstrijdsite van 1999
- 2000 wedstrijdsite
- 2001 wedstrijdsite
- 2002 wedstrijdsite
- 2003 wedstrijdsite
- 2004 wedstrijdsite
- 2005 wedstrijdsite
- 2006 wedstrijdsite
- 2007 wedstrijdsite
- 2008 wedstrijdsite
- 2009 wedstrijdsite
- wedstrijdsite 2010
- wedstrijdsite 2011
- 2012 wedstrijdsite
- wedstrijdsite 2013
- 2014 wedstrijdsite
- wedstrijdsite 2015
- 2016 wedstrijdsite
- Wedstrijdsite 2017
- Wedstrijdsite 2018
- Wedstrijdsite 2019
- Wedstrijdsite 2020
- wedstrijdsite 2021
- Geschiedenis van de ICFP-programmeerwedstrijd ( Ward Cunningham 's Wiki )
- Programmeergeeks vechten tot het einde op archive.today (gearchiveerd 02/01/2013) (CNET)
- Met fictie gevuld computercodemysterie doorspekt met 'oude' puzzels ( Pittsburgh Post-Gazette )
- Video van de wedstrijdresultaten van 2006
- Video van de wedstrijdresultaten van 2007
- Video van de wedstrijdresultaten van 2008
- schriftelijke wedstrijdverslag 2007
Mierenoorlog spel
- https://web.archive.org/web/20110723014332/http://www.ant-wars.net/ - Startpagina
- http://sourceforge.net/projects/formicidae/ - Het project op sourceforge.net
- https://web.archive.org/web/20071125152658/http://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/ De officiële pagina voor de taak op de 2004 ICFP Programming Contest