Мощь Watcom

... С тех пор Watcom С++ становится практическим стандартом при программировании для MS-DOS...

В последние годы все большую популярность приобретает визуальное программирование. Это достаточно легко понять, поскольку для очень широкого класса задач визуальные средства позволяют быстро разрабатывать относительно эффективные продукты, при этом требования к квалификации разработчика не слишком высоки, нет необходимости вникать в системный аспект программирования, он, как правило, замаскирован. Особенно актуальны такие средства разработки на отечественном рынке, поскольку у нас до 90% всех разрабатываемых продуктов - это клиенты баз данных, а как раз их разработка идеально автоматизируется при помощи визуальных средств. В связи с вышесказанным некоторые пророчат скорую смерть классическому программированию путем написания исходного кода почти целиком вручную, однако вряд ли это произойдет. Для обширного класса задач требуется принципиально новый подход и интерфейс (драйверы устройств, игры, системы автоматизации производства и др.), и тут визуальные средства не дают практически никаких преимуществ, с другой стороны, для тех же задач необходима максимально высокая производительность кода, а визуальные средства обязательно ее снижают. Наконец, как это ни странно для многих, огромное количество приложений (особенно игр) все еще разрабатывается под MS-DOS (и на это есть серьезные причины), в таком случае визуальные средства - вообще не помощники.

В таких случаях используются обычные, давно привычные компиляторы. И, особенно если речь идет о необходимости создания высокоэффективного кода, в первую очередь компиляторы с языков C/C++. Еще несколько лет назад негласным стандартом компилятора C в нашей стране (и не только) был Borland C++. Многие пользуются им и по сей день, однако он является морально устаревшим хотя бы уже потому, что не поддерживает генерацию 32-битного кода. С другой стороны, имеется достаточный выбор компиляторов, имеющих такую возможность.

В этой статье речь пойдет о без сомнения лучшем из существующих коммерческих компиляторов C++ - Watcom C/C++. Именно этот продукт был первым генератором 32-битного объектного кода для MS-DOS. Компилятор является кроссплатформным, снабжен многочисленными библиотеками и инструментами отладки и оптимизации, хорошо документирован. Фирма Watcom представляет свой продукт на рынке уже около десяти лет. Где-то в 1992-1993 году Watcom сильно снизил цены на Watcom C/C++ (с 1200$ до 400$) и начал активную рекламную компанию в таких журналах, как "BYTE" и "PC Magazine" (к тому времени уже вышла версия 9.0). Рекламная кампания строилась на утверждениях примерно такого типа: "Watcom C/C++ генерирует код в по крайней мере вдвое более эффективный, чем ваш 16-битный компилятор, а обычно - примерно в пять раз более эффективный". Как ни странно, эти обещания соответствовали истине! Borland и Microsoft пришлось сильно потеснится на рынке компиляторов. Но по-настоящему заговорили о Watcom C/С++ c выходом знаменитого DOOM. Утверждение программистов DOOM о том, что ассемблер практически не использовался при программировании, повергло многих в шок.

С тех пор Watcom С++ становится практическим стандартом при программировании для MS-DOS. Продукты, откомпилированные с помощью Watcom, узнать очень легко - все они начинаются с запуска DOS4GW.EXE - расширителя MS-DOS фирмы Watcom. Это, например, игры Raptor, System Shock, Descent, Magic Carpet, NASCAR Racing, Terminal Velocity и другие. Кроме того, несмотря на то, что самой сильной стороной Watcom безусловно является программирование для MS-DOS, внимание на компилятор обратила фирма IBM, и многие продукты для OS/2 откомпилированы именно им. Многие ругали то, что, работая с Watcom C/С++, приходится часто иметь дело с командной строкой, но, начиная с версии 10.0, в состав продукта входит IDE.

