DRAKON
![]() | Судя по всему, основной автор этой статьи тесно связан с ее предметом. ( Март 2015 г. ) |
Парадигма | Визуальный |
---|---|
Разработчик | Центр Академика Пилюгина Министерства общего машиностроения |
Впервые появился | 1996 |
Объем | Компьютерная разработка программного обеспечения |
Веб-сайт | drakon |
Основные реализации | |
GRAFIT-FLOKS (1996), IS Drakon (2008), DRAKON Editor (2011), DrakonHub (2018), Drakon.Tech (2019) | |
Под влиянием | |
ПРОЛ2, ДИПОЛЬ, ЛОСОСЬ | |
Под влиянием | |
Платформа QReal DSM [1] |



DRAKON ( Russian : Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность , lit. 'Friendly Russian Algorithmic language Which Provides Clarity') is a free and open source algorithmic visual programming and modeling language developed as part of the defunct Soviet Union Buran space program [2] в 1986 году в связи с необходимостью повышения производительности разработки программного обеспечения. Визуальный язык обеспечивает единый способ представления процессов на блок-схемах .
Существуют различные реализации спецификации языка, которые можно использовать для рисования и экспорта реальных блок-схем. Яркими примерами являются бесплатный редактор DRAKON Editor с открытым исходным кодом (сентябрь 2011 г.).
История [ править ]
Разработка ДРАКОНа началась в 1986 году с целью устранения возникающего риска недопонимания и последующих ошибок между пользователями разных языков программирования в российской космической программе. Его разработкой руководил Владимир Паронджанов при участии Федерального космического агентства России ( Центр академика Пилюгина , Москва ) и Российской академии наук ( Институт прикладной математики им. Келдыша ).
Язык был построен путем формализации, эргономизации и неклассического структурирования блок-схем, описанных в стандарте ISO 5807-85 и российском стандарте «Гост 19.701-90». [3] [4]
Целью была замена специализированных языков, используемых в проекте «Буран» , одним универсальным языком программирования . А именно ПРОЛ2 (ПРОЛ2), используемый при разработке программного обеспечения бортовых систем вычислительной системы Бисер-4 (Бисер-4), [5] ДИПОЛЬ (ДИПОЛЬ), используемый для разработки программного обеспечения компьютерных систем наземного обслуживания) [5] и ЛАКС (ЛАКС), используемые для моделирования.
Работы завершились в 1996 году (через 3 года после официального закрытия проекта «Буран»), когда была разработана автоматизированная система CASE -программирования под названием «Графит-Флокс». [6]
Данный КЕЙС используется с 1996 года в: международном проекте « Морской старт» , [ нужна ссылка ] Российский орбитальный разгонный блок « Фрегат» (русский: Фрегат, фрегат) для бортовых систем управления и испытаний, [7] Модернизированная тяжелая ракета-носитель (ракета-носитель) «Протон-М» . [ нужна ссылка ]
Обзор [ править ]
The name DRAKON is the Russian acronym for "Дружелюбный Русский Алгоритмический [язык], Который Обеспечивает Наглядность", which translates to "Friendly Russian Algorithmic [language] that illustrates (or provides clarity)". The word "наглядность" (pronounced approximately as "naa-glya-dno-st-th") refers to a concept or idea being easy to imagine and understand, and may be translated as "clarity".
В отличие от философии UML , философия языка ДРАКОН основана на дополнении при необходимости с помощью гибридного языка, что можно проиллюстрировать как «встраивание фрагментов кода из текстового языка, используемого в форму, необходимую ДРАКОНу». Таким образом, ДРАКОН всегда остается простым визуальным языком, который можно использовать в качестве дополнения для программиста, который заинтересован в упрощении поддержки кода своего проекта или других долгосрочных нуждах, например, улучшении эргономики процесса кодирования или упрощении поддержки. код легче просматривать и понимать.
Язык ДРАКОН может использоваться как в качестве языка моделирования/разметки (который считается самостоятельной «чистой программой ДРАКОН»), так и в качестве языка программирования (в составе гибридного языка).
Интеграция более строгого, «академического» варианта языка разметки в программирование, например, предоставляемого DRAKON, добавляет синтаксический сахар , позволяющий пользователям разных языков программирования понимать вклад друг друга в общий проект и даже при необходимости предоставлять комментарии.
Семья языков ДРАКОН [ править ]


