Весёлый язык программирования

Весёлый язык программирования

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

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

Инициаторами практического внедрения бортовых систем и создания для них средств разработки ПО стали ВВС США. Это связано с тем, что в авиации используется наиболее дорогостоящая и сложная в управлении техника. 26 октября 1983 г. американская военная директива за номером 9070 констатировала насущную необходимость создать универсальное средство разработки ПО для бортовых авиационных систем. Основные требования, предъявляемые к нему, были такими: высокая надежность получаемого кода, эффективность работы программ при жестких ограничениях на объемы памяти и быстрая и дешевая реализация проектов. Лучшие военные специалисты США были брошены на поиски подходящего средства разработки, которое планировалось сразу же адаптировать к внутренним нуждам МО. Такое средство было найдено довольно быстро. Им оказался старый язык программирования Jovial (в пер. с английского  -  веселый). В его основе лежал язык IAL (International Algorithmic Language), один из первых диалектов Алгола, в дальнейшем усовершенствованный и получивший название OVIAL (Own Version of the IAL). Американский программист Джулиус Шварц дополнил OVIAL рядом полезных новшеств, прибавил к аббревиатуре первую букву своего имени, и в январе 1959 г. на свет появился Jovial. Шварц разработал Jovial главным образом для того, чтобы иметь возможность создания кросс-платформных программ, способных работать в реальном масштабе времени. Во внутреннюю структуру Jovial-машины были заложены гибкие возможности оптимизации кода, не зависящие от платформы, и быстрый перенос программ при модификации архитектуры целевого компьютера. Жесткая структура организации файлов с исходными текстами, не допускающая машинно-зависимых синтаксических конструкций, позволяла легко переносить программы на различные платформы. Именно эти возможности и оказались ключевыми при выборе этого языка ВВС США.

Сегодня язык программирования Jovial, несмотря на свое название, применяется для создания отнюдь не развлекательных программ. Хорошо продуманная кросс-платформная идеология и успешная практика применения позволили Jovial завоевать признание практически во всех военных областях. На нем были написаны программы, исполняемые на бортовых процессорах многих американских военных самолетов (бомбардировщики B-2, транспортные самолеты C-17, истребители F-15, F-16, F-18, F-22, F-117), вертолетов огневой поддержки, ракет тактического и стратегического назначения, военных крейсеров, космических спутников и др. Этот язык используется для создания ПО, управляющего мобильными и стационарными ракетными установками на поле боя, в радарных системах слежения. Применяют его в некоторых видах боевой техники американские силы специального назначения.

Чтобы не распылять усилия разработчиков и обеспечить единый подход к созданию и унификации ПО, МО США приняло стандарт на набор команд для 16-разрядного микропроцессора, используемого в бортовых военных системах. Этот стандарт получил название MIL-STD-1750, в дальнейшем набор команд был расширен несколькими дополнительными инструкциями, и модификация этого стандарта 1750А используется в американской армии по сей день.

В силу жестких требований, предъявляемых к языку, реализация Jovial, созданная в ВВС США, представляет собой не просто компилятор, а целый комплекс стандартизованных средств разработки. В этом на него похожа Java, в типичную поставку которой помимо компилятора обязательно входит виртуальная Java-машина, набор библиотек, средства отладки, вьюеры, имитирующие работу в Сети, и т. д. Так же и Jovial распространяется в комплекте разработчика под названием ITS. Этот комплект представляет собой прекрасный пример тщательно продуманного подхода к выбору и совершенствованию средства разработки ПО, которое планируется использовать в ответственных областях десятки лет. В типовой комплект ITS входят кросс-платформные компилятор и макроассемблер, ориентированный на систему команд 1750А, компоновщик, символьный интерактивный отладчик, поддерживающий режим реального времени, программный эмулятор процессора с набором команд 1750А, библиотека стандартных модулей и загрузчик кода в оборудование 1750 (при наличии соответствующих аппаратных плат). Первая очередь этого комплекса была закончена в 1984 г. Вначале она функционировала только на больших и мини-ЭВМ, а сегодня работает также под управлением SCO Unix 3.2 или MS DOS. ITS обеспечивает генерацию кода (помимо МП 1750А) для VAX, IBM PC, Z-80, M680X0, RISC-компьютеров и ряда других. Наиболее популярная реализация ITS для компьютеров серии VAX используется сегодня более чем в 50 подразделениях МО США. Ее догоняет версия для персоналок, работающая под управлением Unix.

