Леди Ада

Часть третья

В первой части статьи про язык программирования Ада мы поговорили об особенностях собственно языка. Вторая часть была исторической - я рассказал вам об истории создания языка и о женщине, в честь которой он был назван. В третьей части мы поговорим о практике - то есть об инструментах, призванных, так сказать, "сделать сказку былью", а точнее - код на языке Ада исполняемым кодом процессора.

И в самом деле, каким бы хорошим язык не был, если у него нет компилятора или интерпретатора, он так и остаётся умозрительной теорией, призванной в этот мир из закоулков разума исключительно для того, чтобы удовлетворить любопытство и/или самолюбие учёных мужей, его создавших. Потому что такие языки никогда не создаются практиками - практик создаёт язык, одновременно создавая и компилятор для него (или интерпретатор, но поскольку речь в дальнейшем будет идти об Аде, а Ада - язык компилируемый, то слово "интерпретатор" будет опускаться). Однако поскольку Ада создавалась как язык для довольно-таки практических целей, первый компилятор появился вскоре после утверждения первого же стандарта.

Первые версии компилятора были не слишком удачными. Как сказано в одной из официальных хроник этого языка, эти версии компилятора, скорее, "доказывали теорему существования Ада-транслятора, соответствующего стандарту", чем были реально работающими инструментами. Но с тех пор прошло немало времени, и сегодняшние компиляторы уже мало напоминают тех неуклюжих, хотя и старательных работяг. Фактически, большая их часть, если верить заверениям разработчиков, имеют гораздо большую производительность, чем компиляторы C/C++ (хотя я вовсе не сторонник таких сравнений, особенно если сравниваются настолько разные языки).

Честно говоря, Аду нельзя назвать массовым языком программирования во многом из-за стоимости трансляторов языка. Впрочем, сказать точно, где здесь причина, а где следствие, нельзя. Стоимость инструментов для основной сферы применения Ады, встраиваемых систем, варьируется от нескольких тысяч до нескольких сотен тысяч долларов - естественно, всё зависит от количества программистов, работающих с компилятором. Правда, за эти деньги покупатель получает действительно замечательно отлаженный инструмент, очень надёжный и качественный. На самом деле, для такого языка, как Ада, такое положение вещей вполне приемлемо. Однако сейчас в мире наступила эпоха популярности свободного программного обеспечения, и Аду это тоже не минуло. Поэтому для Ады существует и бесплатный транслятор - GNAT, GNU Ada Translator.

Официальный сайт GNAT - www.adacore.com. Есть две версии GNAT - GNAT GPL и GNAT PRO. GPL-версия даёт право разрабатывать только бесплатное программное обеспечение, имеющее при этом ещё и открытый исходный код. А версия PRO даёт право уже и на коммерческое использование самой себя. Правда, при этом за её использование нужно платить. Деньгами. Цены на коммерческую версию можно найти на указанном выше сайте. Честно говоря, сам я точную цену не узнавал, потому что для моих нужд коммерческая версия пока не требуется, но хочу отметить, что ценовая политика довольно гибкая, поэтому можно с большой вероятностью найти устраивающее именно вас соотношение цены и функциональности.

GNAT - это компилятор Ады-95 для множества самых разных платформ. Впрочем, как это всегда бывает в нашем несовершенном мире, стандарт стандартом, а компилятор умеет больше, потому что разработчики включили в него частичную поддержку более нового стандарта Ада-2005. Думаю, в скором времени этот стандарт будет поддерживаться уже полностью.

Как я сказал, GNAT кросс-платформенен. Причём под словом "платформа" нужно понимать не только операционную систему, но и аппаратную часть, то есть процессорную архитектуру. GNAT имеет гораздо лучшую кросс-платформенность, чем даже GNU Compiler Collection (GCC), на коде которой он частично основан. Система GNAT позволяет вести разработку приложений для встраиваемых систем. Но можно разрабатывать и программы для "полноценных" платформ (например, той же PC - для самых разных операционных систем). Тем, кто желает изучить компилятор под одной из знакомых операционных систем, рад буду сообщить, что есть версия и для Windows, и для Linux - полагаю, большинство заинтересовавшихся будет развлекаться с компилятором именно под одной из этих систем.

Производительность GNAT аналогична производительности других компиляторов от GNU (того же GNU C/C++, к примеру). Кого интересует сравнение производительности разных компиляторов, могу посоветовать поискать результаты тестирования на сайте rsdn.ru, поскольку сам я не сторонник таких методов проверки компиляторов. Что касается скорости компиляции, то GNAT GPL собирал сам себя из исходных текстов, коих тогда было около 40 мегабайт, за двадцать семь минут на машине с 256 Мб оперативной памяти и с процессором Athlon с тактовой частотой 1800 МГц. Кстати, обратите внимание, что компилятор GNAT, несмотря на свою наполовину коммерческую природу, поставляется вместе с исходными текстами. Фактически, деньги, которые вы платите разработчикам, - это деньги на техническую поддержку.

GNAT рекомендован рядом компетентных организаций как средство для разработки отказоустойчивых систем. Впрочем, о том, что надёжность - не только главный "конёк" Ады, но и сама основа её идеологии, я уже говорил в первой части статьи. GNAT идеально вписывается в эту концепцию и служит инструментом её практической реализации.

Кстати, коммерческая версия GNAT PRO включает в себя не только компилятор. Имеется полноценная интегрированная среда разработки (есть и бесплатная версия, только она урезана и более старая), отладчик с графическим интерфейсом. В оба варианта компилятора (и PRO, и GPL) включено довольно большое количество примеров и, конечно же, стандартная runtime-библиотека Ады.

Однако GNAT - не единственный существующий сегодня компилятор Ады, доступный, так сказать, простым смертным. Второй из компиляторов, о котором я хочу сегодня рассказать, называется ObjectAda, а занимается его разработкой компания Aonix. В интернете ObjectAda можно найти, если воспользоваться следующей ссылкой: www.aonix.com/objectada.html.

Компилятор от Aonix коммерческий "от кончиков пальцев до кончиков волос". Правда, стоит он на общем фоне совсем недорого, от 600 евро. За эти деньги компания-производитель предлагает, впрочем, продукт с закрытым исходным кодом и ограниченную техническую поддержку. Ориентирована эта разработка тоже на системы, где безопасность и надёжность являются критическими факторами. Однако при этом если рассматривать разработку под платформу PC, то здесь у ObjectAda преимущества перед GNAT. Поскольку вместе с ObjectAda Aonix предлагает библиотеки для работы с такими технологиями, как ActiveX и COM под Windows, POSIX API для всех UNIX-подобных платформ. Причём для архитектуры процессора Intel x86 имеется специально оптимизированная под неё версия компилятора, которая имеется в вариантах под Windows и Linux. Есть лишь одно НО: ObjectAda - компилятор Ада-95, и перехода на Ада-2005 пока разработчики не планируют. Это не хорошо и не плохо, просто это очень важный фактор, который необходимо учитывать обязательно при выборе GNAT или ObjectAda.

ObjectAda также позволяет проводить разработку для встраиваемых систем. Список специализированных решений для данного класса проектов, который можно найти на сайте Aonix, не так уж и мал. Компилятор прошёл тщательное тестирование и имеет сертификаты, подтверждающие возможность его использования для разработки отказоустойчивых проектов.

Однако Aonix нужно сказать спасибо не только за качественный компилятор. Собственно, насколько он качественен, можно судить только со слов самой компании, а также по отзывам пользователей, по полученным этим программным продуктом сертификатам и по разработанным с его помощью проектам. К сожалению, скачать с сайта Aonix пробную версию компилятора не удастся. Впрочем, в этом нет ничего странного, это обычная практика для разработчиков серьёзных программных продуктов. Но ведь не за это я хочу сказать Aonix спасибо, не так ли? За что же?

А за то, что эта фирма создала замечательное средство, позволяющее разрабатывать программы на Аде с помощью великолепной свободной среды разработки Eclipse. И при этом можно использовать не только честно купленный транслятор ObjectAda, но и бесплатный GNAT GPL. А можно и GNAT PRO, конечно же. Eclipse, как известно, среда кросс-платформенная, поэтому можно будет даже использовать компилятор именно под той платформой, для которой ведётся разработка. Ну, а если нет, то есть такое замечательное средство, как кросс-компиляция (компиляция программ для одной платформы из-под другой).

Впрочем, для тех, кто всё же решится купить у Aonix их компилятор Ады, фирма готова предложить полностью заточенную под Аду среду разработки на основе всё того же Eclipse. Посмотреть воочию на это IDE тоже нельзя, к сожалению, но приблизительное представление о нём можно составить и по плагину для Eclipse, который Aonix выложила для свободного скачивания на своём сайте.

Конечно, GNAT и ObjectAda - не единственные инструменты, которые пригодятся при разработке программ на Аде. Однако эти системы включают в себя самые важные для программиста инструменты - компиляторы, среды разработки, отладчики и профилировщики. Эти современные средства позволяют использовать и современные технологии моделирования, и это опровергает ещё один миф об Аде. Ада не устарела. Этот миф происходит (как и другие, впрочем, мифы) от невежества человеческого. И не нужно ему верить. Ведь люди, работающие в сфере информационных технологий, должны лучше других понимать, что ценность информации увеличивается со степенью её достоверности. Мифы - информация недостоверная. Давайте будем верить фактам, которые говорят, что Ада жива и умирать пока не собирается.

(Продолжение следует)

Вадим СТАНКЕВИЧ

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

Номер: 

47 за 2006 год

Рубрика: 

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

Комментарии

Страницы

Аватар пользователя Инкогнито
звыняйте, нашлося:

"GWindows - связка с win32 компонентами ADO доступа к базам данных и Active X для компонент управления, диалогов, печати и прочего, необходимого для построения Win32 приложений."

крута.

упс. по ссылке пустая страничка.

http://www.gnavi.org/gwindows/

сам сайт живой? там с 2004 года что-то было?

гы.

Аватар пользователя Инкогнито
звыняйте снова. сырцы типа можно качнуть.
Аватар пользователя Инкогнито
складывается устойчивое впечатление, что проектами занимаются любители-энтузиасты, которые как заболели на студенческой скамье желанием свой язык наклепать, так до сих пор и не выздоровели. или энтузиЯзм иссяк.
Аватар пользователя Инкогнито
во красота - корбу притарабанили. SecurePolyORB. и куда ее прикажете воткнуть? гы.
Аватар пользователя Владимир С. Трошин
Да я, собственно, и попросил. Ответил на вопросы анкеты, и был отослан к сайту. Там скачал, а оно толком не разворачивается, потом обратил внимание на текст, но всё равно мало что понял:

...This link will not work from a browser or an ftp client. Refer to your Eclipse documentation or the AonixADT Installation instructions for more information on using the Eclipse Update Manager.

Note- The Installation/Release Notes and QuickStart Guide are not included when installing remotely via the Update Manager. You should manually retrieve them via the links below.

If you can not use the Eclipse update manager, a compressed version of AonixADT (with documents included) may be downloaded by clicking on the appropriate link below. To install, unzip the file to a location of your choice and follow the installation guide as if installing from a CD-ROM...

То ли надо развернуть это дело, а потом переписать на СиДи и с него загружаться, то ли ещё что.

Меня интересует вот какая вещь: освоить на некотором уровне GNAT с графическим интерфейсом GtkAda, чтобы можно было что-то преподнести красиво (Delphi не привлекает), но ObjectAda интересен разглашённой Вами ценой. Ведь покупать - если даже мотивировать для работы - профессиональный Комар за 14 тыс. у.е. не то что государственная, даже частная фирма не будет, уверен.

Так что если знаете работающих на ObjectAda - прошу познакомить.

Аватар пользователя Инкогнито
"Delphi не привлекает"

не опнтово? типа че там программить - лепи себе формочки, да? гы. код никто не отменял ваять.

тут типа крутой перец приходит и говорит, что типа на аде рисует. все выпадают в осадок. занавес.

Аватар пользователя Инкогнито
Станкевич, что молчите? где проекты на супер-пупер-мега-ультра языке?
Аватар пользователя Инкогнито
Станкевич, я перед вами сразу извинюсь, если сможете предоставить достаточно серьезную информацию, а не сказки с сайта энтузиастов.
Аватар пользователя Инкогнито
"То ли надо развернуть это дело, а потом переписать на СиДи и с него загружаться, то ли ещё что."

open source или остальная фигня в действии. никто и ни за что ответственности не несет. ни собственным имиджем, ни деньгами, ни репутацией.

Аватар пользователя Вадим Станкевич
>>open source или остальная фигня в действии

Инкогнито, платите и обрящите.

Если Вас интересуют проекты на Аде, ищите в англоязычных источниках, например, на adacore.com. С ходу могу дать одну ссылку: http://www.adacore.com/home/ada_answers/lookwho. Но там о том, кто использует, списка проектов нет. Сейчас спать хочу, завтра поищу ещё, если не забуду.

Дело в том, что в СНГ Ада используется _ОЧЕНЬ_ мало. У нас, знаете ли, АСУ для аэропортов пишут на Visual Basic'е с Access'ом. Поэтому ничего удивительного в том, что русский сайт по Аде смотрится как чей-то хоумпэйдж.

Что касается Object Ada, то лично я его не использовал, только читал о нём на форумах и на сайте самих разработчиков. И тех, кто с ним вплотную работал, не знаю, к сожалению. Потому что... см. выше. Язык не слишком популярен, а если есть бесплатный компилятор, то пользоваться все будут именно им. Поэтому сам я пользовал GNAT + GPS.

Страницы