ДРАКОН ( по-русски : ДРАКОН ; в переводе с английского означает « дракон ») разработан с целью обеспечить простоту понимания и удобочитаемость, поскольку использование нескольких языков в одном проекте может привести к путанице.
ДРАКОН — это семейство гибридных языков, таких как ДРАКОН-C, ДРАКОН-ASM, ДРАКОН-Java и т. д. Все языки семейства ДРАКОН имеют единый графический синтаксис, основанный на блок-схемах. Стандартный графический синтаксис обеспечивает сходство дракон-диаграмм для разных гибридных языков. Текстовый язык использует собственный синтаксис.
Основой графического синтаксиса является графический алфавит. Графические элементы («буквы») алфавита ДРАКОН называются иконками (а не символами). В ДРАКОНЕ также есть макроиконки . Макроиконки — это графические слова языка ДРАКОН; они состоят из иконок. В языке ДРАКОН 27 иконок и 21 макроиконка.
Дракон-диаграммы состоят из иконок и макроиконок.
Важными частями макроиконов являются валентные точки (на иллюстрации изображены черными кружками). В эти точки могут быть последовательно введены значки или микрозначки и упорядочены дракон-редактором в столбцы.
Дизайн [ править ]
ДРАКОН был создан как простой в освоении визуальный язык, помогающий понимать компьютерные программы, написанные на разных языках программирования, для иллюстративных, плановых и стратегических целей.
ДРАКОН использует drakon-chart, который представляет собой формализацию традиционных блок-схем для отображения общей структуры программы. К значкам ДРАКОН добавлены фрагменты кода языка программирования. Сочетание визуальных элементов с кодом помогает создавать и поддерживать читаемые блок-схемы одновременно с разработкой рассматриваемой программы.
Правила DRAKON для создания диаграмм когнитивно оптимизированы для облегчения понимания, что делает его инструментом повышения интеллекта . [3] [8] [9] [10]
Драконовые диаграммы больших многоцелевых программ могут быть сложными и трудными для понимания. Набор небольших программ, которые вместе служат одной и той же цели, часто легче понять, если их представить в виде драконовых диаграмм. Аналогичная проблема существует при поддержке кода больших программ. Программисты иногда называют эту проблему «правилом 30 [строк кода]».
Визуальный синтаксис [ править ]
Полнотекстовая статья с описанием визуального синтаксиса языка ДРАКОН на английском языке, 12 страниц, скачать бесплатно, pdf. [11]
![]() | Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( ноябрь 2017 г. ) |
Примеры [ править ]
Пример тетриса [ править ]
Простой пример программы на языке ДРАКОН
Эти примеры представляют собой реальный код реализации игры «Тетрис» . Примеры написаны на языке ДРАКОН-JavaScript. Иконки (визуальные примитивы) языка ДРАКОН определяют общую структуру алгоритмов. Фрагменты кода внутри значков (примитивов) написаны на JavaScript.
заранееШаг [ править ]
Функция AdvanceStep реализует основную логику игры. AdvanceStep — это конечный автомат , представленный в виде дерева решений . [12] Игровой движок периодически вызывает AdvanceStep . Этот конечный автомат имеет три состояния: «играет», «отбрасывается» и «завершается». Игра предпринимает разные действия в зависимости от текущего состояния. Например, в состоянии «игры», когда есть падающий снаряд и снаряд может двигаться вниз, он перемещается на одну ступень вниз.

С помощью ДРАКОН читатель алгоритма может визуально проследить все возможные пути в дереве решений.
Код JavaScript, сгенерированный из диаграммы ДРАКОН: function advanceStep() {
var _sw_8;
_sw_8 = module.state;
if (_sw_8 === "playing") {
if (module.projectile) {
if (canMoveDown()) {
moveDown()
return getStepPeriod()
} else {
freezeProjectile()
return noProjectile()
}
} else {
return noProjectile()
}
} else {
if (_sw_8 === "dropping") {
if (canMoveDown()) {
moveDown()
return DropPeriod
} else {
freezeProjectile()
module.state = "playing"
return getStepPeriod()
}
} else {
if (_sw_8 === "finished") {
} else {
throw new Error("Unexpected Choice value: " + _sw_8);
}
return undefined
}
}
}
|
noProjectile [ править ]

