Результаты 22 чемпионата по написанию запутанного кода на языке Си
5 января 2014 года
Опубликованы исходные тексты работ, победивших в двадцать втором конкурсе IOCCC (International Obfuscated C Code Contest), целью которого было написание наиболее запутанного и трудноразбираемого кода на языке Си.
Участвующие в конкурсе работы, с одной стороны, должны препятствовать анализу кода и пониманию сути решаемой задачи, но, с другой стороны, код должен быть интересен и чем-то примечателен, например, быть необычно оформленным или выделять неожиданные стороны языка Си. Размер исходного кода программы не должен превышать 4096 байт, программа должна собираться и выполнять какое-либо осмысленное действие.
Лучшие работы:
- Adrian Cable (Архивная копия от 12 ноября 2020 на Wayback Machine) - эмулятор IBM PC, способный запустить MS DOS и такие программы, как Windows 3.0, Excel, MS Flight Simulator, AutoCAD, Lotus 1-2-3;
- Christopher Mills (Архивная копия от 29 апреля 2017 на Wayback Machine) - HTTP-сервер, при открытии страницы отображающий 3D-часы;
- Adrian Cable (Архивная копия от 18 декабря 2016 на Wayback Machine) - система распознавания текста;
- Yves-Marie Morgan (Архивная копия от 17 февраля 2014 на Wayback Machine) - графический (X11) симулятор солнечной системы, отображающий позиции 8 планет по заданной дате;
- Don Yang (Архивная копия от 19 апреля 2015 на Wayback Machine) - горизонтальное или вертикальное слияние файлов. При первой сборке получается программа для горизонтального слияния, используя которую для слияния двух файлов с кодом текущей программы получается приложение для вертикального слияния (./horizontal_cat misaka.c misaka.c misaka2.c).
- Yusuke Endoh (Архивная копия от 18 апреля 2015 на Wayback Machine) - реализация SKI-исчисления;
- Qiming Hou (Архивная копия от 29 апреля 2017 на Wayback Machine) - система трассировки лучей;
- Arch Robison (Архивная копия от 18 апреля 2015 на Wayback Machine) - вычислитель произвольных арифметических выражений (например, echo '10*(20*(1+(9*5)))/3' | ./robison). Код оформлен в виде набора функций str* и memset;
- Michael Birken (Архивная копия от 18 декабря 2016 на Wayback Machine) - игра в тетрис. Код оформлен в виде сцены игры в тетрис;
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.