Pull to refresh

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

Reading time2 min
Views15K
Организаторы 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): генератор картинок с изображением символов
Tags:
Hubs:
+44
Comments29

Articles