Open Watcom

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Open Watcom
Watcom logo.png
Тип

Среда разработки программного обеспечения

Разработчики

Watcom,
Sybase,
SciTech Software,
Открытое сообщество

Операционная система

Кроссплатформенное программное обеспечение

Первый выпуск

28 января 2003

Последняя версия

1.9 (июнь 2010)

Состояние

Active

Лицензия

Sybase Open Watcom Public License version 1.0

Сайт

openwatcom.org

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

История[3][править | править исходный текст]

История компилятора начинается в далёком 1965 году, когда четверо студентов Университета Ватерлоо[4] в Канаде под руководством профессора за три месяца работы создали компилятор Фортрана WATFOR.[5] Он работал на платформах 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.[6] В настоящее время проект развивается самостоятельно. К сожалению Open Watcom компилятор не полностью поддерживает стандарт С++, что не позволяет считать его полноценным С++ компилятором и мешает его широкому использованию.

Хотя Sybase больше не продаёт компиляторы Watcom, они доступны как пакет открытого программного обеспечения OpenWatcom с помощью компании SciTech.

Дата Продукт Примечания
1984 Waterloo C для S/370
1985 Начата работа над основой нынешнего кодогенератора
1988 Watcom C 6.0
  • Работа под и генерация кода только для DOS
  • Включены отладчик и набор библиотек времени исполнения
  • Порождаемый код лучший среди компиляторов того времени
1989 Watcom C 7.0
1989 Watcom C 7.0/386
1990 Watcom C 8.0
1990 Watcom C 8.0/386
  • Добавлены компоновщик, библиотекарь, отладчик и профайлер
  • Добавлена графическая библиотека
1991 Watcom C 8.5
1991 Watcom C 8.5/386
  • Поставка с расширителем DOS DOS/4GW
  • Поддержка Windows 3.0 (расширитель Win386)
  • Поддержка Юникода
  • Добавлены исполняемые модули для работы под OS/2
1992 Watcom C 9.0
1992 Watcom C 9.0/386
  • Работа под и генерация кода для OS/2 v2.00
  • Добавлена оптимизация кода для процессора 80486
  • Поддержка базированных указателей (based pointer)
Watcom C 9.01/386
1993 Watcom C/C++ 9.5
1993 Watcom C/C++ 9.5/386
  • Добавлен компилятор C++
  • Добавлена оптимизация кода для процессора Pentium
  • Работа под и генерация кода для Windows NT
1994 Watcom C/C++ 10.0
1995 Watcom C/C++ 10.5
  • Обработка исключений C++ под OS/2 и Win32
  • Поддержка Windows 95 и NT 3.5
  • Возможность удалённой отладки по TCP/IP
1996 Watcom C/C++ 10.6
1997 Watcom C/C++ 11.0
  • Поддержка namespace, RTTI и приведение типов в новом стиле в компиляторе C++
  • Поддержка 64-битных целых чисел
  • Библиотечная поддержка многобайтных знаков
  • Поддержка инкрементальной компоновки
  • Поддержка в компоновщике и билиотекаре форматов объектных модулей COFF и ELF
  • Добавлены клоны утилит Microsoft (с тем же названием, списком опций и функциональностью)
  • Добавлены утилиты в виде DLL для лучшей интеграции со средой разработки
1998 Watcom C/C++ 11.0B
1999 Sybase уведомляет об окончании выпуска (англ.) (end-of-life) Watcom C/C++ 11.0
2000 Sybase анонсирует открытие исходных кодов для утилит Watcom
2001-09-27 Watcom C/C++ 11.0c Beta
2002-12-21 Watcom C/C++ 11.0c
2003-01-28 Open Watcom 1.0
2003-08-12 Open Watcom 1.1
2004-01-07 Open Watcom 1.2
2004-08-03 Open Watcom 1.3
2005-12-14 Open Watcom 1.4
2006-04-26 Open Watcom 1.5
2006-12-15 Open Watcom 1.6
2007-08-18 Open Watcom 1.7
2007-10-23 Open Watcom 1.7a
2008-02-21 Open Watcom 1.8
2010-06-02 Open Watcom 1.9

Платформы[править | править исходный текст]

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

Компиляторы могут работать под управлением (host — платформа разработчика) и компилировать исполнимый код для (target — целевая платформа) операционных систем DOS, OS/2 и Windows. Поддерживается также создание модулей NLM (англ.) для Novell NetWare.

