Соревнование по программированию ICFP - ICFP Programming Contest

В Соревнование по программированию ICFP это международные соревнования по программированию, которые проводятся ежегодно в июне или июле с 1998 г., а результаты объявляются на Международная конференция по функциональному программированию.

Команды могут быть любого размера и могут использоваться любые языки программирования. Также нет вступительного взноса. У участников есть 72 часа, чтобы заполнить и подать заявку через Интернет. Часто бывает и 24-часовое деление молний.

Победители оставляют за собой право «хвастаться», заявляя, что их язык является «предпочтительным инструментом программирования для распознавания хакеров». Таким образом, одна из целей конкурса - продемонстрировать возможности любимых участниками языков программирования и инструментов. Предыдущие победители первого приза использовали Haskell, OCaml, C ++, Силк, Ява, F # и Ржавчина.

На конкурсы обычно подается около 300 работ.[1][2]

Прошлые задачи

ГодОрганизаторОписание
1998Université de Montréal и Массачусетский Институт ТехнологийНапишите программу, которая играет пусс, странный вариант крестиков-ноликов. Конкурсные программы были введены в турнир для определения программы первого и второго места.
1999Гарвардский университетОптимизировать по размеру дело высказывания (в конкурсном задании говорилось о текстовых приключенческие игры, а на самом деле стояла задача оптимизировать по размеру описание такой игры).
2000Корнелл УниверситетРеализуйте трассировщик лучей, используя синтаксис, подобный Postscript.
2001INRIA RocquencourtОптимизируйте размер HTML-подобного языка разметки, удалив ненужные пробелы, теги и т. Д.
2002Школа науки и инженерии OGIРеализуйте роботов, играющих Сокобан -подобная игра друг против друга.
2003Университет ЧалмерсаРеализуйте роботов, управляющих автомобилем как можно быстрее по разным гоночным трассам.
2004Пенсильванский университетСоздайте колонию муравьев, которая будет приносить больше частиц пищи обратно в муравейник, одновременно отбиваясь от муравьев другого вида. Конкурсная запись выводила бы описание муравья на машине состояний: в принципе, записи могли быть написаны от руки. Позже задача была адаптирована в Ant Wars, стратегия и игра по программированию где каждый участник представляет собой разновидность муравей. Затем участник на языке, называемом Antomata,[3] запрограммировать конечный автомат функционировать как мозг каждого муравья. Этот муравей мозг затем управляйте муравьем, чтобы найти и собрать еду, чтобы принести в дом муравейник, чтобы отбиваться от нападающих или оставлять следы феромонов.
2005PLT группаВнедрите «ботов» для игры «Полицейские и грабители»: участники должны написать программу управления, которая проведет робота-грабителя через тихий городской район с миссией ограбить каждый банк, не попав в ловушку, и программу управления для полицейского. Бот, призванный его остановить.
2006Университет Карнеги МеллонРеализуйте виртуальную машину, на которой работает операционная система (называемая UMIX ), предоставленный судьями, и взломать его, используя новые языки программирования с нетрадиционным синтаксисом и семантикой, такие как 2D и версия БАЗОВЫЙ используя римские цифры. Многие головоломки были миниатюрными версиями или пародиями на предыдущие конкурсы.
2007Утрехтский университетРеализуйте двухэтапную виртуальную машину, которая выполняет строку, похожую на ДНК, для создания изображения. Затем, учитывая входную строку для этого компьютера, найдите префикс, который при добавлении к этой строке дает изображение, максимально приближенное к заданному целевому изображению.
2008Государственный университет Портленда и Чикагский университетОбеспечьте систему управления марсоходом, которая будет вести его к домашней базе, избегая препятствий и врагов.
2009Канзасский университетУправляйте спутником, чтобы перемещаться между заданными орбитами и встречаться с другими спутниками.
2010Лейпцигский университет прикладных наук, ГерманияМеждународное производство автомобилей и топлива.
2011Университет Тохоку, ЯпонияЗапрограммируйте компьютер с 256 «слотами», чтобы пережить своего противника с точки зрения количества слотов, оставшихся в конце матча. Представленные материалы включают исполняемые файлы, которые участвуют в двухэтапном турнире.
2012Сент-Эндрюсский университет, ШотландияЗапрограммируйте ИИ для Boulder Dash -подобная игра.
2013Microsoft ResearchУгадайте реализацию функции черного ящика, реализованную на простом функциональном языке посредством запроса веб-службы.
2014Оксфордский университет and Well-Typed LLPНапишите программы ИИ для игры, подобной пакману, в Машина SECD инструкция для pacman и 8 бит инструкция по сборке машины для четырех призраков.
2015ГалуаНапишите ИИ для Тетрис -подобная игра на поле с шестиугольной сеткой, в котором в последовательность ходов вставлены секретные фразы.
2016Университет электросвязиНапишите ИИ для решения абстрактных оригами.
2017Эдинбургский университетНапишите ИИ для игры, в которой игроки по очереди запрашивают участки маршрута на карте, и побеждает тот, у кого лучше покрытие. Также есть три расширения основного игрового режима, любое количество из которых может быть включено на карте.
2018Рочестерский технологический институтСоздавайте следы наноботов для создания, разрушения и реконструкции целевых 3D-объектов с минимальным потреблением энергии.
2019Йельский колледж и Национальный университет СингапураРабочие-обертки против Bit Rot.[4]

