1754299682459.png


После четырёхлетнего перерыва состоялся Международный конкурс обфускации кода на языке C (International Obfuscated C Code Contest, IOCCC, для экспертов и разработчиков Obscure/Obfuscated C program). Организаторы объявили победителей-разработчиков.

Это мероприятие проводится с 1984 года (и отчасти вдохновлено ошибкой в классическом Bourne shell). Считается, что это «старейший конкурс в Интернете» для разработчиков с девизом, что программисты должны получать удовольствие от C. Цель конкурса — «показать важность стиля программирования ироничным образом» и «нагрузить компиляторы C необычным кодом».

1754299777820.png


Выдержки из официальных правил и требований конкурса:
  • правило 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-препроцессора (код);
  • физический движок, симулирующий вращение волчка. Код тоже в форме волчка;
1754299872930.png

1754299909955.png

  • эмулятор CPU OpenRISC, способный запустить Linux. Код 73 строки;
  • интерпретатор языка JavaScript с поддержкой объектов, массивов, строк, чисел, функций и сборщиком мусора. Код из 61 строки;
  • анимация танцующего Рика Эстли со звуковым сопровождением (код);
1754299926796.png

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