Авиация ДРАКОН (алгоритмический язык) - История

14 февраля 2011


Оглавление:
1. ДРАКОН (алгоритмический язык)
2. История



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

Система управления космического корабля «Буран» управляет полетом Бурана и всеми бортовыми системами корабля. Система управления создана в Научно-производственном центре автоматики и приборостроения имени академика Н. А. Пилюгина НПЦАП. Головным мозгом Бурана служит Бортовой вычислительный комплекс. Основным разработчиком бортового и наземного программного обеспечения космического корабля «Буран» является Пилюгинский центр.

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

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

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

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

Таким образом, чтобы решить проблему нехватки программистов при создании Бурана и повысить производительность и качество труда при разработке алгоритмов и программ, Институт прикладной математики РАН по просьбе Пилюгинского центра создал два русскоязычных языка:

  • язык реального времени ПРОЛ2 для разработки бортовых комплексных программ;
  • проблемно-ориентированный язык для разработки программ наземных испытаний ДИПОЛЬ

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

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

Хотя языки ПРОЛ2, ДИПОЛЬ и ЛАКС успешно решали поставленные задачи, стало ясно, что узкая специализация языков мешает делу. Эту мысль в 1986 году высказал начальник комплексного отделения Юрий Трунов. Трунов вызвал к себе начальника лаборатории комплексной разработки вычислительного комплекса Бурана Владимира Паронджанова и поручил ему создать универсальный язык, способный заменить три вышеназванных.

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

В связи с этим при создании языка ДРАКОН были выдвинуты необычные для программистов и математиков гуманитарные требования.
  1. Улучшить работу человеческого ума.
  2. Предложить эффективные средства для описания не только алгоритмов, но и структуры человеческой деятельности в любой отрасли знаний.
  3. Предоставить человеку такие языковые средства, которые значительно упрощают восприятие сложных процедурных проблем и общение с коллегами, делают непонятное понятным. И за счет этого буквально заставляют человека мыслить отчетливо, глубоко и продуктивно. В этих условиях вероятность заблуждений, просчетов и ошибок падает, а производительность растет.
  4. Облегчить межотраслевое и междисциплинарное общение между представителями разных организаций, ведомств, отделов, лабораторий, научных школ и профессий.
  5. Устранить или уменьшить барьеры взаимного непонимания между работниками различных специальностей, а также программистами и теми, кто не владеет программированием.
  6. За счет использования когнитивно-эргономического подхода к проектированию синтаксиса и семантики языка добиться значительного улучшения качества программного обеспечения по критерию «понятность алгоритмов и программ»

.

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

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

Сохранился любопытный документ, отражающий один из этапов этой работы.
Пояснение к тексту документа:
ДМ — Доразгонный Модуль;
SL — Sea Launch;
ДМ-SL — Доразгонный Модуль космических аппаратов международного проекта «Морской старт».

Р А С П О Р Я Ж Е Н И Е

по отделению 03 № 3 от 28 июля 1995 г.

В целях более рационального распределения работ по созданию программного обеспечения изделий ДМ-SL

П Р Е Д Л А Г А Ю

  1. Разработку программного обеспечения изделия ДМ-SL поручить отделу 035.
  2. Разработку ПО изделия ДМ-SL вести по технологии ГРАФИТ-ФЛОКС.
  3. В целях своевременного выполнения работ по пп. 1 и 2 начальнику отдела 035 Косточкину Г. Н. обеспечить завершение работ по созданию технологии ГРАФИТ-ФЛОКС в сроки, обеспечивающие безусловное выполнение графика работ по разработке ПО изделия ДМ-SL.
  4. Начальнику отдела 032 Лукьянову Б. Г. обеспечить выпуск Положения о порядке выпуска флокс-формуляров для изделия ДМ-SL в сроки, согласованные с отделом 035.

Начальник отделения 03

В. В. Морозов

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

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

