ДРАКОН (Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность) — визуальный алгоритмический язык программирования. Был разработан в рамках космической программы «Буран». Разработка этого языка велась с 1986 года при участии Федерального космического агентства (НПЦ автоматики и приборостроения им. акад. Н. А. Пилюгина, г. Москва) и Российской академии наук (Институт прикладной математики им. акад. М.В. Келдыша) под руководством Владимира Паронджанова.
Основной задачей разработчиков было создание единого универсального языка программирования, который своей доступностью и мощностью был бы способен заменить специализированные языки ПРОЛ2 (для разработки бортовых комплексных программ Бурана), ДИПОЛЬ (для создания наземных программ Бурана) и ЛАКС (для моделирования).
Работы по разработке языка были закончены в 1996 году (спустя 3 года после закрытия программы «Буран»), когда была создана автоматизированная технология проектирования программных систем (CASE-технология) ГРАФИТ-ФЛОКС. Эта технология эксплуатируется начиная с 1996 года во многих крупных космических программах: международный проект «Морской старт», разгонный блок космических аппаратов «Фрегат», модернизированная ракета-носитель тяжёлого класса «Протон-М» и др.
В качестве аксиоматики для ДРАКОНа были выбраны устремлённые графы (специальный класс циклических орграфов). Такое двумерное структурное программирование годится для доказательного построения алгоритмов методом Дейкстры.
Язык ДРАКОН может удачно применяться для специфицирования протоколов взаимодействия (например, клиент-серверных).
Разработчики языка полагают, что правила языка ДРАКОН по созданию диаграмм оптимизированы для восприятия алгоритмов человеком. Таким образом, язык предлагается в качестве инструмента усиления интеллекта.
Аналогом дракон-схем являются, в частности, диаграммы языка UML: диаграмма деятельности (activity diagram) и диаграмма состояний (state diagram). Более отдаленным аналогом дракон-схем служат блок-схема, диаграмма Насси-Шнейдермана, псевдокод (язык описания алгоритмов) и др.
Существует интегрированная среда работы языка ДРАКОН под названием «ИС Дракон».
Система управления космического корабля «Буран» управляет полетом Бурана и всеми бортовыми системами корабля. Система управления создана в Научно-производственном центре автоматики и приборостроения имени академика Н. А. Пилюгина НПЦАП (далее Пилюгинский центр). Головным мозгом Бурана служит Бортовой вычислительный комплекс. Основным разработчиком бортового и наземного программного обеспечения космического корабля «Буран» является Пилюгинский центр.
При создании программ для сложных космических объектов возникают проблемы, требующие создания языков программирования высокого уровня, предназначенных для решения задач реального времени для систем управления ракетно-космической техники. Именно такие проблемы инициировали появление языка ДРАКОН.
При разработке Бурана проблема разработки и отработки программного обеспечения считалась одной из наиболее сложных. Первоначально предполагалось, что для решения задачи потребуется несколько тысяч программистов. Следует учесть, что программисты Пилюгинского центра привыкли писать программы преимущественно на ассемблере, чтобы экономить объём требуемой памяти, так как объём памяти бортового компьютера был очень ограниченным.
нститут прикладной математики РАН по просьбе Пилюгинского центра создал два русскоязычных языка:
• язык реального времени ПРОЛ2 для разработки бортовых комплексных программ (автор Виктор Крюков);
• проблемно-ориентированный язык для разработки программ наземных испытаний ДИПОЛЬ (автор Владимир Луцикович).
Кроме того, в Пилюгинском центре под руководством Константина Федорова был разработан язык ЛАКС для моделирования. Таким образом, появились три новых языка: ПРОЛ2, ДИПОЛЬ и ЛАКС. Эти языки были непосредственными предшественниками ДРАКОНА. Опыт эксплуатации указанных языков был тщательно изучен и использован при создании языка ДРАКОН.
Хотя языки ПРОЛ2, ДИПОЛЬ и ЛАКС успешно решали поставленные задачи, стало ясно, что узкая специализация языков мешает делу. Эту мысль в 1986 году высказал начальник комплексного отделения Юрий Трунов (впоследствии Генеральный конструктор Пилюгинского центра). Трунов вызвал к себе начальника лаборатории комплексной разработки вычислительного комплекса Бурана Владимира Паронджанова и поручил ему создать универсальный язык, способный заменить три вышеназванных.
Однако Паронджанов решил поставить задачу иначе. Он полагал, что новый язык должен не только удовлетворять практическим нуждам космической техники, но и решать широкий круг задач, выходящих далеко за рамки традиционного программирования.
В связи с этим при создании языка ДРАКОН были выдвинуты необычные для программистов и математиков гуманитарные требования.
1. Улучшить работу человеческого ума.
2. Предложить эффективные средства для описания не только алгоритмов, но и структуры человеческой деятельности в любой отрасли знаний (включая бизнес-процессы).
3. Предоставить человеку такие языковые средства, которые значительно упрощают восприятие сложных процедурных проблем и общение с коллегами, делают непонятное понятным. И за счет этого буквально заставляют человека мыслить отчетливо, глубоко и продуктивно. В этих условиях вероятность заблуждений, просчетов и ошибок падает, а производительность растет.
4. Облегчить межотраслевое и междисциплинарное общение между представителями разных организаций, ведомств, отделов, лабораторий, научных школ и профессий.
5. Устранить или уменьшить барьеры взаимного непонимания между работниками различных специальностей (врачами и физиками, математиками и конструкторами, биологами и экономистами и т. д.), а также программистами и теми, кто не владеет программированием.
6. За счет использования когнитивно-эргономического подхода к проектированию синтаксиса и семантики языка добиться значительного улучшения качества программного обеспечения по критерию «понятность алгоритмов и программ».
Язык ДРАКОН успешно используется и во многих других космических программах:
• разгонный блок космических аппаратов «Фрегат»;
• модернизированная ракета-носитель тяжелого класса «Протон-М»;
• доразгонный модуль космических аппаратов ДМ-SL-Б (проект «Наземный старт»);
• доразгонный модуль космических аппаратов ДМ-03;
• первая ступень KSLV-1 для южнокорейской ракеты-носителя легкого класса KSLV (Korean Space Launch Vehicle);
• ракета-носитель легкого класса Ангара 1,2;
• ракета-носитель тяжелого класса Ангара-А5;
• Примечание. Для ракет семейства «Ангара» программное обеспечение уже разработано и испытано на комплексном стенде Пилюгинского центра, но подготовка к ракетным пускам еще не завершена.
Распространение языка ДРАКОН можно разделить на два этапа.
На первом этапе сфера применения ДРАКОНа была ограничена ракетно-космической техникой. Язык применялся и применяется в Пилюгинском центре при разработке программ для бортового компьютера «Бисер», установленного на борту ракет-носителей и разгонных блоков космических аппаратов.
На втором этапе возникла необходимость приспособить инструментальные средства языка ДРАКОН для гражданских нужд широкого применения, для эксплуатации на персональных компьютерах и ноутбуках. В результате сфера применения языка стала постепенно расширяться. Началось использование дракон-схем за рамками ракетно-космической техники — для решения задач в различных предметных областях.
Этому способствовали следующие обстоятельства.
1. В открытой литературе стали доступны публикации по языку ДРАКОН
2. Часть этих материалов появилась в Интернете в конце 2006 года. Их можно скачать на многих сайтах.
3. Через Интернет с языком ДРАКОН познакомился Геннадий Тышов. Заинтересовавшись новой идеей, он разработал интегрированную среду языка ДРАКОН под названием «ИС Дракон». И выложил ее в открытом доступе для тестирования, обсуждения, критики и дальнейшего совершенствования.
4. Благодаря инициативе Тышова все желающие получили возможность бесплатно скачать созданную им среду «ИС Дракон» и использовать ее в практической работе.
5. Тестирование программы «ИС Дракон» и работа с ней позволяет:
— на практике оценить весь комплекс вопросов, охватывающий а) возможности, b) преимущества и c) недостатки языка ДРАКОН и среды «ИС Дракон»;
— выбрать направление дальнейшего развития языка ДРАКОН и его инструментальных средств.
В 1996 году Государственный комитет по высшему образованию Российской Федерации включил изучение языка ДРАКОН в программу курса «Информатика» для направлений:
510000 — Естественные науки и математика
540000 — Образование
550000 — Технические науки
560000 — Сельскохозяйственные науки