Кіріспе

ICFP бағдарламалау байқауы - 1998 жылдан бері жыл сайын маусым немесе шілде айларында өткізілетін халықаралық бағдарламалау байқауы, оның нәтижелері Функционалдық бағдарламалау жөніндегі халықаралық конференцияда жарияланады. Командалардың көлемі әртүрлі болуы мүмкін және кез келген бағдарламалау тілі қолданылуы мүмкін. Сондай-ақ, қатысу ақысы да төленбейді. Қатысушылардың өздерінің өтініштерін Интернет арқылы толтырып, тапсыру үшін 72 сағаты бар. Көбінесе 24 сағаттық найзағай бөлімдері де бар. Жеңімпаздар өздерінің тілдері "бақылаушы хакерлердің таңдаулы бағдарламалау құралы" деп мақтануға құқылы. Осылайша, байқаудың мақсаттарының бірі - қатысушылардың сүйікті бағдарламалау тілдері мен құралдарының мүмкіндіктерін көрсету. Бұрынғы бірінші жүлде иегерлері Haskell, OCaml, C++, Cilk, Java, F# және Rust қолданбаларын қолданған. Конкурсқа әдетте 300-ге жуық жоба қатысады.

Бұрынғы тапсырмалар

Жыл Ұйымдастырушы сипаттамасы 1998 Монреаль университеті мен Массачусетс технология институты Тик-так-тоның бірден бір нұсқасы - пусс ойнайтын бағдарламаны жазыңыз. Байқауға қатысушылар бірінші және екінші орынға ие болған бағдарламаларды анықтау үшін турнирге қатысады. 1999 жыл Гарвард университеті Өлшемін оңтайландыру жағдайлары (конкурс тапсырмасы мәтінге негізделген приключенческие ойындар туралы айтты, бірақ іс жүзінде тапсырма осындай ойынның сипаттамасын оңтайландыру болды). 2000 Корнелл университеті PostScript сияқты синтаксис арқылы сәулелік ізін салуды іске асырады. 2001 INRIA Rocquencourt Size қажетсіз бос орындар мен тегтерді алып тастау арқылы HTML сияқты таңбалау тілін оңтайландырады. 2002 OGI Ғылым және Инженерлік мектебі Сокобан сияқты бір-біріне қарсы ойын ойнайтын роботтарды іске асырады. 2003 Chalmers University Автомобильді әр түрлі жарыс трассаларында мүмкіндігінше жылдам айдайтын роботтарды іске асыру. 2004 Пенсильвания университеті басқа түрдің құмырсқаларын сүртіп, азық-түлік бөлшектерін көбірек алып келетін құмырсқалар колониясын жасаңыз. Байқаудың қатысушысы құмырсқаның мемлекеттік машиналық сипаттамасын шығарады: қағидаты бойынша, жазбалар қолмен жазылған болуы мүмкін. Кейіннен бұл тапсырманы "Қырмыза соғыстары" деп атаған стратегиялық және бағдарламалау ойынына енгізді, онда әр қатысушы - құмырсқа түрі. Одан кейін қатысушылар Antomata деп аталатын тілде шекті күйдегі машинаны әр құмырсқаның миы ретінде жұмыс істеуге бағдарламалайды. Мұнан кейін, құмырсқаның миы оны үй құмырсқа үйіне әкелетін азық-түлікті табуға және жинауға, шабуылдаушылардан қорғайтын немесе феромондық іздер жасауға басқарады. 2005 PLT тобы "Cops & Robbers" ойыны үшін "боттарды" іске асыру: қатысушылар Robber Bot-ты тыныш қалалық маңайда кез-келген банкті ұстамай тонау миссиясы бойынша басқаратын басқару бағдарламасын және оны тоқтатуға арналған Cop Bot-ты басқару бағдарламасын жазуы керек. 2006 Карнеги Мелон Университеті Соттар ұсынған операциялық жүйені (UMIX деп аталады) орындайтын виртуалды машинаны іске қосыңыз және оны 2D және римдік цифрларды қолданатын BASIC нұсқасы сияқты дәстүрлі емес синтаксис пен семантикасы бар жаңа бағдарламалау тілдерін қолдана отырып бұзңыз. Көптеген жұмбақтар бұрынғы жарыстардың шағын нұсқалары немесе пародиялары болды. 2007 Утрехт университеті сурет шығару үшін ДНК сияқты тізбекті орындайтын 2 сатылы виртуалды машинаны іске асырады. Содан кейін, осы машинаға арналған кіріс тізбегін беріп, осы тізбеге қосылған кезде берілген мақсатты суретке мүмкіндігінше жақын сурет беретін префиксті табыңыз. 2008 Портленд мемлекеттік университеті мен Чикаго университеті Марс марсоходының басқару жүйесін қамтамасыз етеді, ол кедергілер мен жаулардан аулақ жүріп, үй базасына бағытталады. 2009 Канзас университеті Белгіленген орбиталар арасында қозғалу және басқа спутниктермен кездесу үшін спутникті басқару. 2010 Лейпциг қолданбалы ғылым университеті, Германия Халықаралық автомобиль және отын өндірісі. 2011 жылы Тохоку университеті, Жапония 256 "слот" компьютерін бағдарламалайды. Тапсырмалар екі кезеңді турнирге енгізілген орындалатын файлдарды қамтиды. 2012 жылы Шотландияның Сент-Эндрюс университеті Боулдер-Дэш сияқты ойын үшін AI бағдарламасын әзірледі. 2013 Microsoft Research Guess қара қорап функциясының веб-қызметке сұрау салу арқылы қарапайым функционалдық тілде іске асырылуы. 2014 Oxford University and Well Typed LLP Pacman сияқты ойын үшін AI бағдарламаларын жазыңыз, SECD машина нұсқаулығында pacman және 8 бит машина құрастыру нұсқаулары төрт арбақ үшін. 2015 Galois Тетрис үшін AI жаз, ол алты бұрышты тор өрісіне ойын сияқты, ол қозғалыс реттілігіне құпия сөз тіркестерін енгізеді. 2016 University of Electro Communications Абстрактілі оригамиді шешу үшін AI жазыңыз.2017 University of Edinburgh Ойын үшін AI жазыңыз. Ойыншылар картадағы жол бөліктерін кезекпен талап етеді және ең жақсы қамтуды жеңеді. Сондай-ақ, негізгі ойын режимінің үш кеңейтімі бар, олардың кез келген санын картада қосуға болады. 2018 Рочестер технология институты Наннобот іздерін пайдаланып, мақсатты 3D нысандарды құрастыру, жою және қайта құру, сонымен бірге энергияны барынша азайту.2019Yale NUS College and National University of SingaporeWorker Wrappers against Bit Rot.2020SKB KonturАналық ерекшеліктерге сәйкес виртуалды машинаны жасаңыз, сол VM-де ғарышкерлер ұсынған ойын серверін іске қосыңыз, ойынды зерттеңіз (ашығу, ату, бөлу және жарылу командаларымен Чебышев қашықтығымен планета орбитасында 2D ғарыш шайқасы), ойын протоколын кері инженерлік жасаңыз және осы ойынды о...