Победители 22-го конкурса IOCCC

от автора

Опубликован исходный код программ-победителей 22-го конкурса программ с обфусцированным кодом на C. Участвовать в конкурсе могут готовые программы размером меньше 4096 байт, при этом количество значимых символов, без учёта пробелов, знаков табуляции и знаков; ( ), не должно превышать 2048. Впрочем, в этом году многие участники воспользовались эксплоитом для бага в модуле вычисления размера программы, так что в 2013 году на конкурс были представлены, пожалуй, самые продвинутые программы за все годы проведения соревнований.

Например, вызывает искреннее восхищение эмулятор 8086-компьютера размером 4043 байта, исходный код, который поддерживает полный набор инструкций 8086/186, поддерживает флоппи-диски и HDD и PC-спикер.

В эмуляторе можно запускать почти любое программное обеспечение. Автор проверял его с операционными системами (MS-DOS 6.22, FreeDOS 0.82pl3, Windows 3.0, DESQview 2.8, профессиональным ПО (Lotus 1-2-3 2.4 and AsEasyAs 5.7 for DOS, Excel 2.1 for Windows, AutoCAD 2.5, WordStar 4), языками программирования (QBASIC, GWBASIC, Turbo C++), играми (Carrier Command, Police Quest, бесплатные игры Windows) и бенчмарками (Manifest, Microsoft MSD, InfoSpot, CheckIt). Всё вышеперечисленное работало нормально.

После установки эмулятора автор Адриан Кейбл (Adrian Cable) предлагает скачать образ HDD (40 МБ) с набором софта для 8086.

Скриншоты эмулятора

Правда, автор немного схитрил, перенеся часть кода в BIOS, но подобный креативный «обход правил» конкурса даже поощряется на IOCCC.

Ещё одна выдающаяся программа среди 15 победителей конкурса — работа Кристофера Миллса, который выигрывал на конкурсе IOCCC ещё в 1993 году, то есть 20 лет назад. После компиляции и запуска программа создаёт веб-сервер на порту localhost:8224, куда можно зайти браузером и увидеть 3D-часы, которые динамически рендерятся и отображают текущее время.

Исходный код веб-сервера/часов/PNG-кодера/трассировщика выглядит так.

Ну, а абсолютным победителем соревнования стала ещё одна программа Адриана Кейбла — программа распознавания символов в BMP-картинках. С размером 4096 байт, похоже, это самая маленькая в мире OCR-программа.

ссылка на оригинал статьи http://habrahabr.ru/post/208334/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *