stringtranslate.com

ДРАКОН

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

ДРАКОН ( русский : Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность , букв. «Дружественный русский алгоритмический язык, обеспечивающий ясность») — это бесплатный алгоритмический язык визуального программирования и моделирования с открытым исходным кодом, разработанный в рамках несуществующей советской космической программы «Буран» [2]. ] в 1986 году из-за необходимости повышения производительности разработки программного обеспечения. Визуальный язык обеспечивает единый способ представления процессов на блок-схемах .

Существуют различные реализации спецификации языка, которые могут использоваться для рисования и экспорта фактических блок-схем. Известные примеры включают бесплатный и открытый исходный код DRAKON Editor (сентябрь 2011 г.).

История

Разработка ДРАКОНа началась в 1986 году для устранения возникающего риска недопонимания и последующих ошибок между пользователями различных языков программирования в российской космической программе. Ее разработкой руководил Владимир Паронджанов при участии Российского Федерального космического агентства ( Центр академика Пилюгина , Москва ) и Российской академии наук ( Институт прикладной математики им. М.В. Келдыша ).

Язык был построен путем формализации, эргономизации и неклассической структуризации блок-схем, описанных в стандарте ISO 5807-85 и российском стандарте «Гост 19.701-90». [3] [4]

Целью было заменить специализированные языки, используемые в проекте «Буран» , одним универсальным языком программирования . А именно: ПРОЛ2 (PROL2), используемый для разработки программного обеспечения бортовых систем вычислительной системы «Бисер-4» [5] , ДИПОЛЬ (DIPOL), используемый для разработки программного обеспечения наземных вычислительных систем [5] и ЛАКС (LAKS), используемый для моделирования.

Работа была завершена в 1996 году (спустя 3 года после официального закрытия проекта «Буран»), когда была разработана автоматизированная система CASE -программирования «Графит-Флокс». [6]

Данный КЕЙС используется с 1996 года в: международном проекте « Морской старт» , [ требуется ссылка ] российском разгонном блоке « Фрегат » для бортовых систем управления и испытаний, [7] модернизированной ракете -носителе тяжелого класса «Протон-М» . [ требуется ссылка ]

Обзор

Название ДРАКОН — это русская аббревиатура от «Дружелюбный Русский Алгоритмический [язык], Который Обеспечивает Наглядность», что переводится как «Дружественный русский алгоритмический [язык], который иллюстрирует (или обеспечивает ясность)». Слово «наглядность» (произносится примерно как «на-ГЛЯ-дность») относится к концепции или идее, которую легко представить и понять, и может быть переведено как «ясность».

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

Язык ДРАКОН может использоваться как язык моделирования/«разметки» (который считается отдельной «чистой» программой ДРАКОН), так и как язык программирования (как часть гибридного языка).

Интеграция более строгого, «академического» варианта языка разметки в программирование, например, предоставляемого DRAKON, добавляет синтаксический сахар , позволяя пользователям разных языков программирования понимать вклад друг друга в общий проект и даже при необходимости давать комментарии.

Семья языков ДРАКОН

Иконки языка ДРАКОН
Макроиконы языка ДРАКОН.

ДРАКОН ( русский : ДРАКОН ; означает « дракон » на английском языке) разработан с целью обеспечения простоты понимания и читаемости, поскольку использование нескольких языков в одном проекте может привести к путанице.

DRAKON — это семейство гибридных языков, таких как DRAKON-C, DRAKON-ASM, DRAKON-Java и т. д. Все языки семейства DRAKON используют единый графический синтаксис, основанный на блок-схемах. Стандартный графический синтаксис обеспечивает схожесть drakon-charts для разных гибридных языков. Текстовый язык использует свой собственный синтаксис.

Основой графического синтаксиса является графический алфавит. Графические элементы («буквы») алфавита ДРАКОН называются значками (не символами). В ДРАКОНе также есть макроиконки . Макроиконки — это графические слова языка ДРАКОН; они состоят из значков. В языке ДРАКОН 27 значков и 21 макроиконка.

Дракон-карты состоят из иконок и макроиконок.

Важными частями макроиконов являются точки валентности (на иллюстрации изображены черными кружками). В эти точки последовательно вводятся иконки или микроиконы, которые drakon-editor выстраивает в столбцы.

Дизайн

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

DRAKON использует drakon-chart, который является формализацией традиционных блок-схем для отображения общей структуры программы. Фрагменты кода языка программирования добавляются к значкам DRAKON. Сочетание визуальных элементов с кодом помогает создавать и поддерживать читаемые блок-схемы вместе с разработкой рассматриваемой программы.

Правила DRAKON для создания диаграмм когнитивно оптимизированы для легкого понимания, что делает его инструментом для повышения интеллекта . [3] [8] [9] [10]

Схемы драконов больших многоцелевых программ могут быть сложными и трудными для понимания. Набор меньших программ, которые вместе служат одной и той же цели, часто легче понять, если изобразить их в виде схем драконов. Похожая проблема существует и при поддержке кода больших программ. Эту проблему иногда называют «правилом 30 [строк кода]» среди программистов.

Визуальный синтаксис

Полный текст статьи, содержащий описание визуального синтаксиса языка ДРАКОН на английском языке, 12 страниц, бесплатная загрузка, pdf. [11]

Примеры

Пример Тетриса

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

Эти примеры являются реальным кодом из реализации игры Тетрис . Примеры написаны на языке DRAKON-JavaScript. Значки (визуальные примитивы) языка DRAKON определяют общую структуру алгоритмов. Фрагменты кода внутри значков (примитивов) написаны на JavaScript.

advanceStep

Функция advanceStep реализует основную логику игры. advanceStep — это конечный автомат , представленный в виде дерева решений . [12] Игровой движок периодически вызывает advanceStep . Этот конечный автомат имеет три состояния: «играет», «падает» и «завершено». Игра выполняет различные действия в зависимости от текущего состояния. Например, в состоянии «играет», когда есть падающий снаряд и снаряд может двигаться вниз, он перемещается на одну ступень вниз.

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

С помощью DRAKON читатель алгоритма может визуально отслеживать все возможные пути в дереве решений.

нетСнаряда

Функция noProjectile для игры Тетрис на языке DRAKON-JavaScript

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

clearRow

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

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

Анимация исполнения ДРАКОНА

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

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

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

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

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

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

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

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

Программное обеспечение DRAKON Editor использовалось для графического программирования блок-схем, которые были специально проверены. C-код был сгенерирован из drakon-charts, например, для представления DRAKON кода обнаружения запуска. [13]

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

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

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

Хотя DRAKON в первую очередь разработан как инструмент для понимания компьютерных программ, drakon-charts также можно использовать для иллюстрации процессов в областях, не связанных с вычислениями.

В редакторе ДРАКОН к значкам ДРАКОН можно добавлять картинки. Эта возможность используется в некоторых областях для легкого создания инфографики в виде «блок-схем» . В России редактор ДРАКОН известен тем, что используется в медицинской сфере как инструмент для создания «инструктивных» диаграмм для пациентов или медицинского персонала. [ необходима цитата ] [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) 2012-12-27 . Получено 2012-12-27 .
  7. ^ Морозов В.В., Трунов Ю.В., Комиссаров А.И., Пак Е.А., Жучков А.Г., Дишель В.Д., Залихина Е.Е., Паронджанов В.Д. Система управления межорбитального пространства буксира «Фрегат» // Вестник НПО имени С.А. Лавочкина: Космонавтика и ракетостроение. — 2014, №1 (22). — С. 16–25. Морозов В.В., Трунов Ю.В., Комиссаров А.И., Пак Е.А., Жучков А.Г., Дишель В.Д., Залихина Е.Е., Паронджанов В.Д. Система управления универсальным космическим буксиром «Фрегат» // Вестник НПО имени С.А. Лавочкина. Космонавтика и ракетостроение — 2014, 1 (22). — С. 16–25.
  8. ^ Безель Я. В. Можно ли улучшить работу ума? Новый взгляд на проблему.— Вестник Российской академии наук. Том 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 . Получено 03.12.2017 .
  14. ^ Валеев С.С., Кондратьева Н.В. Анализ бизнес-процессов в распределенной организационно-технической системе на основе моментальных снимков // Вычислительные технологии. 2023. Т. 28. № 1. С. 41-47.
  15. ^ Пример медицинской программы по снижению жировых отложений (на русском языке) [ постоянная мертвая ссылка ]

Источники

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