ICFP Programming Contest - ICFP Programming Contest

The ICFP Programming Contest je mezinárodní programátorská soutěž pořádaná každoročně kolem června nebo července od roku 1998, s výsledky vyhlašovanými na Mezinárodní konference o funkčním programování.

Týmy mohou být jakékoli velikosti a lze použít libovolný programovací jazyk (jazyky). Neexistuje také žádný vstupní poplatek. Účastníci mají 72 hodin na vyplnění a odeslání přihlášky přes internet. Často je zde také 24hodinová divize blesků.

Vítězové si vyhrazují „chvástatá práva“, aby tvrdili, že jejich jazyk je „programovací nástroj volby pro diskriminaci hackerů“. Jedním z cílů soutěže je proto předvést schopnosti oblíbených programovacích jazyků a nástrojů soutěžících. Předchozí vítězové první ceny využili Haskell, OCaml, C ++, Cilk, Jáva, F# a Rez.

Soutěže obvykle obsahují přibližně 300 přihlášených příspěvků.[1][2]

Minulé úkoly

RokOrganizátorPopis
1998Université de Montréal a Massachusetts Institute of TechnologyNapište program, který hraje pousse, zvláštní varianta tic-tac-toe. Soutěžní programy byly zařazeny do turnaje, aby se určil program na prvním a druhém místě.
1999Harvardská UniverzitaOptimalizace velikosti případ prohlášení (soutěžní úkol hovořil o textovém dobrodružné hry, ale ve skutečnosti bylo úkolem optimalizovat velikost popisu takové hry).
2000Cornell UniversityImplementujte ray tracer pomocí Postscriptové syntaxe.
2001INRIA RocquencourtOptimalizujte velikost značkovacího jazyka podobného HTML odstraněním zbytečných mezer a značek atd.
2002OGI School of Science and EngineeringImplementujte roboty hrající a Sokoban - jako hra jeden proti druhému.
2003Chalmers UniversityImplementujte roboty, kteří řídí auto co nejrychleji prostřednictvím různých závodních tratí.
2004University of PennsylvaniaNavrhněte kolonii mravenců, která přivede většinu potravinových částic zpět do mraveniště, přičemž odrazí mravence jiného druhu. Ze soutěžního příspěvku by vycházel popis stavového stroje mravence: v zásadě mohly být příspěvky psány ručně. Později byl úkol upraven do Ant Wars, a strategie a programovací hra kde každý účastník je druh mravenec. Účastník poté v jazyce zvaném Antomata[3] program a konečný stavový stroj fungovat jako mozek každého mravence. Mravenec mozek poté ovládněte mravence, aby našel a sbíral jídlo, které si přivezl domů mraveniště, aby odrazili útočníky nebo vytvářeli stopy feromonů.
2005PLT skupinaImplementujte „roboty“ pro hru „Cops & Robbers“: soutěžící musí napsat kontrolní program, který provede Robber-Bota tichým městským sousedstvím na misi vyloupit každou banku, aniž by byl chycen, a kontrolní program pro Cop- Bot se tomu věnoval.
2006Univerzita Carnegie MellonImplementujte virtuální stroj, na kterém běží operační systém (tzv UMIX ) poskytované soudci a prolomit je pomocí nových programovacích jazyků s nekonvenční syntaxí a sémantikou, jako je 2D a verze ZÁKLADNÍ pomocí římských číslic. Mnoho hádanek byly drobné verze nebo parodie na předchozí soutěže.
2007Utrechtská univerzitaImplementujte dvoustupňový virtuální stroj, který provádí řetězec podobný DNA za účelem vytvoření obrazu. Poté, vzhledem k vstupnímu řetězci pro tento stroj, najděte předponu, která po přidání do tohoto řetězce poskytne obrázek co nejblíže danému cílovému obrázku.
2008Státní univerzita v Portlandu a University of ChicagoPoskytněte řídicí systém roverů Mars, který jej dovede na domácí základnu a vyhýbá se překážkám a nepřátelům.
2009University of KansasOvládejte satelit a pohybujte se mezi určenými oběžnými drahami a setkáním s jinými satelity.
2010Leipzig University of Applied Science, NěmeckoMezinárodní výroba automobilů a paliv.
2011Tohoku University, JaponskoNaprogramujte počítač s 256 „sloty“ tak, aby přečkal svého soupeře, pokud jde o sloty zbývající na konci zápasu. Příspěvky zahrnují spustitelné soubory, které jsou zařazeny do dvoufázového turnaje.
2012University of St Andrews, SkotskoNaprogramujte AI na a Boulder Dash - jako hra.
2013Microsoft ResearchHádejte implementaci funkce blackbox implementované v jednoduchém funkčním jazyce pomocí dotazu na webovou službu.
2014University of Oxford a dobře napsaný LLPNapište programy AI pro hru jako pacman Stroj SECD instrukce pro pacman a 8-bit návod na montáž stroje pro čtyři přízraky.
2015GaloisNapište AI pro Tetris - jako hra na poli šestiúhelníkové mřížky, která vkládá tajné fráze do sekvence pohybu.
2016University of Electro-CommunicationsNapište AI pro vyřešení abstraktu origami.
2017University of EdinburghNapište AI pro hru, kde si hráči zase nárokují části trasy na mapě a vyhrává ta s nejlepším pokrytím. K dispozici jsou také tři rozšíření hlavního herního režimu, na mapě lze povolit libovolný počet.
2018Rochester Institute of TechnologyGenerujte stopy nanobotů pro konstrukci, destrukci a rekonstrukci cílových 3D objektů při minimalizaci použité energie.
2019Yale-NUS College a Singapurská národní univerzitaWorker-Wrappers proti bit rot.[4]

