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