Опубликован исходный код программ-победителей 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 лет назад. После компиляции и запуска программа создаёт веб-сервер на порту http://localhost:8224
. Туда можно зайти браузером и увидеть 3D-часы, которые динамически рендерятся и отображают текущее время.
Исходный код веб-сервера/часов/PNG-кодера/трассировщика выглядит так.
Ну, а абсолютным победителем соревнования стала ещё одна работа Адриана Кейбла — программа распознавания символов в BMP-картинках. С размером 4096 байт, похоже, это самая маленькая в мире OCR-программа.
Автор: alizar