Open Watcom
| Open Watcom | |
|---|---|
| | |
| | |
| Тип | Среда разработки программного обеспечения |
| Разработчики |
Watcom, Sybase, SciTech Software, Открытое сообщество |
| Написана на | Си |
| Операционная система | Кроссплатформенное программное обеспечение |
| Дата выпуска | 28 января 2003 |
| Последняя версия | 1.9 (июнь 2010) |
| Состояние | Активное |
| Лицензия | Sybase Open Watcom Public License version 1.0 (разрешено некоммерческое использование частными лицами) |
| Сайт | openwatcom.org |
Open Watcom — проект сообщества открытого кода по поддержке и развитию многоплатформных компиляторов Watcom C, C++ и Fortran и сопутствующих программ[1]. Лицензия открытого ПО от Sybase допускает лишь некоммерческое использование пакета Open Watcom частными лицами[2].
История
История[3] компилятора началась в 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) можно настроить на другую целевую платформу.
Компиляторы могут работать под управлением (host — платформа разработчика) и компилировать исполнимый код для (target — целевая платформа) операционных систем DOS, OS/2 и Windows. Поддерживается также создание модулей NLM[англ.] для Novell NetWare.
Идёт работа по портированию компиляторов под операционные системы Linux[6] и последние версии BSD (например, FreeBSD), работающие на платформах x86, PowerPC и других.
Open Watcom C/C++ версии 1.4, выпущенный в декабре 2005 года, имеет экспериментальную поддержку Linux x86 как целевой платформы.
Имеется код для поддержки QNX 4.25[7], но для компиляции исполняемых модулей требуются несвободные библиотеки.
Совместимость со стандартом C99
Производятся постоянные работы над улучшением совместимости компилятора C/C++ со стандартом C99 (ISO/IEC 9899:1999).[8] Пока что это остаётся недокументированной особенностью компиляторов 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 и заголовочных файлов.
Примечания
- ↑ Титульная страница сайта проекта (англ.). Open Watcom. Дата обращения: 6 октября 2008. Архивировано из оригинала 24 февраля 2012 года.
- ↑ Sybase Open Watcom Public License version 1.0 (англ.). Дата обращения: 6 октября 2008. Архивировано из оригинала 24 февраля 2012 года.
- ↑ History (англ.). Open Watcom. Дата обращения: 6 октября 2008. Архивировано из оригинала 24 февраля 2012 года.
- ↑ 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. — Т. 10, вып. 1. — С. 41—44. — ISSN 0001-0782. — doi:10.1145/363018.363059. ISSN 0001-0782 doi:10.1145/363018.363059
- ↑ Open Watcom v2 Fork. Дата обращения: 17 ноября 2020. Архивировано 25 ноября 2020 года.
- ↑ Installing Open Watcom on Linux (англ.). Open Watcom. Дата обращения: 21 января 2009. Архивировано из оригинала 24 февраля 2012 года.
- ↑ Настройка OpenWatcom для QNX4. Архивировано из оригинала 24 февраля 2012 года.
- ↑ C99 Compliance (англ.). Архивировано из оригинала 6 февраля 2009 года.
Ссылки
- Paul Hsieh. The WATCOM C/C++ Programmer’s FAQ (англ.) (4 мая 2008). Дата обращения: 6 октября 2008. Архивировано 24 февраля 2012 года.
- Rick Grehan. Watcom C/C++ Gets a New Face (англ.) // BYTE. — октябрь 1994. Архивировано из оригинала 20 ноября 2008 года.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.