Open Watcom


Open Watcom — проект сообщества открытого кода по поддержке и развитию многоплатформных компиляторов Watcom C, C++ и Fortran и сопутствующих программ[1]. Лицензия открытого ПО от Sybase допускает лишь некоммерческое использование пакета Open Watcom частными лицами[2].

История компилятора начинается в 1965 году, когда четверо студентов Университета Ватерлоо в Канаде под руководством профессора за три месяца работы создали компилятор Фортрана WATFOR[4]. Он работал на платформах IBM 7040, IBM System/360 и DEC PDP-11. В 1980 году была разработана новая версия для IBM 360 и IBM PC, которая поддерживала стандарт Фортран 77. Через год была образована фирма Watcom, которая в 1988 году представила компилятор C.

Компиляторы Watcom для языков Си и C++ ценились разработчиками программ под DOS за генерацию компактного и быстрого кода, а также за то, что эти компиляторы одними из первых предложили поддержку защищённого режима процессоров Intel 80386. В середине 1990-х некоторые игры под DOS, такие как Doom, Descent, Duke Nukem 3D, Warcraft II были скомпилированы Watcom C.

В 2003 году, после проблем с новой версией компилятора, а также невозможностью конкурировать с фирмой Microsoft, фирма Sybase, которая приобрела Watcom в 1995 году, решила открыть исходные коды компиляторов. Так был создан проект Open Watcom под эгидой фирмы SciTech Software. Компилятор Open Watcom не полностью поддерживает стандарт C++, что не позволяет считать его полноценным компилятором C++ и мешает его широкому использованию, однако проект находит своё применение при создании программ для устаревших систем DOS и OS/2.

Хотя Sybase больше не продаёт компиляторы Watcom, они доступны как пакет открытого программного обеспечения OpenWatcom с помощью компании SciTech. После выпуска версии 1.9 проект прекратил разработку, и сопровождение было продолжено в форке OpenWatcom v2, выпустившем версию 2.0 со множеством улучшений и исправлений[5].

Исходный код компиляторов портируем и, подобно многим другим свободным компиляторам, вроде gcc, их кодогенератор (backend) можно настроить на другую целевую платформу.