stringtranslate.com

ДРАКОН

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

ДРАКОН ( русский : Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность , букв. «Дружественный русский алгоритмический язык, обеспечивающий ясность») — это бесплатный алгоритмический язык визуального программирования и моделирования с открытым исходным кодом , разработанный в рамках несуществующей космической программы Советского Союза «Буран» [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 . Этот конечный автомат имеет три состояния: «играет», «отбрасывается» и «завершается». Игра предпринимает разные действия в зависимости от текущего состояния. Например, в состоянии «игры», когда есть падающий снаряд и снаряд может двигаться вниз, он перемещается на одну ступень вниз.

Основная логика игры Тетрис на языке ДРАКОН-JavaScript.

С помощью ДРАКОН читатель алгоритма может визуально проследить все возможные пути в дереве решений.

нет снаряда

Функция noProjectile для игры Тетрис на языке ДРАКОН-JavaScript

Функция noProjectile обрабатывает конкретную ситуацию, когда нет падающего снаряда. Если есть заполненная строка, она удаляется из сетки. В противном случае игра попытается вставить новый снаряд. Если для снаряда нет места, игра проиграна.

ClearRow

Алгоритм удаления линии из сетки тетриса на языке ДРАКОН-JavaScript

Функция ClearRow сканирует все строки снизу вверх, пока не встретит строку без пробелов. В этом случае ряд удаляется из сетки, счет увеличивается и темп игры увеличивается.

Анимация казни ДРАКОНА

На рисунке ниже показано выполнение алгоритма силуэта ДРАКОН. Выполнение алгоритма анимируется путем выделения элементов диаграммы в порядке их выполнения.

Силуэт «Рыбалка» состоит из четырех деревьев:

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

В графе потока управления всегда есть путь от значка заголовка до каждой вершины (узла) графа потока управления. Следовательно, силуэт не может иметь недостижимый код ни при каких условиях.

Выполнение алгоритма ДРАКОН анимируется путем выделения элементов диаграммы в порядке их выполнения.

Современное использование

ДРАКОН в Немецком аэрокосмическом центре

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

В программе «ДРАКОН Редактор» графически программировались блок-схемы, которые подвергались специальной проверке. C-код был сгенерирован из drakon-диаграмм, например, для представления DRAKON кода обнаружения запуска. [13]

Моделирование бизнес-процессов

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

Использование вне программирования

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

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

Смотрите также

Рекомендации

  1. ^ Терехов, Андрей; Брыксин Тимофей; Литвинов Юрий. Как сделать визуальное моделирование более привлекательным для разработчиков программного обеспечения / 11-я летняя школа LASER по программной инженерии. Передовая разработка программного обеспечения. 7-13 сентября 2014 г. – остров Эльба, Италия.
  2. ^ "Степан-Миткин/Drakon_editor". Гитхаб . 28 сентября 2022 г.
  3. ^ ab Окулова Л. П. Проектирование образовательного процесса в соответствии с требованиями педагогической эргономики // Вестник. Наука и практика. Материалы конференции «Инновации и научные исследования, а также их применение на практике \ Innowacje i badania naukowe, jakrowniez ich zastosowanie w praktyce. — 29.05.2012- 31.05.2012. Варшава \ Варшава».
  4. ^ Паронджанов В.Д. Визуальный синтаксис языка ДРАКОН // Программирование и компьютерное программное обеспечение, 01/1995; Том 21 (Выпуск 3): с. 142 – 153. (Здесь неверный перевод. Следует читать как «Язык ДРАКОНА».)
  5. ^ ab Штурманы ракеты / Под общей редакцией Е. Л. Межирицкого. — М.: БЛОК-Информ-Экспресс, 2008. — 384 с. - С. 192. - ISBN 978-5-93735-008-4 . 
  6. ^ "Методика разработки алгоритмов и программ "Графит-Флокс."" (PDF) . Архивировано из оригинала (PDF) 27 декабря 2012 г. Проверено 27 декабря 2012 г.
  7. ^ Морозов В.В., Трунов Ю.В., Комиссаров А.И., Пак Е.А., Жучков А.Г., Дишель В.Д., Залихина Е.Е., Паронджанов В.Д. Система управления межорбитального пространства буксира «Фрегат» // Вестник НПО имени С.А. Лавочкина: Космонавтика и ракетостроение. — 2014, №1 (22). — С. 16–25. Морозов В.В., Трунов Ю.В., Комиссаров А.И., Пак Е.А., Жучков А.Г., Дишель В.Д., Залихина Е.Е., Паронджанов В.Д. Система управления универсальным космическим буксиром "Фрегат" // Вестник НПО имени С.А. Лавочкина. Космонавтика и ракетостроение — 2014, 1 (22). — С. 16–25.
  8. ^ Безель Джа. V. Можно ли улучшить работу ума? Новый взгляд на проблему.— Вестник РАН. Том 73, выпуск 4, 2003 г.
  9. ^ Созоров Н. Г., Трошин М. В. Дракон-редактор как последнее звено в формировании целевых дидактических ресурсов для проектирования интерактивного курса курса. Материалы региональной научно-методической конференции ИДНО Томского политехнического университета «Электронные дидактические материалы в инженерном образовании» 11-12 октября 2009 г.
  10. ^ Паронджанов В. Д. (2012). "Учебное пособие по языку ДРАКОН для вузов". Учимся писать, читать и понимать алгоритмы. Алгоритмы для размышления. Основы алгоритмизации . М.: ДМК Пресс. п. 520. ИСБН 978-5-94074-800-7.Вузов». Учись писать, читать и понимать алгоритмы . Алгоритмы для высшего мышления. Основы алгоритмизации . М.: ДМК Пресс . 
  11. ^ Паронджанов В.Д. (1995). Визуальный синтаксис языка ДРАКОН. Том. 21. ПРОГРАММИРОВАНИЕ И КОМПЬЮТЕРНОЕ ОБЕСПЕЧЕНИЕ. Официальный английский перевод Программирования. стр. 142–153.
  12. ^ Митькин С.Б. Автоматическое программирование на языке ДРАКОН // Программная инженерия. Том 10, № 1, 2019 г. (на русском языке). Митькин Степан Борисович Автоматное программирование на языке ДРАКОН. Программная инженерия, 2019, т. 1. 10, нет. 1, стр. 3–13. DOI: 10.17587/прин.10.3-13
  13. ^ «Марк Шварцбах, Свен Влах, Максимилиан Лайакер. Модификация научной системы управления полетом для миссий БПЛА, запускаемых на воздушном шаре // Немецкий аэрокосмический центр DLR // IEEE, 2015» (PDF) . drakon.su . Проверено 3 декабря 2017 г.
  14. ^ Валеев С.С., Кондратьева Н.В. Анализ бизнес-процессов в распределенной организационно-технической системе на основе снимков // Вычислительные технологии. 2023. Т. 28. № 1. С. 41-47.
  15. ^ Пример медицинской программы по снижению жировых отложений (на русском языке) [ постоянная мертвая ссылка ]

Источники

Внешние ссылки