Победители 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-программа.

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 12

      +13
      Теперь землянам определенно есть, чем удивить пришельцев
        +6
        А что за баг в модуле вычисления размера?
        +4
        эмулятор Адриана Кейбла радует. из «RULE 2 ABUSE DISCLAIMER» его заявки:
        • размер cable3.c равен 4043 байта (половина от 8086)
        • iocccsize -i < cable3.c возвращает 1979 (год выпуска SCP200B (Seattle Computer Products), первого компьютера основанного на 8086)
          +6
          Вот интересно, стать победителем такого соревнования — полезно для карьеры или наоборот? «Что вы лучше всего умеете делать? — Я лучше всего пишу обфусцированный код!».
            +5
            «Пишу код, максимально соответствующий требованиям заказчика.»
              0
              Пишу код, который только я понимаю как работает. :)
              +3
              Думаю код сначала пишут в обычном виде, а потом уж его сокращают и обфусцируют.
                0
                Не исключено, что делают это не вручную. Во всяком случае в начале.
                0
                Ну если вакансия про программиста для открыток на каком-нибудь PIC, вас оторвут с руками.
                +1
                Будь бы я девушкой, захотел бы от этого Адриана детей :)

              Only users with full accounts can post comments. Log in, please.