Что же делает Watcom C/C++ столь популярным? В первую очередь, это очень эффективный компилятор, а также набор инструментов, предоставляющий практически неограниченные возможности по оптимизации и отладке кода. Кроме того, привлекательным Watcom C/C++ делает большой набор библиотек (стандартных и поставляемых дополнительно, а также распространяемых по Internet бесплатно), наличие большого набора облегчающих разработку инструментов и возможность легко переносить код с одной операционной системы на другую. Остановимся на всех этих чертах подробнее.

Watcom C/C++ поддерживает разработку для следующих операционных систем: MS-DOS (16 и 32 бит), Windows (все версии, а также поддержка MFC и совместимость по библиотекам с Visual C++), OS/2, QNX, Novell NLMs, AutoCAD. Компилятор осуществляет оптимизацию автоматически, при этом параметры оптимизации могут настраиваться, для дополнительной оптимизации в состав поставки входят специальные самплер (сборщик статистической информации о том, как часто исполняются те или иные отрезки кода) и профайлер. Совместное использование этих двух инструментов позволяет поднимать скорость исполнения кода до просто фантастических пределов. В качестве отладочных средств в состав пакета входят отладчик и дизассемблер. Имеется возможность генерации отладочной информации для внешнего отладчика, включая популярный SoftIce.

В состав поставки, кроме стандартных библиотек C, входят также специальные библиотеки поддержки мультимедиа, библиотеки x86, позволяющие максимально оптимизировать исполняемый код для конкретного процессора (имеется возможность оптимизации конвейерных вычислений на Pentium), кроме того, имеется поддержка Direct X (хотя на самом деле не Watcom поддерживает Direct X, а Direct X поддерживает Watcom, Microsoft не осмелилась проигнорировать разработчиков на Watcom и включила в состав Direct X все необходимые компоненты для совместимости с Watcom C/С++) и, как было сказано выше, совместимость по библиотекам с Visual C++. К тому же, не поддающееся исчислению количество библиотек поставляется дополнительно и распространяется бесплатно по Internet. В частности, из дополнительных библиотек можно отметить Microsoft Games SDK на основе Direct X, а также Intel's RDX. В состав поставки включен специальный менеджер библиотек, а также компоновщик.

Из сервисных инструментов следует упомянуть в первую очередь IDE. Также имеется набор стандартных инструментов, облегчающий разработку для Windows, главным образом это ревизоры системных ресурсов. Но, вообще-то, нельзя говорить о каком-то конкретном ограниченном наборе инструментов для Watcom С++, поскольку постоянно производятся и поставляются все новые (коммерческие и бесплатные).

Вообще же говоря, Watcom C предлагает такие богатые возможности настройки и модификации, что интегрировать его можно почти с любым инструментом или библиотекой (хотя, возможно, для этого придется написать некоторое количество кода).

Watcom C/C++ использует дополнительно две новые модели памяти - Flat и Large32. Flat для 32-битного программирования - то же, что и Tiny для 16-разрядного, Large32 соответствует модели Large. Обе новых модели позволяют адресовать 4G памяти.

Имеется возможность использования встроенного ассемблера, для повышения совместимости параметры ассемблерным процедурам передаются с использованием #pragma.

Таким образом, Watcom С/С++ - прекрасный профессиональный инструмент, который с чистым сердцем можно порекомендовать всем профессиональным разработчикам на C. Среди кроссплатформных компиляторов, а также компиляторов для MS-DOS единственным достойным соперником Watcom является некоммерческий GNU C++. Но в заключение следует отметить, что если вы - начинающий программист и чувствуете себя не слишком уверенно при работе на С, лучше используйте другой компилятор. Watcom C/C++ позволяет сделать практически все, что угодно, но это не значит, что добиться этого будет легко. Эффективная работа с Watcom требует большого практического навыка и исчерпывающих знаний. Зато уж если вы гуру, Watcom C/C++ поможет вам претворить в жизнь ваши самые дикие мечты!

Денис МАРГОЛИН

Версия для печатиВерсия для печати

Номер: 

42 за 1997 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!