войти зарегистрироваться

Персональные блоги Отчеты о ICFPС'11

Вот и закончились очередные 72 часа, в течение которых порядка 300 команд пытались решить задание в рамках ежегодного соревнования от ICFP.

Предварительные результаты (замороженные за 12 часов до окончания), можно посмотреть на сайте организатора, там же можно прочитать и задание этого года.

Итак, список русскоязычных отчетов, найденных на просторах интернета:

Персональные блоги ICFP Contest 2011 уже скоро

Освобождаем расписание и готовимся.
В ночь на пятницу 17 июня в 04:00 MSK стартует 14-й ежегодный конкурс ICFP Programming Contest. Завершение гонки — в 04:00 МСК в ночь на понедельник 20 июня.

Официальный сайт: www.icfpcontest.org/

В отличие от предыдущих лет, в этот раз НЕ будет промежуточного 24-часового lightning division.

Отчёты предыдущих лет:
ICFP 2010
ICFP 2009

Персональные блоги Отчёты ICFP Contest 2010

С пятницы 18 июня 2010 с 16:00 МСК по понедельник 16:00 МСК — в течение ровно 3 суток — проходил ежегодный конкурс ICFP Programming Contest.

В этот раз задание, безусловно, было весьма интересным и уступало разве что заданию 2007 года (строки ДНК и изображения).

Немого о задании.

Персональные блоги ICFPC 2010

Совсем скоро, в эту пятницу стартует уже тринадцатый ежегодный контест по программированию, приуроченный к ежегодной же конференции по функциональному программированию.

В прошлых годах участникам приходилось заниматься археолингвистическим программированием (2006), приспосабливать инопланетянина вместе с его НЛО к жизни на Земле (2007), управляя марсоходом, спасаться от злобных марсиан (2008) и летать спутниками в околоземном пространстве (2009).

Если кто-то хочет освежить память — год назад я собрал ссылки на русскоязычные отчёты о космических одиссеях.

Как всегда, соревнование будет длиться трое суток (72 часа). Старт будет дан в пятницу 18 июня, в полдень по GMT, и, как всегда, будет ещё lightning round (по результатам первых 24 часов).

Судя по короткому описанию на сайте контеста, в этот раз мы, скорее всего, обойдёмся без мучений 2008-го года с LiveCD и опять будем писать свою виртуальную машину для выполнения какого-нибудь предоставленного байт-кода.

Сейчас как раз самое время всё-таки найти команду, или сформировать свою, если до этого не представилось возможности. Ещё вспомнить, что в данном соревновании может значительно помочь любимая система контроля версий и другие полезные штуки.

Может быть, кто-то прямо здесь, в комментах к этому посту и найдёт себе напарников, так что пишите — не стесняйтесь. Я с полной уверенностью могу сказать, что участие в этом соревновании чрезвычайно интересно, а эмоций и фана хватает на много недель!

Персональные блоги Часть 3/3. Компилятор идеальной VM для ICFPC 2009, на Haskell, с популяризаторскими комментариями

Окончание. Предыдущие части: 1 и 2

Что еще осталось? Мы пропустили место, в котором два смежных опкода превращаются в один. Что мы имели? По спецификации проходили следующие операции:

flag = m20 > 0
if (flag) m222 = m3 else m222 = m4


Исследуя бинарные файлы на предмет того, как эти конструкции используются, мы поняли, что они ходят парой Cmp, затем Phi. Наверняка, потому что так скомпилировались организаторами из каких-то их исходных формул ихним каким-то компилятором. Ну, раз так, то мы их немножко склеим в одну операцию:

-- convert 2-op conditional operator to 1-op
removePhi [] = []
removePhi ((Cmpz cond condr1):(Phi addr r1 r2):xs) = 
            Noop addr : If cond condr1 addr r1 r2 : removePhi xs
removePhi (x:xs) = x:removePhi xs

Персональные блоги Часть 2/3. Компилятор идеальной VM для ICFPC 2009, на Haskell, с популяризаторскими комментариями

Начало здесь.

Теперь разбираемся как мы будем декодировать весь файл, а не только одну инструкцию.

readMyFile = withBinaryFile "bin4.obf" ReadMode $ \-> do
        len <- hFileSize h
        buf <- mallocBytes $ fromInteger len
        hGetBuf h buf $ fromInteger len
        return (len, buf)
Это императивный кусок, потому что с файлами так в основном и работают. withBinaryFile открывает файл, выполняет указанную ей «пользовательскую» функцию, передав ей handle, и закрывает файл, и возвращает то, что вернула ей пользовательская функция. Вот, после знака $ мы описали «пользовательскую» функцию с одним параметром h (от handle). Эта функция получает размер файла, аллоцирует буфер, читает в буфер и возвращает сам буфер и его длину (в байтах). Заметим, что «пользовательская функция» здесь не имеет имени и начинается так:

Персональные блоги Миниотчет об участии в ICFPC 2009

ICFPC это ежегодный конкурс программистов. Здесь мой отчет об участии.

Задание описано сто раз, можно посмотреть здесь habrahabr.ru/blogs/icfpc/63279/

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

Тк я не знал заранее будет ли время участвовать, я оказался без команды, это серьезно повлияло на процесс принятия решений. Было ясно, что одному выиграть очень сложно, поэтому я решил не гнаться за очками, а делать «красивое» решение даже если и будет ясно, что не успеваю. Так же по ходу дела я периодически отвлекался на интересные, но не сильно важные для получения очков вещи, о которых и напишу.

Персональные блоги ICFP 2008 report: team ryba

Вдохновленные как и многие другие отчетами Adept мы приняли участие в ICFP 2007 и в итоге заняли 4-е место. Впечатления от прошлого года остались самые положительные и в этом году мы собрались снова, правда немного в другом составе. В этот раз мы тоже получили массу удовольствия и с задачей в целом справились, осталось дождаться конференции и выяснить наскольхо хорошо :)


Слева направо: адаптивная сетка, граф путей, траектории

Персональные блоги ICFPC-2008: первые впечатления

Введение


Есть такой ежегодный программерский конкурс, ICFP Contest — то есть, International Conference on Functional Programming Contest. Конкурс довольно известный, в русскоязычной среде популяризованный отчетами Адепта, так что я очень кратенько изложу его основные принципы.

Конкурс проходит раз в год, игра командная, задания выдаются на сайте конкурса, решения присылаются туда же. Игра идет трое суток, можно прожить их нон-стопом, можно спать и есть, как все нормальные люди. :) Есть так же так называемый lightning round, то есть отдельное призовое место среди решений, присланных в первые сутки игры.

Задания в выгодную сторону отличаются от классических олимпиадных задачек. В 2006м и 2007м годах это были чудесные квесты от программирования, с написанием собственных компиляторов эзотерических языков под эзотерические виртуальные машины; до того, и в этом году, программирование логики поведения объекта в некотором виртуальном мире.

Персональные блоги ICFPC-2008

Почти сутки остались до начала ICFPC-2008. Что это такое? Это ежегодный трехдневный програмистский конкурс non-stop, приуроченный к международной конференции по функциональному программированию, в течении которого надо пройти в решении поставленной задачи как можно лучше других участников. Смысл конкурса — в выявлении «лучшего языка программирования». Задачи по крайней мере последние два года ставятся интересные и оригинальные, надеюсь и в этом году будет так же.