- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

Другие победители:

  • blakely (Makefile [5], blakely.c [6]): программа играет в «Жизнь» Конвея, вычисляет число Пи до 16 знаков после запятой, получив на входе свой исходный код, а также проверяет первичность клеточного автомата [7]
  • borsanyi (Makefile [8], borsanyi.c [9]): быстрый генератор гистограмм необычным способом
  • dlowe (Makefile [10], dlowe.c [11]): самообучающаяся нейросеть
  • eastman (Makefile [12], eastman.c [13]): попытка повторить классический Amiga Boing Ball [14] с помощью ASCII-графики
  • fredriksson (Makefile [15], fredriksson.c [16]): с помощью декомпрессора Барроуза-Уилера создаёт исходный код программы agrep и запускает её (награда за «самую полезную» программу на IOCCC)
  • goren (Makefile [17], goren.c [18]): программа-ребус в память о Рене Магритте [19]
  • hamaji (Makefile [20], hamaji.c [21]): программа для решения японских кроссвордов
  • hou (Makefile [22], hou.c [23]): самодокументирующий научный калькулятор
  • konno (Makefile [24], konno.c [25]): распознаёт нажатия клавиш на QWERTY-клавиатуре
  • richards (Makefile [26], richards.c [27]): JIT-компилятор и калькулятор dc
  • toledo (Makefile [28], toledo.c [29]): игра в «танки» для двух человек (требует X11)
  • vik (Makefile [30], vik.c [31]): конвертер аудиофайлов .MOD в 44,1 кГц стерео и плеер
  • zucker (Makefile [32], zucker.c [33]): генератор картинок с изображением символов

Автор: alizar


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/obfuskatsiya/6591

Ссылки в тексте:

[1] IOCCC: http://www.ioccc.org/

[2] вот они: http://www.ioccc.org/years.html

[3] Makefile: http://www.ioccc.org/2011/akari/Makefile

[4] akari.c: http://www.ioccc.org/2011/akari/akari.c

[5] Makefile: http://www.ioccc.org/2011/blakely/Makefile

[6] blakely.c: http://www.ioccc.org/2011/blakely/blakely.c

[7] первичность клеточного автомата: http://en.wikipedia.org/wiki/Garden_of_Eden_%28cellular_automaton%29

[8] Makefile: http://www.ioccc.org/2011/borsanyi/Makefile

[9] borsanyi.c: http://www.ioccc.org/2011/borsanyi/borsanyi.c

[10] Makefile: http://www.ioccc.org/2011/dlowe/Makefile

[11] dlowe.c: http://www.ioccc.org/2011/dlowe/dlowe.c

[12] Makefile: http://www.ioccc.org/2011/eastman/Makefile

[13] eastman.c: http://www.ioccc.org/2011/eastman/eastman.c

[14] Amiga Boing Ball: http://www.youtube.com/watch?v=-ga41edXw3A

[15] Makefile: http://www.ioccc.org/2011/fredriksson/Makefile

[16] fredriksson.c: http://www.ioccc.org/2011/fredriksson/fredriksson.c

[17] Makefile: http://www.ioccc.org/2011/goren/Makefile

[18] goren.c: http://www.ioccc.org/2011/goren/goren.c

[19] Рене Магритте: http://ru.wikipedia.org/wiki/Магритт,_Рене

[20] Makefile: http://www.ioccc.org/2011/hamaji/Makefile

[21] hamaji.c: http://www.ioccc.org/2011/hamaji/hamaji.c

[22] Makefile: http://www.ioccc.org/2011/hou/Makefile

[23] hou.c: http://www.ioccc.org/2011/hou/hou.c

[24] Makefile: http://www.ioccc.org/2011/konno/Makefile

[25] konno.c: http://www.ioccc.org/2011/konno/konno.c

[26] Makefile: http://www.ioccc.org/2011/richards/Makefile

[27] richards.c: http://www.ioccc.org/2011/richards/richards.c

[28] Makefile: http://www.ioccc.org/2011/toledo/Makefile

[29] toledo.c: http://www.ioccc.org/2011/toledo/toledo.c

[30] Makefile: http://www.ioccc.org/2011/vik/Makefile

[31] vik.c: http://www.ioccc.org/2011/vik/vik.c

[32] Makefile: http://www.ioccc.org/2011/zucker/Makefile

[33] zucker.c: http://www.ioccc.org/2011/zucker/zucker.c