Jump to content

Конкурс ICFP по программированию

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

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

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

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

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

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

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

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

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

Год Первая премия Вторая премия Третья премия Молния
1998 Силк OCaml
1999 [5] OCaml Хаскелл [6]
2000 [7] OCaml OCaml
2001 [8] Хаскелл Дилан
2002 OCaml С [6]
2003 С++ С++ OCaml
2004 [9] Хаскелл Хаскель и С++ Ява и С++
2005 [10] Хаскелл Дилан Хаскелл
2006 2D [11] Д Сборка
2007 С++ Перл [12]
2008 [13] Ява МЛ
2009 [14] С++ Ява МЛ
2010 [15] С++ , Хаскелл , Питон SageMath
2011 [16] Ф# Шелл и C++
2012 [17] С++ OCaml Ява
2013 [18] Java , C# , C++ , PHP , Ruby и Haskell С++ и Питон C# , C++ , bash , awk , sed и Excel С++
2014 [19] Хаскелл С++ Перл OCaml
2015 [20] C++ , Java , C# , PHP , Ruby и Haskell С++ , Питон , JavaScript С++ С++
2016 [21] Java , C++ , C# , PHP , Хаскелл C++ , Ruby , Python , Haskell , Java , JavaScript OCaml
2017 [22] С++ С++ OCaml
2018 [23] Ржавчина C++ , Python , Ruby , JavaScript , bash и SQL. OCaml
2019 [24] Ржавчина С++ С++ и Хаскель
2020 [25] Питон C++ (первый победитель), Rust (второй победитель) Хаскелл
2021 [26] С++ , Ржавчина Ржавчина Rust , TypeScript и Go Rust , TypeScript и Go
2022 [27] Rust , Go и Python Ржавчина , C++ и Python С++ , Rust и Python Ржавчина , C++ и Python

См. также

[ редактировать ]

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

[ редактировать ]
  1. ^ «Таблица соревнований по программированию ICFP» . Проверено 23 сентября 2012 г.
  2. ^ https://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/results.php
  3. ^ «Антомата — язык муравьиных войн» . Архивировано из оригинала 29 сентября 2007 г. Проверено 25 ноября 2007 г.
  4. ^ «Конкурс начинается» . Конкурс ICFP по программированию 2019 . 21 июня 2019 г. Проверено 15 июля 2020 г.
  5. ^ Окончательные результаты конкурса по программированию ICFP'99.
  6. ^ Перейти обратно: а б Конкурсы 1999 и 2002 годов имели молниеносный дивизион, но без отдельного приза. Победители этого дивизиона были награждены призами судей.
  7. ^ Третий ежегодный конкурс программирования ICFP
  8. ^ Четвертое соревнование по программированию ICFP
  9. ^ Седьмое ежегодное соревнование по программированию ICFP
  10. ^ Восьмой ежегодный конкурс программирования ICFP
  11. ^ 2D — игрушечный язык, изобретенный для конкурса 2006 года.Команда-победитель использовала C++ , Haskell , Python , Bash и 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» . Архивировано из оригинала 16 октября 2013 г. Проверено 15 августа 2013 г.
  19. ^ Конкурс программирования ICFP 2014 г.
  20. ^ Конкурс программирования ICFP 2015
  21. ^ Конкурс программирования ICFP 2016
  22. ^ Конкурс программирования ICFP 2017
  23. ^ Конкурс программирования ICFP 2018
  24. ^ «Окончательные результаты» . Конкурс ICFP по программированию 2019 . 20 августа 2019 г. Проверено 15 июля 2020 г.
  25. ^ «Награды и отчеты конкурса программирования ICFP» . 26 августа 2020 г. Архивировано из оригинала 21 декабря 2021 г. Проверено 29 мая 2021 г.
  26. ^ Конкурс по программированию ICFP 2021
  27. ^ Конкурс по программированию ICFP 2022
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 489c9069ab0994eb64ff5d57b95d637e__1716443460
URL1:https://arc.ask3.ru/arc/aa/48/7e/489c9069ab0994eb64ff5d57b95d637e.html
Заголовок, (Title) документа по адресу, URL1:
ICFP Programming Contest - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)