Представлены победители IOCCC 2025 (международного конкурса обфускации кода на языке C)

После четырёхлетнего перерыва состоялся Международный конкурс обфускации кода на языке C (International Obfuscated C Code Contest, IOCCC, для экспертов и разработчиков Obscure/Obfuscated C program). Организаторы объявили победителей-разработчиков. Это мероприятие проводится с 1984 года (и отчасти вдохновлено ошибкой в ​​классическом Bourne shell). Считается, что это «старейший конкурс в Интернете» для разработчиков с девизом, что программисты должны получать удовольствие от C. Цель конкурса — «показать важность стиля программирования ироничным образом» и «нагрузить компиляторы C необычным кодом».

Выдержки из официальных правил и требований конкурса:

правило 0, точно так же, как C начинается с 0, так и IOCCC начинается с правила 0. 🙂

правило 1, ваша заявка должна быть полной программой….

правило 5, Ваша заявка НЕ ​​ДОЛЖНА изменять содержимое или имя файла любой части вашей исходной заявки, включая, помимо прочего, prog.c, Makefile (который мы создаем на основе ваших инструкций по сборке), а также любые файлы данных, которые вы отправляете….

правило 6, I am not a rule, I am a free(void *human); while (!(ioccc(rule(you(are(number(6)))))) { ha_ha_ha(); }

Правило 6 явно отсылает к The Prisoner (некоторые другие правила еще глупее). И в правилах есть свои шутки типа «вы находитесь в лабиринте извилистых правил, все разные», есть по крайней мере ноль судей, которые считают, что Fideism имеет мало или вообще ничего общего с процессом судейства IOCCC, мы предлагаем вам не пытаться получить «самый маленький самовоспроизводящийся» источник (самый маленький, запись с нулевым байтом, победил в 1994 году).

В рамках IOCCC 2025 разрешалось использовать кодировку UTF-8 в коде. Код кадого участника должен быть интересен и чем-то примечателен. Работы могли быть необычно оформлены или выделять неожиданные стороны языка C. Размер исходного кода программы не должен превышать 4096 байт, а программа должна собираться и выполнять осмысленное действие.

По информации OpenNET, список победителей IOCCC 2025:

помощник в решении головоломки Wordle, в которой нужно угадать пятибуквенное слово за шесть попыток (код);

чат-бот, использующий модель llama2-7b-chat и OpenMP. Проект отмечен как самый компактный движок для выполнения больших языковых моделей (код всего 1800 байт);

на первый взгляд программа возводит в квадрат числа от 1 до 10, но на деле показывается рецепт приготовления жареного лосося. Код 15 строк и содержит манипуляции с незаметными символами Unicode;

эмулятор CPU Intel 4004. Код 14 строк;

генератор изображений деревьев в консоли. Код оформлен в виде дерева;

трассировщик лучей, реализованный целиком при помощи макросов C-препроцессора (код);

физический движок, симулирующий вращение волчка. Код тоже в форме волчка;

пародия на игру Oregon Trail. Код с огромным числом операторов goto;

переводчик с языка, использовавшегося радистами‑шифровальщиками навахо (код).

текстовый редактор eh (код);

калькулятор, выражения в котором задаются словами (например, «два плюс два»). Код в виде калькулятора;

рисует текущую фазу луны в консоли. Код в форме луны;

утилита для удаления артефактов из JPEG‑изображений. Код 42 строки;

виртуальная машина, способная запускать Doom 1/2 на современных ПК. Код 40 строк;

генератор кода на C для вывода указанных данных. Код в виде спирали;

эмулятор CPU OpenRISC, способный запустить Linux. Код 73 строки;

интерпретатор языка JavaScript с поддержкой объектов, массивов, строк, чисел, функций и сборщиком мусора. Код из 61 строки;

анимация танцующего Рика Эстли со звуковым сопровождением (код);

интерпретатор z3-файлов от игры Zork (код);

генератор пиктограмм в формате pbm из MD5-хэшей. Код — однострочник 135 байт;

генератор музыки (код);

симулятор смерча в 3D. Код в форме смерча;

программа для шифрования и дешифровки текста (код).

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии