Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
ICFP бағдарламалау байқауы - 1998 жылдан бері жыл сайын маусым немесе шілде айларында өткізілетін халықаралық бағдарламалау байқауы, оның нәтижелері Функционалдық бағдарламалау жөніндегі халықаралық конференцияда жарияланады. Командалардың көлемі әртүрлі болуы мүмкін және кез келген бағдарламалау тілі қолданылуы мүмкін. Сондай-ақ, қатысу ақысы да төленбейді. Қатысушылардың өздерінің өтініштерін Интернет арқылы толтырып, тапсыру үшін 72 сағаты бар. Көбінесе 24 сағаттық найзағай бөлімдері де бар. Жеңімпаздар өздерінің тілдері "бақылаушы хакерлердің таңдаулы бағдарламалау құралы" деп мақтануға құқылы. Осылайша, байқаудың мақсаттарының бірі - қатысушылардың сүйікті бағдарламалау тілдері мен құралдарының мүмкіндіктерін көрсету. Бұрынғы бірінші жүлде иегерлері Haskell, OCaml, C++, Cilk, Java, F# және Rust қолданбаларын қолданған. Конкурсқа әдетте 300-ге жуық жоба қатысады.
The ICFP Programming Contest is an international programming competition held annually around June or July since 1998, with results announced at the International Conference on Functional Programming. Teams may be of any size and any programming language(s) may be used. There is also no entry fee. Participants have 72 hours to complete and submit their entry over the Internet. There is often also a 24 hour lightning division. The winners reserve "bragging rights" to claim that their language is "the programming tool of choice for discriminating hackers". As such, one of the competition's goals is to showcase the capabilities of the contestants' favorite programming languages and tools. Previous first prize winners have used Haskell, OCaml, C++, Cilk, Java, F#, and Rust. The contests usually have around 300 submitted entries.
Бұрынғы тапсырмалар
Жыл Ұйымдастырушы сипаттамасы 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 ғарыш шайқасы), ойын протоколын кері инженерлік жасаңыз және осы ойынды о...
Year Organiser Description 1998 Université de Montréal and Massachusetts Institute of Technology Write a program that plays pousse, an odd variant of tic tac toe. Contestant programs were entered into a tournament to determine the first and second place program. 1999 Harvard University Size optimize case statements (the contest task spoke about text based adventure games, but in fact the task was to size optimize the description of such a game). 2000 Cornell University Implement a ray tracer using a Postscript like syntax. 2001 INRIA Rocquencourt Size optimize an HTML like markup language by removing unnecessary whitespace and tags, and so on. 2002 OGI School of Science and Engineering Implement robots playing a Sokoban like game one against each other. 2003 Chalmers University Implement robots driving a car as fast as possible through different racing tracks. 2004 University of Pennsylvania Design an ant colony that will bring the most food particles back to its anthill, while fending off ants of another species. The contest entry would output a state machine description of the ant: in principle, entries could have been written by hand. Later the task was adapted into Ant Wars, a strategy and programming game where each participant is a species of ant. The participants then, in a language called Antomata, program a finite state machine to function as the brain of each ant. The ant brain then controls the ant to find and collect food to bring to the home ant hill, to fend off attackers or make trails of pheromones. 2005 PLT group Implement "bots" for a "Cops & Robbers" game: contestants have to write the control program that guides a Robber Bot through a quiet urban neighborhood on a mission to rob every bank without getting caught, and the control program for a Cop Bot dedicated to stopping it. 2006 Carnegie Mellon University Implement a virtual machine that runs an operating system (called UMIX) provided by the judges, and crack it using new programming languages with unconventional syntax and semantics, such as 2D and a version of BASIC using Roman numerals. Many puzzles were tiny versions or parodies of previous contests. 2007 Utrecht University Implement a 2 stage virtual machine that executes a DNA like string to produce an image. Then, given an input string for this machine, find a prefix that when added to this string yields an image as close as possible to the given target image. 2008 Portland State University and the University of Chicago Provide a Mars rover control system that will guide it to a home base while avoiding obstacles and enemies. 2009 University of Kansas Control a satellite to move between specified orbits and rendezvous with other satellites. 2010 Leipzig University of Applied Science, Germany International Car and Fuel Production. 2011 Tohoku University, Japan Program a computer with 256 "slots" to outlast its opponent in terms of slots remaining at the end of the match. Submissions include executables that are entered into a two phase tournament. 2012 University of St Andrews, Scotland Program an AI for a Boulder Dash like game. 2013 Microsoft Research Guess the implementation of a blackbox function implemented in a simple functional language through querying a web service. 2014 University of Oxford and Well Typed LLP Write AI programs for a pacman like game, in SECD machine instruction for pacman and 8 bit machine assembly instructions for four ghosts. 2015 Galois Write an AI for Tetris like game on a hexagon grid field that embeds secret phrases in the move sequence. 2016 University of Electro Communications Write an AI to solve abstract origami.2017University of EdinburghWrite an AI for a game where players in turn claim route parts on the map and the one with the best coverage wins. There are also three extensions to the main game mode, any number of which can be enabled on a map. 2018 Rochester Institute of Technology Generate nanobot traces to construct, destruct, and reconstruct target 3D objects while minimizing energy used.2019Yale NUS College and National University of SingaporeWorker Wrappers against Bit Rot.2020SKB KonturBuild virtual machine by the alien specification, run alien provided game server on that VM, explore the game (2D space battle on the planet orbit with Chebyshev distance, with accelerate, shoot, split and detonate commands), reverse engineer game protocol and create bot to play this game.2021Alex Lang and Jasper Van der JeugtManipulate a figure similar to a mechanical linkage to fit through a hole in the wall.2022Alperen KelesReconfigure a prefilled canvas into a painting.