Ceny

Ceny mají skromnou peněžní hodnotu, jejichž hlavním cílem je pomoci vítězům zúčastnit se konference, kde se ceny udělují a porotci učiní následující prohlášení:

První cena
[Jazyk 1] je programovací nástroj volby pro diskriminaci hackerů.
Druhá cena
[Jazyk 2] je skvělý programovací nástroj pro mnoho aplikací.
Třetí cena
[Jazyk 3] také není příliš ošuntělý.
Vítěz divize blesků
[Jazyk L] je velmi vhodný pro rychlé prototypování.
Cena rozhodčích
[Tým X] jsou velmi cool parta hackerů.

Pokud výherní soutěž zahrnuje několik jazyků, jsou vítězové vyzváni, aby nominovali jeden nebo dva jazyky. Jazyky uvedené v prohlášeních soudců byly:

RokPrvní cenaDruhá cenaTřetí cenaBlesk
1998CilkOCaml
1999[5]OCamlHaskell[6]
2000[7]OCamlOCaml
2001[8]HaskellDylan
2002OCamlC[6]
2003C ++C ++OCaml
2004[9]HaskellHaskell a C ++Jáva a C ++
2005[10]HaskellDylanHaskell
20062D[11]DShromáždění
2007C ++Perl[12]
2008[13]JávaML
2009[14]C ++JávaML
2010[15]C ++, Haskell, KrajtaSageMath
2011[16]F#Shell a C ++
2012[17]C ++OCamlJáva
2013[18]Jáva, C#, C ++, PHP, Rubín a HaskellC ++ a KrajtaC#, C ++, bash, awk, sed a VynikatC ++
2014[19]HaskellC ++PerlOCaml
2015[20]C ++, Jáva, C#, PHP, Rubín a HaskellC ++, Krajta, JavaScriptC ++C ++
2016[21]Jáva, C ++, C#, PHP, HaskellC ++, Rubín, Krajta, Haskell, Jáva, JavaScriptOCaml
2017[22]C ++C ++OCaml
2018[23]RezC ++, Krajta, Rubín, JavaScript, bash a SQLOCaml
2019[24]RezC ++C ++ a Haskell

Viz také

Odkazy a poznámky

  1. ^ „ICFP Programming Contest Scoreboard“. Citováno 23. září 2012.
  2. ^ https://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/results.php
  3. ^ „Antomata - jazyk mravenčích válek“. Archivovány od originál dne 29. 9. 2007. Citováno 2007-11-25.
  4. ^ „Soutěž začíná“. ICFP Programming Contest 2019. 2019-06-21. Citováno 2020-07-15.
  5. ^ Konečné výsledky Programové soutěže ICFP'99
  6. ^ A b Soutěže v letech 1999 a 2002 měly divizi blesků, ale bez samostatné ceny. Vítězové této divize byli oceněni cenami rozhodčích.
  7. ^ Třetí výroční programovací soutěž ICFP
  8. ^ Čtvrtá programovací soutěž ICFP
  9. ^ Sedmá soutěž v programování ICFP
  10. ^ Osmý ročník programovací soutěže ICFP
  11. ^ 2D byl jazyk hraček vynalezený pro soutěž 2006. Vítězný tým použil C ++, Haskell, Krajta, Bash a 2D.
  12. ^ Soutěž v roce 2007 měla divizi blesků, ale protože po 24 hodinách nebyl jasný vůdce, rozhodčí rozhodli, že vítěze nevyberou.
  13. ^ Výsledky soutěže ICFP 2008 Programming Contest
  14. ^ http://www.vimeo.com/6613815 - zpřístupněno 23. září 2009
  15. ^ ICFP 2010 Programming Contest (video)
  16. ^ ICFP Programming Contest 2011
  17. ^ ICFP Programming Contest 2012
  18. ^ ICFP Programming Contest 2013
  19. ^ ICFP Programming Contest 2014
  20. ^ ICFP Programming Contest 2015
  21. ^ ICFP Programming Contest 2016
  22. ^ ICFP Programming Contest 2017
  23. ^ ICFP Programming Contest 2018
  24. ^ „Konečné výsledky“. ICFP Programming Contest 2019. 2019-08-20. Citováno 2020-07-15.

Vytrvalé týmy

externí odkazy

Ant War hra