Международный конкурс обфускированного кода IOCCC 2025: 23 победителя, эмулятор в 366 байт и игра в свой исходный код

Международный конкурс обфускированного кода (IOCCC, 29-я сессия) объявил результаты 2025 года с 23 победителями. Конкурс был возрождён из четырёхлетнего перерыва в прошлом году и продолжает привлекать экстраординарные примеры программирования на C.
Одна из главных побед, реализация Адриана Кейбла эмулятора компьютера Subleq (одноинструкционный набор, построенный на команде вычитания и условного ветвления). Это полностью рабочий эмулятор, который использует 366 байт кода и выводит графику через SDL. Источник, всего 9 строк; более читаемая версия, 91 строка. Демонстрация показывает, как эмулятор генерирует множество Мандельброта и играет в Pong, а затем запускает Linux с приложениями на эмулируемой архитектуре. Проект имеет практическое применение в сохранении исторического ПО, Eternal Software Initiative использует Subleq в качестве архитектуры для эмуляции программ после прекращения поддержки их оригинального оборудования.
Ник Крэйг-Вуд выиграл три номинации: эмулятор Original Nintendo Game Boy (66 строк C, отформатированный как консоль), фрактальный эмулятор Commodore 64 (написанный на языке FRACTRAN в стиле Джона Конвея) и реализацию Forth на Unicode.
Юсукэ Эндо выиграл трижды: симулятор лампового индикатора Nixie (визуализирует цифры в собственном исходном коде), генератор фигур Лихтенберга и саморефакторящийся код, который переписывает себя и выводит исходный код diff-утилиты, которой пользовался.
Другие примечательные победы: Йона Уэллэнберг создал Pong-квайн, программу, которая играет в Pong, переформатируя собственный исходный код при каждом ходу; в результате каждый раунд игры выводит обновлённый исходный текст, и игра продолжается путём повторной компиляции выходных данных. Томоя Ишида написала генератор пятиминутной ambient-композиции с синтетическими звуками морского берега всего в 36 строк. Неизвестный тайваньский программист (jingp49) создал программу, выглядящую как ТАРДИС из Doctor Who и выводящую ASCII-анимацию открытия титров сериала.
Судьями конкурса выступают Лэндон Курт Нолл и Леонид А. Бруххис. Для каждого победителя они придумывают уникальную номинацию.
Ключевые факты
- IOCCC 2025 провёл 23 победителя, включая трёх программистов с тройными победами каждый
- Эмулятор компьютера Subleq занимает 366 байт, воспроизводит Мандельброт и Pong, способен запустить Linux, имеет реальное применение в сохранении исторического ПО
- Pong-квайн Йоны Уэллэнберга одновременно играет в игру и переписывает собственный исходный код с каждым ходом
- Game Boy эмулятор на 66 строк C, реализация Forth на Unicode и множество других творческих решений демонстрируют мастерство в минимизации кода
- Конкурс возрождён из четырёхлетнего перерыва, остаётся популярной платформой для демонстрации экстремальной программистской изобретательности
Почему это важно
IOCCC демонстрирует граничные возможности языка C и мастерство программистов в создании функциональных программ в условиях экстремальных ограничений. Работа Адриана Кейбла с Subleq имеет практическую ценность для проектов сохранения исторического ПО, архитектура, предназначенная для легкой эмуляции, помогает сохранить программное обеспечение после того, как его оригинальная платформа устарела.
Кому это важно
Программистам на C и разработчикам низкоуровневого ПО, конкурс показывает творческие подходы к оптимизации и минимизации кода. Специалистам по сохранению цифрового наследия, демонстрирует инструменты и архитектуры для долгосрочного сохранения ПО. Энтузиастам компьютерной истории и любителям исторических платформ (Game Boy, Commodore 64).
Как это применить
Эмулятор Subleq может служить основой для проектов сохранения ПО, позволяя запускать исторические программы на современных системах. Техники минимизации кода (как в эмуляторе Game Boy на 66 строк) применимы при разработке встроенного ПО или критичного по объёму кода. Концепция квайна, программы, выводящей свой исходный код, имеет педагогическую ценность и применяется в головоломках и задачах на программирование.
Можно ли доверять
The Register является авторитетной технической публикацией. Информация о IOCCC основана на официальных результатах конкурса, опубликованных судьями Лэндоном Ноллом и Леонидом Бруххисом. Ссылки на видеозаписи церемонии, исходные коды победителей и объяснения судей доступны, что позволяет независимо проверить описанные достижения.
Риски и подводные камни
Обфускированный код, по определению, предназначен для затруднения чтения и понимания, работы победителей IOCCC не должны служить примерами для производственного кода. Минимизация размера кода может привести к снижению производительности или затруднению отладки. Эмулятор Subleq, несмотря на практическое применение, остаётся демонстрационным проектом, требующим дополнительной разработки для использования в высоконадёжных системах сохранения ПО.
«Вы можете передать исходный код на открытке с местом для адреса и почтовой марки. Это всего девять строк длиной.»
— The Register, о коде эмулятора Subleq