Этот пуск был боевым крещением языка ДРАКОН и технологии создания программ «ГРАФИТ-ФЛОКС». Он убедительно продемонстрировал их эффективность и надежность. С тех пор по программе «Морской старт» проведено 30 ракетных пусков .

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

  • разгонный блок космических аппаратов «Фрегат»;
  • модернизированная ракета-носитель тяжелого класса «Протон-М»;
  • доразгонный модуль космических аппаратов ДМ-SL-Б;
  • доразгонный модуль космических аппаратов ДМ-03;
  • первая ступень KSLV-1 для южнокорейской ракеты-носителя легкого класса KSLV;
  • ракета-носитель легкого класса Ангара 1,2;
  • ракета-носитель тяжелого класса Ангара-А5;
  • Примечание. Для ракет семейства «Ангара» программное обеспечение уже разработано и испытано на комплексном стенде Пилюгинского центра, но подготовка к ракетным пускам еще не завершена.
Поскольку результаты использования ДРАКОНа были стабильно высокими, руководство Пилюгинского центра приняло решение об использовании дракон-технологии во всех последующих проектах .

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

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

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

Этому способствовали следующие обстоятельства.

  1. В открытой литературе стали доступны публикации по языку ДРАКОН
  2. Часть этих материалов появилась в Интернете в конце 2006 года Их можно скачать на многих сайтах.
  3. Через Интернет с языком ДРАКОН познакомился Геннадий Тышов. Заинтересовавшись новой идеей, он разработал интегрированную среду языка ДРАКОН под названием «ИС Дракон». И выложил ее в открытом доступе для тестирования, обсуждения, критики и дальнейшего совершенствования.
  4. Благодаря инициативе Тышова все желающие получили возможность бесплатно скачать созданную им среду «ИС Дракон» и использовать ее в практической работе.
  5. Тестирование программы «ИС Дракон» и работа с ней позволяет:
— на практике оценить весь комплекс вопросов, охватывающий а) возможности, b) преимущества и c) недостатки языка ДРАКОН и среды «ИС Дракон»;
— выбрать направление дальнейшего развития языка ДРАКОН и его инструментальных средств.

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

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

510000 — Естественные науки и математика
540000 — Образование
550000 — Технические науки
560000 — Сельскохозяйственные науки

В официальном документе Госкомвуза «Примерная программа дисциплины ”Информатика”» имеется раздел, посвященный языку ДРАКОН и использующий его понятийный аппарат:

«Раздел 3. АЛГОРИТМЫ И АЛГОРИТМИЗАЦИЯ.

ВИЗУАЛИЗАЦИЯ АЛГОРИТМОВ

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

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

Понимаемость алгоритмов и методы ее улучшения. Понятие эргономичного алгоритма. Равносильные преобразования визуальных алгоритмов, позволяющие улучшить их понимаемость: рокировка, подстановка, вертикальное и горизонтальное объединение, визуализация логических формул в условных операторах.

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

В документе Госкомвуза «Примерная программа дисциплины ”Информатика”» содержится обоснование концепции и структуры учебного курса информатики. и, в частности, дается обоснование использования языка ДРАКОН:

1. Среди требований, предъявляемых к современным алгоритмическим языкам, на первое место все чаще выходит понимаемость алгоритмов и программ, которая определяется как «свойство программы минимизировать интеллектуальные усилия, необходимые для ее понимания» Это объясняется тем, что «в современных условиях качественная программа должна обладать, помимо надежности и эффективности, еще и такими важнейшими качествами как понимаемость и сопровождаемость»


Наиболее мощным средством для улучшения понимаемости является визуализация алгоритмов и программ: «общепризнанно, что человеческий мозг в основном ориентирован на визуальное восприятие, и люди получают информацию при рассмотрении графических образов быстрее, чем при чтении текста» …


2. … В связи с этим тема «алгоритмы и алгоритмизация» излагается в рамках визуальной парадигмы, что позволяет получить ряд преимуществ: облегчить изучение темы, улучшить эргономические характеристики алгоритмов и т. д.


3. Синтез идей информатики и эргономики полезен тем, что процесс алгоритмизации становится менее трудоемким и более ясным. Для этого вводится понятие «эргономичный алгоритм». Излагаются равносильные преобразования алгоритмов, способные улучшить их эргономические характеристики. При этом алгоритмизация и программирование рассматриваются как частный случай более общей проблемы — систематизации, структуризации, представления и формализации человеческих знаний


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


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


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


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

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

Создание Центра компетенции по языку ДРАКОН



Просмотров: 2688


<<< Энергия-Буран (космическая программа)