ITS распространяется правительством США бесплатно. Чтобы получить (или попытаться получить) ITS, рекомендовано обращаться в американское посольство к атташе по вопросам авиации.

Существуют сегодня и коммерческие версии Jovial, распространяемые, впрочем, за пределами США только с разрешения американских компетентных органов. Чтобы их приобрести, можно попробовать написать письмо по адресу: usafjovial@aol.com или millerjm@sm4.ascsm.wpafb.af.mil. Стоят эти версии порядка 75 000 долл. Одна из них представляет собой компилятор Jovial для платформ VAX/VMS, SPARC/SunOS, HP/UX, позволяющий получать код для Z8000 и 1750А. Дополнительно в комплект включены: ассемблер для каждой платформы, компоновщик, симулятор целевых наборов команд и символьный отладчик, использующий интерфейс X Window. Настройки оптимизации позволяют получать код, который по сравнению с кодом, написанным на ассемблере вручную, дает выигрыш в размере программы и скорости ее выполнения на 15%.

В последнее время стремительно возросшая сложность современной боевой техники потребовала более мощных микропроцессорных устройств управления. Летом 1996 г. был выпущен компилятор для Jovial, работающий под управлением ОС Solaris компьютеров Sun SPARC. Он позволяет получать код для бортовых управляющих систем, основанных на MIPS-микропроцессорах серии R2000/3000/4000. Компилятор встроен в графическую оболочку, содержащую редактор и символьный отладчик. Эта оболочка, хорошо известная разработчикам программ на Аде для SPARC-компьютеров, теперь стала доступна и Jovial-программистам.

МО США уделяет языку Jovial большое внимание. За последние 15 лет использования Jovial американская армия вложила в его развитие более 16 млн. долларов. Суммы, стимулирующие написание программ на Jovial и перенос других программных систем на этот язык, увеличиваются с каждым годом. Для полной совместимости всего ПО, используемого в бортовых системах, американские военные приняли стандарт MIL-STD-1589 на версию Jovial под названием J-73. Теперь все программное обеспечение, разрабатываемое в подразделениях МО США на языке Jovial, должно соответствовать данному стандарту. В ближайшем будущем ВВС США собираются провести полный реинжиниринг своей компьютерной инфраструктуры, при этом все ПО, работающее в бортовых микропроцессорных устройствах, планируется перенести на Jovial и Ada. Особое внимание уделяется связке этих языков. Дело в том, что множество программ, предназначенных для решения боевых задач, довольно бессистемно разрабатывалось как на Jovial, так и на Ada. Теперь же планируется осуществить интеграцию компьютерных программ, написанных на этих языках, чтобы обеспечить возможность их совместного использования и легкой модификации ПО. Для решения этой задачи будет активно использоваться продукт фирмы Xinotech Research  -  Xinotech Language Translator (XLT), предназначенный для семантического анализа языков программирования и перевода исходных текстов программ с одних языков на другие с предоставлением пользователю возможности интерактивного контроля над процессом преобразования. В XLT используются описания языков с помощью абстрактных грамматик на XPAL (Xinotech Plan Abstraction Meta-language) и применяются технологии сопоставления с образцом. Похожими возможностями обладает и созданный в нашей стране РЕФАЛ (см. PC Week/RE, № 2/97, с. 44). XLT на сегодня предоставляет возможность следующих парных преобразований, гарантирующих корректный результат: Pascal  -  Ada, CMS-2  -  Ada и Jovial  -  Ada.

Перспективы Jovial в свете усилий, предпринимаемых МО США, можно оценить как очень хорошие, особенно если учесть его планируемую тесную "стыковку" с Ada. Возрастающая "электронизация" современной боевой техники требует не только адекватных ее возможностям средств создания ПО, но также использования уже существующих разработок и интеграции их с новыми инфраструктурами. Связка Jovial-Ada, достаточно эффективно используемая в военной области уже сегодня, в недалеком будущем однозначно не будет иметь конкурентов в сфере создания программ для встроенных бортовых систем военного профиля.

ItWeek №(080)06`1997 от 18.02.1997
Помещена в музей с разрешения редакции 7 декабря 2018