Найти в Дзене

Как советские инженеры создавали язык будущего

Сегодня я расскажу вам о необычном языке программирования, который называется ДРАКОН, что расшифровывается как Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность. Это язык визуального программирования, поэтому, в отличии от большинства других языков, программист в нем не пишет код программы, а оперирует графическими схемами, поэтому читать алгоритм на нем могут не только программисты. И, хотя, ДРАКОН появился только в 1996 году, множество сил в него вложили советские инженеры, начавшие работу еще во второй половине 1980-ых годов. С 1986 года перед советскими инженерами стояла задача создания языка программирования для космического корабля "Буран". Самое главное требование к новому языку - крайне высокая надежность, которую не могли обеспечить классические языки программирования. И сейчас вы поймете почему. Даже в современном мире цена ошибки в коммерческих программах может приводить к большим финансовым и имиджевым потерям, однако, часто их можно быстро исправит
Оглавление

ДРАКОН

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

И, хотя, ДРАКОН появился только в 1996 году, множество сил в него вложили советские инженеры, начавшие работу еще во второй половине 1980-ых годов.

Цена ошибки в программе

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

Буран
Буран

Даже в современном мире цена ошибки в коммерческих программах может приводить к большим финансовым и имиджевым потерям, однако, часто их можно быстро исправить, в крайнем случае - отозвать "неправильную" продукцию с ошибкой в прошивке. Но в сфере космической разработки потери становятся просто колоссальными:

  • Гибель ракеты-носителя "Ariane-5" в 1996 году. Через 40 секунд после старта ракета взорвалась в воздухе, полностью уничтожив четыре спутника, которые нужно было вывести на орбиту. Причиной аварии стала неправильно объявленная переменная.
  • Гибель межпланетного зонда "Фобос-Грунт". Программная ошибка вызвала одновременный перезапуск двух работающих каналов бортового вычислительного комплекса. В результате аппарат не совершил манёвры, необходимые для выхода на отлётную орбиту: двигательная установка не сработала, и даже топливные баки не отделились.
  • Гибель космического аппарата "Mars Climate Orbiter" в 1999 году. Команда разработчиков использовала две разные системы измерения: английскую и метрическую, что привело к неправильной траектории полёта аппарата. 
  • Гибель демонстрационного спускаемого модуля "Schiaparelli" российско-европейской миссии "ExoMars-2016" в 2016 году. Причиной ЧП стал сбой бортового компьютера, который выдал команду на запуск тормозных двигателей и выпуск парашюта через три минуты после входа в атмосферу, что было раньше положенного по расчётам времени.
  • Гибель американского межпланетного зонда "Mariner-1" в 1962 году. Вскоре после старта ракета перестала получать радиокоманды с Земли и управление взял на себя бортовой компьютер. Однако в программе компьютера оказалась ошибка, ракета сошла с курса и взорвалась

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

Именно такую задачу поставили перед инженерами центра автоматики и приборостроения имени академика Н. А. Пилюгина.

Для сложной системы управления "Бураном" потребовалось создать язык программирования высокого уровня, предназначенного для решения задач в реальном времени. При разработке "Бурана" проблема разработки и тестирования программного обеспечения считалась одной из наиболее сложных, поэтому в 1983 году разработчики "Бурана" обратились в Институт прикладной математики с задачей разработки бортового программного обеспечения.

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

Визуальное программирование

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

-3

Вместо строк кода ДРАКОН использует следующие графические элементы:

  • Прямоугольники — действия
  • Ромбы — условия
  • Овалы — начало и конец
  • Стрелки — поток выполнения

Также существуют и строгие правила:

  • Запрет на пересечение линий
  • Чёткая иерархия элементов
  • Стандартизированные формы блоков

Как видите, ничего сложного!

Именно визуальное программирование считается безопасным способом написания программы, в то время как обычные языки программирования могут давать программисту излишнюю свободу. Например, в языке С (Си) программист может случайно использовать один знак равно (=, присваивание), вместо двух (==, равенство), такая опечатка может привести к непредсказуемым последствиям, в корне изменив логику программы!

Где применялся?

ДРАКОН стал применяться в самых различных сферах, где критически важна безопасность и точность:

  1. В космической программе "Буран"
    Управление полётом
    Системы диагностики
    Автоматическая посадка
  2. В ядерной энергетике
    Контроль реакторов
    Системы безопасности
  3. В медицине
    Диагностические алгоритмы
    Поддержка принятия врачебных решений
  4. В образовании
    Обучение основам алгоритмизации
    Подготовка инженеров

ДРАКОН сейчас

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

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

Среда разработки DRAKON Editor
Среда разработки DRAKON Editor

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