Как стать автором
Обновить

Итоги 20-го международного конкурса непонятного кода на C

Время на прочтение2 мин
Количество просмотров15K
Организаторы IOCCC (Международный конкурс на самый непонятный код C) нажали кнопку «турбо». Если результаты прошлого конкурса опубликовали спустя четыре года после проведения, теперь прошло всего два месяца — и вот они.

Участвовать в конкурсе могут готовые программы размером меньше 4096 байт, при этом количество значимых символов, без учёта пробелов, знаков табуляции и знаков ; ( ), не должно превышать 2048. Задачей конкурса является «проверять компиляторы на стресс, демонстрировать тонкости языка программирования Си и важность соблюдения стиля программирования (делая обратное)».

Титул победителя (Best of Show) и звание «самой уменьшаемой» (most shrinkable) завоевал четырёхуровневый даунсэмплер akari (Makefile, akari.c). Программа умеет уменьшать разную графику, в том числе ASCII-графику. Поскольку её исходный код тоже отформатирован в виде ASCII-графики, то она может уменьшить и свой исходный код. В результате получается другая валидная программа на C, которая может обрабатывать текст. И это тоже ещё не конец. Обработав код вторично с помощью новой программы, получается третья функциональная программа (здесь компилятор gcc уже начинает выдавать некоторые предупреждения, но всё равно сделает исполняемый файл).

Другие победители:
  • blakely (Makefile, blakely.c): программа играет в «Жизнь» Конвея, вычисляет число Пи до 16 знаков после запятой, получив на входе свой исходный код, а также проверяет первичность клеточного автомата
  • borsanyi (Makefile, borsanyi.c): быстрый генератор гистограмм необычным способом
  • dlowe (Makefile, dlowe.c): самообучающаяся нейросеть
  • eastman (Makefile, eastman.c): попытка повторить классический Amiga Boing Ball с помощью ASCII-графики
  • fredriksson (Makefile, fredriksson.c): с помощью декомпрессора Барроуза-Уилера создаёт исходный код программы agrep и запускает её (награда за «самую полезную» программу на IOCCC)
  • goren (Makefile, goren.c): программа-ребус в память о Рене Магритте
  • hamaji (Makefile, hamaji.c): программа для решения японских кроссвордов
  • hou (Makefile, hou.c): самодокументирующий научный калькулятор
  • konno (Makefile, konno.c): распознаёт нажатия клавиш на QWERTY-клавиатуре
  • richards (Makefile, richards.c): JIT-компилятор и калькулятор dc
  • toledo (Makefile, toledo.c): игра в «танки» для двух человек (требует X11)
  • vik (Makefile, vik.c): конвертер аудиофайлов .MOD в 44,1 кГц стерео и плеер
  • zucker (Makefile, zucker.c): генератор картинок с изображением символов
Теги:
Хабы:
Всего голосов 52: ↑48 и ↓4+44
Комментарии29

Публикации