"Буран" и язык программирования ДРАКОН

На модерации Отложенный

"Буран" и язык программирования ДРАКОН
Автор: Владимир Паронджанов
Опубликовано 13 апреля 2009 года

Вы что-нибудь слышали о языке программирования ДРАКОН? Мы - нет. Но вот наш читатель утверждает, что ДРАКОН уже внесён в программу курса информатики высшей школы. Орфография и пунктуация автора сохранены. - прим. ред.


В 1976 году в СССР в обстановке строжайшей секретности началась разработка многоразового транспортного космического корабля Буран в рамках проекта "Буран-Энергия". Это был грандиозный проект. В его создании принимали участие 86 министерств и ведомств и 1286 предприятий СССР (всего около 2,5 миллиона человек).

Свой первый и единственный космический полёт "Буран" совершил 15 ноября 1988 года. Орбитальный корабль был запущен c космодрома Байконур при помощи ракеты-носителя "Энергия". После облёта Земли Буран произвёл посадку на специально оборудованном аэродроме "Юбилейный" на Байконуре. Полёт прошёл без экипажа, полностью в автоматическом режиме. В отличие от американского Шаттла, который может совершать посадку только на ручном управлении. В связи с распадом СССР и трудностями переходного периода в 1990 году работы по программе "Энергия—Буран" были приостановлены, а в 1993 программа окончательно закрыта.

Разработка языков программирования для Бурана

При разработке Бурана проблема разработки и отработки программного обеспечения считалась одной из наиболее сложных. Первоначально предполагалось, что для решения задачи потребуется несколько тысяч программистов. Следует учесть, что наши программисты привыкли писать программы на ассемблере, так как объем памяти бортового компьютера "Бисер-4" в тот период был очень ограниченным.

В материалах Института прикладной математики им. М.В. Келдыша РАН о трудностях и свершениях того периода говорится так:

"В 1983 году разработчики космического корабля Буран обратились в Институт [прикладной математики] с просьбой помочь в разработке бортового программного обеспечения и программного обеспечения наземных испытаний корабля. По их оценкам для этой работы требовалось несколько тысяч программистов. После изучения задачи было решено разработать проблемно-ориентированные языки, основанные на терминах, понятиях и форме представления алгоритмов управления и испытаний, используемых разработчиками корабля. Реализация этих языков позволила привлечь к созданию бортового и испытательного программного обеспечения самих разработчиков корабля - авторов алгоритмов управления и испытаний. Разработка языков и соответствующих инструментальных средств была выполнена небольшим коллективом высококвалифицированных программистов Института прикладной математики в чрезвычайно сжатые сроки. Для разработки бортового программного обеспечения был создан специализированный язык реального времени ПРОЛ2 и базирующаяся на нем система автоматизации программирования и отладки САПО ПРОЛ2… Для разработки программного обеспечения наземных испытаний корабля был создан проблемно-ориентированный язык ДИПОЛЬ и базирующаяся на нем система автоматизации программирования и отладки"…

Таким образом, чтобы решить проблему нехватки программистов при создании Бурана по нашей просьбе Институт прикладной математики РАН создал два русскоязычных языка:
язык реального времени ПРОЛ2 для разработки бортовых комплексных программ (автор Виктор Крюков)
проблемно-ориентированный язык для разработки программ наземных испытаний ДИПОЛЬ (автор Владимир Луцикович)


Кроме того, в Пилюгинском центре под руководством Константина Федорова был разработан язык ЛАКС для моделирования. Таким образом, появились три новых языка: ПРОЛ2, ДИПОЛЬ и ЛАКС.

Язык ДРАКОН родился в космической колыбели

Хотя языки успешно решали поставленные задачи, стало ясно, что узкая специализация языков мешает делу. Эту мысль в 1986 году высказал начальник комплексного отделения Юрий Трунов (впоследствии Генеральный конструктор и Генеральный директор Пилюгинского центра). Трунов вызвал к себе начальника лаборатории комплексной разработки вычислительной системы Бурана Владимира Паронджанова и поручил ему создать универсальный язык, способный заменить три вышеназванных. Однако Паронджанов решил поставить задачу иначе. Он полагал, что новый язык должен не только удовлетворять практическим нуждам космической техники, но и решать предельно широкий круг задач, выходящих далеко за рамки традиционного программирования.

