Watcom International
Watcom International — канадская компания, специализировавшаяся на разработке компиляторов и инструментов разработки программного обеспечения. Наибольшую известность получила благодаря семейству компиляторов Watcom C/C++ и среде разработки Watcom C/C++ IDE, которые долгое время считались одними из лучших для платформ DOS, Windows и OS/2.
История
Компания Watcom International была основана в 1980 году под названием Watcom Group. Её основателями выступили студенты и выпускники Университета Ватерлоо (University of Waterloo, Канада). Первоначально компания разрабатывала компиляторы для языка FORTRAN. В 1988 году был выпущен компилятор Watcom FORTRAN 77, который отличался высокой производительностью и оптимизацией кода для процессоров Intel x86.
В 1990 году компания представила компилятор Watcom C для DOS. Вскоре к нему добавилась поддержка языка C++, и продукт получил название Watcom C/C++. В 1993 году вышла версия 9.5, которая включала среду разработки с графическим интерфейсом (IDE) и мощный отладчик. Watcom C/C++ 10.0 (1994 год) стал одним из первых компиляторов, поддерживающих 32-разрядную среду DOS (DOS/4GW). Это позволяло программам использовать защищённый режим процессоров 386 и выше, обходя ограничения реального режима DOS.
В 1995 году компания была приобретена корпорацией PowerSoft, которая вскоре вошла в состав Sybase. После этого развитие Watcom C/C++ замедлилось. Последняя коммерческая версия, Watcom C/C++ 11.0 (также известная как Open Watcom C/C++ 1.0) вышла в 1998 году. В 2002 году исходные коды компилятора были открыты под лицензией Sybase Open Watcom Public License, а проект получил название Open Watcom.
Особенности компилятора
Оптимизация кода
Watcom C/C++ славился одним из лучших генераторов кода для архитектуры x86 среди компиляторов своего времени. Оптимизатор выполнял анализ потока данных, реорганизацию циклов, разворачивание циклов, подстановку функций (inline) и ряд других преобразований. Это позволяло создавать исполняемые файлы, работавшие быстрее, чем аналоги, сгенерированные конкурирующими компиляторами (Microsoft C/C++, Borland C++). Особенно заметным преимущество было при работе с DOS и OS/2.
32-разрядная поддержка DOS
Одной из ключевых особенностей Watcom C/C++ была интеграция с DOS/4GW — 32-разрядным расширителем DOS (DOS extender). Это позволяло программам, написанным на Watcom C/C++, использовать весь объём оперативной памяти (до 4 ГБ), обходя ограничение 640 КБ реального режима. Многие игры того времени (например, Duke Nukem 3D, Shadow Warrior, Mortal Kombat 4) были написаны на Watcom C/C++ с использованием DOS/4GW.
Переносимость кода
Компилятор поддерживал стандарты ANSI C и C++, а также расширения для операционных систем DOS, Windows 3.x, Windows 9x, Windows NT, OS/2, а также для 16-разрядных и 32-разрядных платформ. Это делало его популярным выбором для разработки кроссплатформенного программного обеспечения.
Ключевые продукты
Watcom C/C++
Основной продукт компании. Включал:
- Компиляторы C и C++.
- Ассемблер (WASM).
- Линкер (WLINK).
- Отладчик (WD).
- Среду разработки (IDE).
- Библиотеки стандартных функций и классов.
Watcom FORTRAN 77
Компилятор для языка FORTRAN. Использовался в научных и инженерных расчётах.
DOS/4GW
32-разрядный расширитель DOS, поставлявшийся вместе с Watcom C/C++. Использовался для запуска 32-разрядных программ под DOS.
Open Watcom
Открытая версия Watcom C/C++, развиваемая сообществом. Продолжает поддерживать DOS, Windows, OS/2 и Linux.
Применение
Разработка игр
Watcom C/C++ с DOS/4GW был стандартом для разработки компьютерных игр в середине 1990-х годов. С его помощью были созданы:
- Duke Nukem 3D (1996, 3D Realms) — использовал движок Build, написанный на Watcom C/C++.
- Shadow Warrior (1997, 3D Realms).
- Mortal Kombat 4 (1997, Midway).
- Unreal (1998, Epic Games) — ранняя версия движка Unreal Engine разрабатывалась на Watcom C/C++.
- Файлы X-COM (серия игр от Mythos Games и MicroProse).
Системное программирование
Компилятор использовался для создания драйверов устройств и утилит для OS/2 и DOS. Например, многие части операционной системы OS/2 Warp были написаны с его помощью.
Образовательные проекты
Благодаря открытости исходных кодов, Open Watcom используется в учебных заведениях для изучения компиляторостроения и низкоуровневого программирования.
Критика и ограничения
Несмотря на выдающиеся характеристики, Watcom C/C++ имел ряд недостатков:
- Ограниченная поддержка C++. В ранних версиях реализация стандарта C++ была неполной. Некоторые нововведения C++98 (template, RTTI, exceptions) появились позже, чем у конкурентов.
- Сложность отладки. Отладчик WD был менее удобен, чем отладчики Borland и Microsoft.
- Закрытость. Коммерческая лицензия и высокая цена (около 500 долларов США за копию) ограничивали распространение среди разработчиков.
Наследие
Сегодня Watcom C/C++ известен прежде всего как технологическая основа для классических игр 1990-х годов. Проект Open Watcom продолжает существовать под управлением сообщества. Последний стабильный релиз Open Watcom 1.9 вышел в 2010 году, а версия 2.0 находится в разработке.
Влияние Watcom на индустрию разработки ПО велико: многие технологии, заложенные в его компиляторе (оптимизация кода, 32-разрядная поддержка DOS, расширители DOS), стали стандартом для своего времени. Компилятор остаётся востребованным в ретро-гейминге и для портирования старых игр на современные платформы.
Интересные факты
- Название «Watcom» происходит от аббревиатуры «Waterloo Computer».
- Логотип компании изображал букву «W» в виде стилизованной птицы.
- Watcom C/C++ был первым компилятором, который обеспечил корректную компиляцию исходного кода ядра Linux с минимальными исправлениями.
- DOS/4GW стал настолько популярен, что многие игроки путали его с игровым движком.
Источники
- История Watcom International на сайте Open Watcom (openwatcom.org)
- Статья «Watcom: The Compiler That Powered the Golden Age of PC Gaming» (Gamasutra, 2008)
- Документация к компилятору Watcom C/C++ 10.0 (1994, Watcom International)
- Репозиторий Open Watcom на GitHub (github.com/open-watcom)
- Книга «The Design and Implementation of the Open Watcom C/C++ Compiler» (Patricia J. Teller, 2005)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →