Современные языки программирования. Часть 2.

Нет необходимости повторять похвалы языку АДА. Это действительно уникальный язык, как уникален и трехлетний процесс уточнения требований, предшествующий разработке языка, и последующий конкурсный отбор. Можно только сожалеть, что после стабилизации концепций программной инженерии и создания языка АДА не было разработано других языков этого класса. К главным недостаткам языка АДА можно отнести его чрезмерную сложность и уже отмечавшуюся неполноту реализации АТД. Источником сложности были как первоначальные концепции, например нетривиальные правила разрешения совмещений в выражениях, так и нарушения логической стройности при доработке языка (1979—1983 гг.). В настоящее время описание языка АДА по объему и количеству исключений сравнимо с описанием языка ПЛ/1. Имеются также обширные комментарии к описанию, уточняющие смысл и правила использования конструкций языка.

В соответствии с концепциями программной инженерии реализация языка АДА предполагает разработку не системы программирования, а комплекса средств поддержки программных проектов — среды поддержки АДА-программ (APSE — Ada Program Support Environment). В 1980 г. были разработаны требования STONEMAN, определяющие функции компонентов и методы построения APSE. Выделяют два промежуточных уровня: ядро (KAPSE) и минимальную систему (MAPSE), по своим функциям аналогичную развитым системам программирования. Повышенная переносимость будущих систем APSE обеспечивается также разработкой общего набора АДА — интерфейсов (CAIS — Common APSE Interface Set). Реализация такого подхода призвана обеспечить переносимость АДА-программ, промежуточных материалов проектов и технологий разработки ПО.

Переход от автоматизации отдельных технологических операций к созданию интегрированных систем разработки ПО характерен для современного этапа развития инструментальных средств и связан не только с языком АДА. Например, подсистему диалоговой обработки ОС 7 ЕС можно рассматривать как языково-независимую систему разработки ПО. Значителен также уровень сервиса, предоставляемого пользователям IBM PC системами фирмы «Borland» Турбо Си и Турбо ПАСКАЛЬ: продуманная система меню, обеспечивающая выполнение большинства функций одним нажатием клавиши; развитый текстовый редактор; контекстно-чувствительный подсказчик; многооконное отображение информации; активное использование возможностей цветных дисплеев. Но подобные системы разработки ПО обычно ориентированы на создание операционной среды, удобной для программиста-индивидуала, и, следовательно, на разработку ПО ограниченного объема. Один из признаков несовершенства инструментов — мелкие ошибки, которые легко обнаруживаются даже в системах программирования фирм «Borland» и «Microsoft».

Отличительной чертой APSE является ориентация на коллективную реализацию больших программных проектов. При этом на первый план выходят организация совместного использования материалов разработки, отслеживание истории и прогнозирование развития проекта, контроль качества результатов работы и выполнения многочисленных ограничений, без которых немыслима разработка больших систем. Здесь без уникальных, к сожалению, свойств языка АДА не обойтись. Конечно, можно и в программе на ассемблере в комментариях записать спецификации модуля, но как проверить их соответствие реальным свойствам программы? Наряду с языком АДА в проектах APSE используются также специализированные языки. Например, в одном из проектов дополнительные описания программ строятся с использованием языка ANNA (Аннотированная АДА), основанного на расширенном исчислении предикатов. Пока не известно ни одной законченной разработки APSE. Вероятно, это связано не только со сложностью решаемых проблем, но и с принципиальной незавершимостью работ по полному созданию средств инструментального обеспечения больших программных проектов.