В связи с этим при создании языка ДРАКОН были выдвинуты необычные для программистов, математиков и "технарей" гуманитарные требования.


1. Улучшить работу человеческого ума.
2. Предложить эффективные средства для описания структуры человеческой деятельности.
3. Предоставить человеку такие языковые средства, которые резко упрощают восприятие сложных процедурных проблем и общение с коллегами, делают непонятное понятным и за счет этого буквально заставляют человека мыслить отчетливо, глубоко и продуктивно.

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

Разработка языка ДРАКОН и его программных средств

Разработка нового языка и системы программирования началась в 1986. Через 11 лет на базе ДРАКОНА была построена автоматизированная технология проектирования алгоритмов и программ (CASE-технология) под названием "ГРАФИТ-ФЛОКС".

Все работы были завершены к 1996 году. Затем язык ДРАКОН и система ГРАФИТ-ФЛОКС поступили в эксплуатацию. С их помощью были разработаны алгоритмы и программы доразгонного модуля космических аппаратов Международного проекта Морской старт. В общей сложности на разработку и отработку программного обеспечения и других элементов системы управления ушло три года. К 1999 году все работы были закончены. Система была готова к старту.

Первый пуск ракетного комплекса "Морской старт" состоялся 28 марта 1999 года. Он произошел в 5 час. 30 мин. по московскому времени (27 марта 1999 г. в 18 час. 30 мин. по тихоокеанскому времени) cо стартовой платформы "Одиссей" в Тихом океане в районе островов Кирибати.

Этот пуск был боевым крещением языка ДРАКОН и технологии создания программ "Графит-Флокс". Он убедительно продемонстрировал их эффективность и надежность. С тех пор по программе Морской старт проведено 29 ракетных пусков. Последний пуск состоялся 24 сентября 2008. Язык ДРАКОН успешно используется и во многих других космических программах:
разгонный блок космических аппаратов "Фрегат";
модернизированная ракета-носитель "Протон-М";
доразгонный модуль космических аппаратов ДМ-SL-Б (проект "Старт в пустыне", или "Наземный старт") и др.


Поскольку результаты использования Дракона были стабильно высокими, руководство Пилюгинского центра приняло решение об использовании дракон-технологии во всех последующих проектах.

Программирование без программистов

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

Это позволяет значительно сократить издержки, улучшить показатель "затраты — результат", ускорить ход работ. И полностью избавиться от ошибок "испорченного телефона", вызванных взаимным непониманием между программистами и инженерами.

Секреты космических разработок — народному хозяйству

ДРАКОН универсален. Он может применяться для наглядного представления и быстрой разработки алгоритмов не только в "космосе", но и в "земных" видах человеческой деятельности. Практическая полезность ДРАКОНА получила высокую оценку. Можно предположить, что язык ДРАКОН получит широкое распространение в самых различных областях, в том числе в системе образования. В свое время Никлаус Вирт, автор языка Паскаль, посчитал, что Паскаль должен быть самым первым языком, с которого следует начинать изучение программирования. Эта точка зрения стала почти общепринятой.

В ту пору программы писали в виде текста. Для текстового программирования Паскаль, действительно, был наилучшим учебным языком.

Однако сегодня ситуация изменилась. Будущее принадлежит эргономичным языкам. В этих условиях дедушка Паскаль потерял былую славу прекрасного учебного средства.

Сегодня эта роль переходит к визуальному языку ДРАКОН. Именно ДРАКОН становится самым простым, легким, удобным и логически стройным языком, с которого надо начинать изучение алгоритмизации и программирования.

Дракон в системе образования

В 1996 году Государственный комитет по высшему образованию Российской Федерации включил изучение языка ДРАКОН в программу курса информатики высшей школы.