Функция noProjectile обрабатывает конкретную ситуацию, когда нет падающего снаряда. Если есть заполненная строка, она удаляется из сетки. В противном случае игра попытается вставить новый снаряд. Если для снаряда нет места, игра проиграна.
Код JavaScript, сгенерированный из диаграммы ДРАКОН: function noProjectile() {
if (clearRow()) {
return getStepPeriod()
} else {
createProjectile()
if (isGameLost()) {
gameOver()
module.state = "finished"
return undefined
} else {
return getStepPeriod()
}
}
}
|
ClearRow [ править ]

Функция ClearRow сканирует все строки снизу вверх, пока не встретит строку без пробелов. В этом случае ряд удаляется из сетки, счет увеличивается и темп игры увеличивается.
Код JavaScript, сгенерированный из диаграммы ДРАКОН: function clearRow() {
var row, rows;
rows = module.glass.rows
row = rows.length - 1;
while (true) {
if (row >= 0) {
if (rowHasHoles(row)) {
row--;
} else {
deleteRow(row)
increaseScore()
increaseSpeed()
return true
}
} else {
module.addedScore = 0
return false
}
}
}
|
Анимация казни ДРАКОНА [ править ]
На рисунке ниже показано выполнение алгоритма силуэта ДРАКОН. Выполнение алгоритма анимируется путем выделения элементов диаграммы в порядке их выполнения.
Силуэт «Рыбалка» состоит из четырех деревьев:
- Подготовка к рыбалке.
- Ожидание укуса.
- Рыболовная работа.
- Путь назад.
Основной путь каждого дерева показан жирной вертикальной линией, которая называется вертелом.
В графе потока управления всегда есть путь от значка заголовка до каждой вершины (узла) графа потока управления. Следовательно, силуэт не может иметь недостижимый код ни при каких условиях.