Призы

Призы имеют скромную денежную ценность и в первую очередь направлены на то, чтобы помочь победителям посетить конференцию, на которой вручаются призы, а судьи делают следующие заявления:

Первый приз
[Язык 1] это инструмент программирования, который выбирают для распознавания хакеров.
Второй приз
[Язык 2] это прекрасный инструмент программирования для многих приложений.
Третий приз
[Язык 3] тоже не так уж и плохо.
Победитель молниеносного дивизиона
[Язык L] очень подходит для быстрого прототипирования.
Приз судей
[Команда X] - очень крутая группа хакеров.

Если победившая работа включает несколько языков, победителей просят назвать один или два. Языки, указанные в заявлениях судей, были:

ГодПервый призВторая премияТретья премияМолния
1998СилкOCaml
1999[5]OCamlHaskell[6]
2000[7]OCamlOCaml
2001[8]HaskellДилан
2002OCamlC[6]
2003C ++C ++OCaml
2004[9]HaskellHaskell и C ++Ява и C ++
2005[10]HaskellДиланHaskell
20062D[11]Dсборка
2007C ++Perl[12]
2008[13]ЯваML
2009[14]C ++ЯваML
2010[15]C ++, Haskell, PythonSageMath
2011[16]F #Ракушка и C ++
2012[17]C ++OCamlЯва
2013[18]Ява, C #, C ++, PHP, Рубин и HaskellC ++ и PythonC #, C ++, трепать, awk, sed и ExcelC ++
2014[19]HaskellC ++PerlOCaml
2015[20]C ++, Ява, C #, PHP, Рубин и HaskellC ++, Python, JavaScriptC ++C ++
2016[21]Ява, C ++, C #, PHP, HaskellC ++, Рубин, Python, Haskell, Ява, JavaScriptOCaml
2017[22]C ++C ++OCaml
2018[23]РжавчинаC ++, Python, Рубин, JavaScript, трепать и SQLOCaml
2019[24]РжавчинаC ++C ++ и Haskell

Смотрите также

Ссылки и примечания

  1. ^ «Табло соревнований по программированию ICFP». Получено 23 сентября 2012.
  2. ^ https://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/results.php
  3. ^ «Антомата - язык муравьих войн». Архивировано из оригинал на 2007-09-29. Получено 2007-11-25.
  4. ^ «Конкурс начинается». Соревнование по программированию ICFP 2019. 2019-06-21. Получено 2020-07-15.
  5. ^ Итоги олимпиады по программированию ICFP'99
  6. ^ а б Соревнования в 1999 и 2002 годах проходили в молниеносном дивизионе, но без отдельного приза. Победители этого дивизиона были награждены Судейскими призами.
  7. ^ Третий ежегодный чемпионат по программированию ICFP
  8. ^ Четвертое соревнование по программированию ICFP
  9. ^ Седьмое соревнование по программированию Antual ICFP
  10. ^ Восьмое ежегодное соревнование по программированию ICFP
  11. ^ 2D был игрушечным языком, изобретенным для конкурса 2006 года. C ++, Haskell, Python, Баш, и 2D.
  12. ^ В конкурсе 2007 года было молниеносное деление, но, поскольку через 24 часа не было явного лидера, судьи решили не выбирать победителя.
  13. ^ Результаты соревнований по программированию ICFP 2008
  14. ^ http://www.vimeo.com/6613815 - по состоянию на 23 сентября 2009 г.
  15. ^ Соревнования по программированию ICFP 2010 (видео)
  16. ^ Чемпионат мира по программированию ICFP 2011
  17. ^ Соревнование по программированию ICFP 2012
  18. ^ Соревнование по программированию ICFP 2013
  19. ^ Соревнование по программированию ICFP 2014
  20. ^ Соревнование по программированию ICFP 2015
  21. ^ Соревнование по программированию ICFP 2016
  22. ^ Соревнование по программированию ICFP 2017
  23. ^ Соревнование по программированию ICFP 2018
  24. ^ «Окончательные результаты». Соревнование по программированию ICFP 2019. 2019-08-20. Получено 2020-07-15.

Многолетние команды

внешняя ссылка

Игра Ant War