OpenWatcom / Watcom C/C++

Внимание! В печатном варианте статьи в журнале "Программист" 9/2002 были приведены неверные рисунки 8 и 11, вот правильные графики:

Если вами будут замечены другие неточности или опечатки, сообщите мне об этом пожалуйста.

Эта страница посвящена моему любимому средству разработки - компилятору Watcom C/C++. Это многоплатформенный (DOS, Extended DOS, все Windows, OS/2, QNX, Novell NLMs, AutoCAD ADS, ROM-based и т.д.) оптимизирующий компилятор. Компилятор был разработан фирмой Powersoft Corp. (Watcom International Corp.), которая в дальнейшем была куплена компанией Sybase, Inc. Сейчас он обрел второе дыхание, благодаря тому, что разработчики из SciTech Software (http://www.scitechsoft.com) организовали группу OpenWatcom (http://www.openwatcom.org), целью которой является выпуск компилятора Watcom как продукта OpenSource. Последние версии компиляторов Watcom C/C++ 11.0c и Watcom Fortran 11.0c, а также предварительные версии OpenWatcom вы можете найти на сервере FTP OpenWatcom (ftp://ftp.openwatcom.org). В ближайшее время ожидается появление окончательной версии OpenWatcom 1.0, после чего любой сможет принять участие в дальнейшей разработке компиляторов и деятельности группы OpenWatcom.

Следует отметить стремление разработчиков компилятора максимально "унифицировать" его с компиляторами других производителей путем введения поддержки элементов, позволяющих обеспечить максимальную совместимость исходного кода с другими компиляторами, в особенности Microsoft Visual C++, а также добавлением утилит, эмулирующих работу соответствующих компонентов от других производителей: make, nmake, cl386, link386, ms2wlink, lib386, hc, rc и т.д. Также следует отметить очень хорошее качество оптимизации кода, несмотря на то, что последние улучшения в оптимизатор вносились более трех лет назад. Всем, кто интересуется вопросом сравнения качества оптимизации компилятора Watcom с другими современными компиляторами, советую посмотреть мою статью в сентябрьском номере журнала "Программист" (http://www.programme.ru, номер 9 за 2002). Исходные тексты и исполняемые файлы тестов, приведенных в статье, вы можете взять здесь.

По непонятным для меня причинам, наиболее стабильной и безошибочной считается версия Watcom C/C++ 10.6. Позволю себе не согласиться с этим, так как достаточно посмотреть список доработок и исправлений в версиях 11.0/a/b/c, что бы понять, что это далеко не так. Также из значительных отличий одиннадцатой версии компилятора Watcom можно отметить Microsoft-совместимую поддержку встроенного ассемблера через ключевое слово _asm, поддержку MMX ассемблером, поддержку типа long long - __int64, дополнительный режим оптимизации branch prediction, изменения в выравнивании членов структур по умолчанию, поддержку компилятором C++ ключевых слов mutable, explicit, поддержку пространств имен namespace, описания типов reinterpret_cast, const_cast, static_cast, также добавлена поддержка RTTI (Run-Time Type Information), произведены исправления и доработки в стандартных библиотеках и т.д. Значительно обновлен и расширен набор поставляемых с компилятором средств - введена поддержка MMX в ассемблер wasm, дизассемблер wdis, отладчики wd и wdw, добавлена поддержка форматов COFF и ELF в компоновщик wlink, библиотекарь wlib и wdis, incremental link в wlink, поддержка makefile'ов в формате Microsoft и т.д.

Из недостатков компилятора C++ можно отметить неполную совместимость с последним стандартом и отсутствие STL, но это не такая большая проблема, так как к компилятору без особых проблем "прикручивается" STLport (http://www.stlport.org, потребуется несколько исправлений в файлах из комплекта STLport 4.5.3, более подробно смотрите здесь).

Для компилятора Watcom C++ существует визуальная среда быстрой разработки приложений (RAD) Power++ (Optima++), вполне способная конкурировать с BorlandBuilder, особенно учитывая тот факт, что библиотека классов, в отличие от Borland, изначально разрабатывалась на C++, и в полной мере раскрывает все его возможности. К сожалению на данный момент ее разработка приостановлена на версии 2.5. Обиднее всего то, что многие наработки по компилятору Watcom и среде Power++ теперь используются в других продуктах Sybase, таких как Power J, PowerBuilder и др. Среде Power++ и программированию под нее посвящен сайт AbsolutePower++ (http://www.neatech.ch/powerpp/), там же вы можете найти и некоторые компоненты для нее. Также к Power++ без проблем подключается последняя версия компилятора OpenWatcom C++.

Хотелось бы пожелать успехов группе OpenWatcom, дальнейшего развития и совершенствования компиляторов Watcom, а также "реанимирования" и дальнейшего развития визуальной среды разработки Power++.


Возврат к основной странице