Идёт работа по портированию компиляторов под операционные системы Linux[7] и последние версии BSD (например, FreeBSD), работающие на платформах x86, PowerPC и других.

Open Watcom C/C++ версии 1.4, выпущенный в декабре 2005 года, имеет экспериментальную поддержку Linux x86 как целевой платформы.

Имеется код для поддержки QNX 4.25[8], но для компиляции исполняемых модулей требуются несвободные библиотеки.

Совместимость со стандартом C99[править | править исходный текст]

Производятся постоянные работы над улучшением совместимости компилятора C/C++ со стандартом C99 (ISO/IEC 9899:1999).[9] Пока что это остаётся недокументированной особенностью компиляторов Open Watcom C/C++ до завершения работы по реализации полной поддержки стандарта и задаётся параметром командной строки -za99.

В версии Watcom C/C++ 11.0 уже были включены некоторые расширения языка C, которые позже были стандартизированы в C99. Среди них:

  • комментарии в стиле C++ (однострочные комментарии, начинающиеся с //);
  • непостоянные инициализаторы для локальных агрегаторов или объединений (только в режиме -aa);
  • запятые после последнего элемента в списках перечислений и инициализаторов.

После открытия исходных кодов инструментов Watcom участниками сообщества разработчиков Open Watcom было сделано множество улучшений по поддержке стандарта C99:

  • вариативные макросы (версия OW 1.2);
  • основанные на существующей поддержке __int64 64-битные целые типа long long int (версия OW 1.2);
  • идентификатор __func__ (версия OW 1.2);
  • ключевое слово inline, основано на существующей поддержке __inline (версия OW 1.2);
  • улучшена поддержка широких символов (wide char) (версия OW 1.3);
  • функции библиотеки времени исполнения работают с объектами типа long long int (версия OW 1.3);
  • проектируемые инициализаторы (версия OW 1.4);
  • поддержка ключевого слова restrict (версия OW 1.3, только в режиме влюченной опции -za99);
  • частичная поддержка ключевых слов _Bool, _Complex, _Imaginary (версия OW 1.3, только в режиме влюченной опции -za99);
  • функции работы с памятью для широких символов, т. е. wmemcpy() и ей сопутствующие (версия OW 1.4);
  • объявления в циклах и в любом месте составных выражений (версия OW 1.5);
  • многочисленные усовершенствования библиотеки C и заголовочных файлов.

Версия OpenWatcom 2.0[править | править исходный текст]

Планируется переход к новому поколению инструментов OpenWatcom, и к концу 2013-го года возможен выпуск версии Open Watcom 2.0.[10] Ожидается большой пересмотр проекта, его усовершенствование, включая языки программирования, библиотеки, GUI, а также дополнения в поддерживаемых платформах разработчика и целевых платформах.

Существует неофициальный форк[11] Open Watcom V2 на GitHub[12].

Примечания[править | править исходный текст]

  1. Титульная страница сайта проекта (англ.). Open Watcom. Проверено 6 октября 2008. Архивировано из первоисточника 24 февраля 2012.
  2. Sybase Open Watcom Public License version 1.0 (англ.). Проверено 6 октября 2008. Архивировано из первоисточника 24 февраля 2012.
  3. History (англ.). Open Watcom. Проверено 6 октября 2008. Архивировано из первоисточника 24 февраля 2012.
  4. University of Waterloo
  5. Peter W. Shantz, R. A. German, J. G. Mitchell, R. S. K. Shirley, C. R. Zarnke. WATFOR — The University of Waterloo FORTRAN IV compiler // Communications of the ACM. — ACM, январь 1967. — В. 1. — Т. 10. — С. 41—44. — ISSN 0001-0782. — DOI:10.1145/363018.363059 ISSN 0001-0782 DOI:10.1145/363018.363059
  6. Alt Richmond Inc
  7. Installing Open Watcom on Linux (англ.). Open Watcom. Проверено 21 января 2009. Архивировано из первоисточника 24 февраля 2012.
  8. Настройка OpenWatcom для QNX4. Архивировано из первоисточника 24 февраля 2012.
  9. C99 Compliance (англ.).
  10. Open Watcom 2.0? (англ.). Архивировано из первоисточника 27 мая 2013.
  11. Open Watcom V2 Fork (англ.).
  12. Open Watcom V2 Fork Project on GitHub (англ.).

Ссылки[править | править исходный текст]

-