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

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

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

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

  • правило 0, аналогично, как C начинается с 0, так и IOCCC начинается с правила 0. :-)

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

  • правило 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 29 разрешалось применять кодировку UTF-8 в коде. Код каждого участника должен быть интересен и чем-то примечателен. Работы могли быть необычно оформлены или выделять неожиданные стороны языка C. Размер исходного кода программы не должен превышать 4993 байта, а приложение должна собираться и выполнять осмысленное действие.

Среди победителей соревнования — эмулятор GameBoy, оптимизированный для «Тетриса», с исходным кодом, который выглядит как GameBoy, а равным образом квази-Roguelike игра, признанная «наиболее вероятной для телепортации». Также были вручены награды за лучший воображаемый эмулятор (виртуальная машина в 366 байтах C) и лучший эмулятор дробных чисел (генератор лабиринтов для Commodore 64).

«В этом году мы добавили забавные задания в конкурс работ‑победителей…», — отмечается на сайте. «После того, как вы разберётесь, что делает та или иная работа‑победитель, мы предлагаем вам попробовать выполнить это забавное задание!», — пояснили организаторы конкурса.

Список победителей IOCCC 29 и их проекты (на GitHub):

  • 2025/cable - Subleq computer;

  • 2025/cesmoak - Black hole punchcard Fortran. Инициатива имитирует мэйнфрейм IBM 7040, сначала преобразуя программу (закодированную в пробелах) в ASCII-символьные изображения перфокарт для программы на языке FORTRAN, а затем выполняя эту программу для вычисления света, видимого наблюдателю, смотрящему на черную дыру, и в конечном итоге создавая изображение. Все это воссоздаёт то, что пришлось сделать астрофизику Жан-Пьеру Люмине в 1978 году, чтобы создать первую в истории смоделированную фотографию чёрной дыры (на мэйнфрейме IBM 7040). «В этой работе равным образом можно запускать другие программы на FORTRAN — но они должны быть предоставлены в виде колоды перфокарт… Предоставлены инструменты для преобразования в/из колод и для интерпретации…»;

  • 2025/endoh3 - patch/diff quine;

  • 2025/jhshrvdp - Quasi-rogue-like game;

  • 2025/jingp49 - Dr. WHO sequence. Победитель из Тайваня оформил свой исходный код в форме Тардиса из сериала «Доктор Кто» — исходник, отображающий сложную ASCII-анимацию вступительной заставки сериала «Доктор Кто» 1963 года;

  • 2025/ncw1 - GameBoy emulator;

  • 2025/tompng - Ocean sound generator;

  • 2025/uellenberg - Quine pong. «Запуск программы генерирует исходный код для создания следующего кадра, отформатированного для отображения текущего кадра. Многократно компилируя и запуская каждый последующий кадр, вы можете играть в игру. Для перемещения передайте в качестве аргумента либо «w» (вверх), либо «e» (вниз)…»;

  • 2025/yang2 - Zoltraak encoding.

«Мы планируем открыть IOCCC 30 ближе к концу 2026 года и провести конкурс в течение аналогичного периода времени, завершив его где‑то в конце первого квартала 2027 года», — пояснили организаторы мероприятия.

Читают сейчас

Людям предстоит решить, давать ли AGI сознание: Хассабис о «втором Рубиконе»

22 минуты назад

Людям предстоит решить, давать ли AGI сознание: Хассабис о «втором Рубиконе»

На встрече со студентами Stanford Graduate School of Business глава Google DeepMind и нобелевский лауреат Демис Хассабис получил неожиданный вопрос: чего искусственный интеллект не должен касаться вов

Пожарные в США получили систему для бурения аккумуляторов и тушения электромобилей

25 минут назад

Пожарные в США получили систему для бурения аккумуляторов и тушения электромобилей

Пожарная служба штата Пенсильвания первой в США получила специализированное девайс, разработанное для борьбы с возгораниями аккумуляторов электромобилей. Ознакомиться далее

Порядок в версиях через libs.versions.toml и Bill of Materials

34 минуты назад

Порядок в версиях через libs.versions.toml и Bill of Materials

Продолжаем цикл вебинаров, посвященных современному Gradle для Java-разработчика. Когда версии разбросаны по модулям, один апгрейд библиотеки превращается в ручную правку в десяти местах с риском расс

Dasung представила внешний E-Ink монитор для смартфона Link 2

1 час назад

Dasung представила внешний E-Ink монитор для смартфона Link 2

Китайская Dasung (Dashang Technology) выпустила внешний монитор для смартфона под названием Link 2. Девайс оснащён 6,7-дюймовым монохромным дисплеем на основе электронных чернил с частотой обновления

AWS внедряет в своих ЦОД квазислучайную архитектуру на базе отказоустойчивых сетевых графов

2 часа назад

AWS внедряет в своих ЦОД квазислучайную архитектуру на базе отказоустойчивых сетевых графов

В AWS описали новое техническое девайс веб архитектуры ЦОД, которую внедряют с конца 2024 года. Она базируется на отказоустойчивых сетевых графах (Resilient Network Graphs, RNG) и уже стала стандартом