Open Watcom
![]() |
|
| Тип | |
|---|---|
| Разработчики |
Watcom, |
| Операционная система | |
| Первый выпуск |
28 января 2003 |
| Последняя версия |
1.9 (июнь 2010) |
| Состояние |
Active |
| Лицензия | |
| Сайт | |
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 |
|
| 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 |
|
| 1992 | Watcom C 9.0 | |
| 1992 | Watcom C 9.0/386 |
|
| Watcom C 9.01/386 |
|
|
| 1993 | Watcom C/C++ 9.5 | |
| 1993 | Watcom C/C++ 9.5/386 |
|
| 1994 | Watcom C/C++ 10.0 |
|
| 1995 | Watcom C/C++ 10.5 |
|
| 1996 | Watcom C/C++ 10.6 |
|
| 1997 | Watcom C/C++ 11.0 |
|
| 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);
- основанные на существующей поддержке
__int6464-битные целые типа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, а также дополнения в поддерживаемых платформах разработчика и целевых платформах.
Примечания[править]
- ↑ Титульная страница сайта проекта (англ.). Open Watcom. Архивировано из первоисточника 24 февраля 2012. Проверено 6 октября 2008.
- ↑ Sybase Open Watcom Public License version 1.0 (англ.). Архивировано из первоисточника 24 февраля 2012. Проверено 6 октября 2008.
- ↑ History (англ.). Open Watcom. Архивировано из первоисточника 24 февраля 2012. Проверено 6 октября 2008.
- ↑ University of Waterloo
- ↑ 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
- ↑ Alt Richmond Inc
- ↑ Installing Open Watcom on Linux (англ.). Open Watcom. Архивировано из первоисточника 24 февраля 2012. Проверено 21 января 2009.
- ↑ Настройка OpenWatcom для QNX4. Архивировано из первоисточника 24 февраля 2012.
- ↑ C99 Compliance (англ.).
- ↑ Open Watcom 2.0? (англ.). Архивировано из первоисточника 27 мая 2013.
Ссылки[править]
- Paul Hsieh. The WATCOM C/C++ Programmer’s FAQ (англ.) (Revision 4.12, 4 мая 2008). Архивировано из первоисточника 24 февраля 2012. Проверено 6 октября 2008.
- Rick Grehan. Watcom C/C++ Gets a New Face // BYTE. — октябрь 1994. (англ.)
| IDE (сравнение) | |
|---|---|
| Универсальные |
Anjuta • Visual Studio • NetBeans • Eclipse • KDevelop • Xcode • Geany • MonoDevelop • Aptana Studio • Open Watcom • Komodo • Kylix |
| Си/C++ | |
| Бейсик |
PowerBASIC • Turbo Basic • Visual Basic • QBasic • QuickBASIC • PureBasic |
| Java |
WebLogic • BlueJ • DrJava • Greenfoot • JCreator • JDeveloper • IntelliJ IDEA • JBuilder • JGRASP |
| Паскаль |
Delphi • Lazarus • MSE • PascalABC.NET • MIDletPascal • PocketStudio • Morfik • Turbo Pascal • QuickPascal • Visible Pascal |
| PHP |
Aptana Studio with PHP plugin • Delphi for PHP (RadPHP) • Eclipse PDT • Zend Studio • NuSphere PhpED • PHP Expert Editor • phpStorm • Dreamweaver |
| Python |
Boa Constructor • Eclipse+PyDev • Eric • IDLE • Komodo • PyCharm • PyScripter • SPE • Wing IDE |
| ActionScript | |
| Ruby | |
-