Современное использование [ править ]
ДРАКОН в Немецком аэрокосмическом центре [ править ]
Язык ДРАКОН используется в Немецком аэрокосмическом центре для реализации некоторых важных функций, продиктованных правилами безопасности летных испытаний, где автоматизация важна из-за максимального расстояния до наземной станции и процесс требует быстрого автоматического выполнения.
В программе «ДРАКОН Редактор» графически программировались блок-схемы, которые подвергались специальной проверке. C-код был сгенерирован из drakon-диаграмм, например, для представления DRAKON кода обнаружения запуска. [13]
Моделирование бизнес-процессов [ править ]
Язык ДРАКОН может использоваться как язык моделирования и визуализации бизнес-процессов. «Язык ДРАКОН применен в качестве базового языка построения моделей бизнес-процессов, что позволяет получить прототип конечного автомата при построении моделей бизнес-процессов. Визуализация бизнес-процессов в пространстве состояний позволяет решить мейкер для повышения эффективности принятия решений». [14]
Использование вне программирования [ править ]
Хотя ДРАКОН в первую очередь разработан как инструмент для понимания компьютерных программ, дракон-диаграммы также можно использовать для иллюстрации процессов в областях, не связанных с вычислениями.
В редакторе ДРАКОН к иконкам ДРАКОН можно добавлять картинки. Эта возможность используется в некоторых областях, чтобы легко создавать инфографику, похожую на блок-схему . В России редактор ДРАКОН известен тем, что его используют в медицинской сфере как инструмент для составления «инструктивных» карт для пациентов или медицинского персонала. [ нужна ссылка ] [15]
См. также [ править ]
Ссылки [ править ]
- ^ Терехов, Андрей; Брыксин Тимофей; Литвинов Юрий. Как сделать визуальное моделирование более привлекательным для разработчиков программного обеспечения / 11-я летняя школа LASER по программной инженерии. Передовая разработка программного обеспечения. 7-13 сентября 2014 г. – остров Эльба, Италия.
- ^ "Степан-миткин/Дракон_редактор" . Гитхаб . 28 сентября 2022 г.
- ^ Jump up to: Перейти обратно: а б Окулова Л. П. Проектирование образовательного процесса в соответствии с требованиями педагогической эргономики // Вестник. Наука и практика. Материалы конференции «Инновации и научные исследования, а также их применение на практике \ Innowacje i badania naukowe, jak rowniez ich zastosowanie w praktyce. — 29.05.2012- 31.05.2012. Варшава \ Warszaw».
- ^ Паронджанов В.Д. Визуальный синтаксис языка ДРАКОН // Программирование и компьютерное программное обеспечение, 01/1995; Том 21 (Выпуск 3): с. 142 – 153. (Здесь неверный перевод. Следует читать как «Язык ДРАКОНА».)
- ^ Jump up to: Перейти обратно: а б Штурманы ракет / Под общей редакцией Е. Л. Межирицкого. — М.: БЛОК-Информ-Экспресс, 2008. — 384 с. — C. 192. — ISBN 978-5-93735-008-4
- ^ «Методика разработки алгоритмов и программ «Графит-Флокс». » (PDF) . Архивировано из оригинала (PDF) 27 декабря 2012 г. Проверено 27 декабря 2012 г.
- ^ Морозов В.В., Трунов Ю.В., Комиссаров А.И., Пак Е.А., Жучков А.Г., Дишель В.Д., Залихина Е.Е., Паронджанов В.Д. Система управления межорбитального космического буксира «Фрегат» // Вестник НПО имени С.А. Лавочкина: Космонавтика и ракетостроение. — 2014, №1 (22). — С. 16–25. (In Russian) Morozov V.V., Trunov Yu.V., Komissarov A.I., Pak E.A., Zhuchkov A.G., Dishel V.D., Zalihina E.E., Parondzhanov V.D. Control System of "Fregat" Versatile Space Tug // Vestnik NPO imeni S.A. Lavochkina. Cosmonautics and Rocket Engineering — 2014, 1 (22). — P. 16–25.
- ^ Безель Джа. V. Можно ли улучшить работу ума? Новый взгляд на проблему.— Вестник РАН. Том 73, выпуск 4, 2003 г.
- ^ Созоров Н. Г., Трошин М. В. Дракон-редактор как основное звено в формализации целевых дидактических ресурсов для проектирования интерактивного учебного курса . Материалы региональной научно-методической конференции ИДНО Томского политехнического университета «Электронные дидактические материалы в инженерном образовании» 11-12 октября 2009 г.
- ^ Паронджанов В. Д. (2012). "Учебное пособие по языку ДРАКОН для вузов". Учись писать, читать и понимать алгоритмы. Алгоритмы для правильного мышления. Основы алгоритмизации . М.: ДМК Пресс. p. 520. ISBN 978-5-94074-800-7 . вуз ов". Учись писать, читать и понимать алгоритмы. Алгоритмы для правильного мышления. Основы алгоритмизации . М.: ДМК Пресс. p. 520. ISBN 978-5-94074-800-7 .
- ^ Паронджанов В.Д. (1995). Визуальный синтаксис языка ДРАКОН . Том. 21. ПРОГРАММИРОВАНИЕ И КОМПЬЮТЕРНОЕ ОБЕСПЕЧЕНИЕ. Официальный английский перевод Программирования. стр. 142–153.
- ^ Митькин С.Б. Автоматное программирование на языке ДРАКОН // Программная инженерия. Том 10, № 1, 2019 (in Russian). Mitkin Stepan B. Automata-Based Programming in DRAKON Language. Programmnaya Ingeneria, 2019, vol. 10, no. 1, pp. 3—13. DOI: 10.17587/prin.10.3-13
- ^ «Марк Шварцбах, Свен Влах, Максимилиан Лайакер. Модификация научной системы управления полетом для миссий БПЛА, запускаемых на воздушном шаре // Немецкий аэрокосмический центр DLR // IEEE, 2015» (PDF) . drakon.su . Проверено 3 декабря 2017 г.
- ^ Валеев С.С., Кондратьева Н.В. Анализ бизнес-процессов в распределенной организационно-технической системе на основе снимков // Вычислительные технологии. 2023. Т. 28. № 1. С. 41-47.
- ^ Пример медицинской программы по снижению жировых отложений (на русском языке) [ постоянная мертвая ссылка ]
Источники [ править ]
- V. Parondzhanov. How to improve the work of your mind. Algorithms without programmers - it's very simple! ( Как улучшить работу ума. Алгоритмы без программистов - это очень просто! М.: Дело, 2001. - 360с. )
- С. Митькин. ДРАКОН: Человеческая революция в понимании программ
Внешние ссылки [ править ]
