gltronred: (Default)
[personal profile] gltronred
Мои впечатления от участия в ICFPC-14



Пришел в лабу за десять минут до начала, с кофеваркой и книгами "Жемчужины ФП" и "Параллельное и конкурентное программирование на Haskell". Особо подготовиться не успел.

Начинаем читать задание, оно огромное. На выходе - программа для SECD машины. Ясно, что нужно писать две виртуальные машины (SECD и более-менее обычную) и компилятор для SECD. Три часа выбираем, с какого языка компилировать. Варианты - Лисп в лиспе и лисп в хаскеле. В итоге выбираем второй.

Я пишу компилятор. В некоторый момент понимаю, что нужно всё выкинуть и начать заново. Выкидываю, получается лучше.

Наученный горьким опытом некоторых прошлых ICFPC, сразу пишу скрипт компиляции.

Lightning раунд мы пропускаем. К его концу мы ничего толкового не успели сделать.

Меняю компилятор для оптимизации рекурсивных вызовов и хвостовых вызовов. Это оказывается не так сложно, как я думал. Точнее, сделать простую реализацию несложно. Сложнее сделать так, чтобы она оптимизировала все варианты, когда оптимизация возможна. Но нам это особо и не надо. Будет тормозить - посмотрю.

С AI у меня ничего не получилось, скомпилированные программы упорно не хотели работать.

Падение ВК проходит сильно мимо меня.

За два часа до конца Габриэль находит странности в поведении лямбда-бота и выясняет, что при запуске скомпилированной версии вылезает runtime error. Я в это время помогаю Дмитрию писать AI (исправлять хаскелевские ошибки компиляции DSL). За час до конца мы этот процесс завершаем, а Габриэль пишет тест, на котором компилятор ломается. За полчаса до конца я нахожу баг и правлю его. Отправить заново скомпилированный код мы успеваем.

Правда, особого толку не будет, нормальный AI мы так и не успели написать. Ждём результатов, чоужтам



Итоги и выводы.



Своим участием в ICFPC я доволен. Компилятор я написал, и он даже более-менее ничего. На следующий год студентам дам его написать :)

Хорошо, когда начало рано. В начале не нужно много людей, не нужно большое обсуждение. Надо быстро сделать заготовку. Если начало часа в четыре утра - скорее всего, будет немного людей, и затраты на обсуждение будут невелики. Конечно, потом нужно больше людей.

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

From:
Anonymous( )Anonymous This account has disabled anonymous posting.
OpenID( )OpenID You can comment on this post while signed in with an account from many other sites, once you have confirmed your email address. Sign in using OpenID.
User
Account name:
Password:
If you don't have an account you can create one now.
Subject:
HTML doesn't work in the subject.

Message:

 
Notice: This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.

Profile

gltronred: (Default)
gltronred

August 2017

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 21st, 2017 06:45 am
Powered by Dreamwidth Studios