ДРАКОН

редактировать
Инструмент сопоставления алгоритмов
ДРАКОН
Парадигма визуальный
Впервые появился1996
Дисциплина ввода определяется вторым языком, который является частью выбранного гибридного языка
Веб-сайтdrakon-editor.sourceforge.net
Основные реализации
GRAFIT-FLOKS (1996), IS Drakon (2008), DRAKON Editor (2011), DrakonHub (2018), Drakon.Tech (2019)
Под влиянием
PROL2, DIPOL, LAKS
Под влиянием
Платформа QReal DSM
Выполнение алгоритма DRAKON анимируется путем выделения элементов диаграммы в порядке их выполнения. Алгоритм поиска Дейкстры в DRAKON Внешняя часть алгоритма быстрой сортировки в DRAKON-C Диаграмма ДРАКОН, описывающая транспортировку крионического пациента

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

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

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

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

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

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

Содержание
  • 1 История
  • 2 Семейство языков ДРАКОН (гибридные языки)
  • 3 Дизайн
    • 3.1 Другие цели и использование
  • 4 Визуальный синтаксис
  • 5 Руководство
  • 6 Примеры
    • 6.1 Ветвление
    • 6.2 Цикл Check-do (while)
    • 6.3 Цикл Do-check (do-while)
  • 7 Примеры программирования на языке DRAKON
    • 7.1 advanceStep
    • 7.2 noProjectile
    • 7.3 clearRow
  • 8 Автоматическое программирование в DRAKON
  • 9 Анимация выполнения алгоритма DRAKON
  • 10 Примеры DRAKON-программ и эквивалентных им обычных программных кодов
  • 11 DRAKON Editor
    • 11.1 Возможности
  • 12 ДРАКОН в Немецком аэрокосмическом центре
  • 13 ДРАКОН язык в медицине
  • 14 См. Также
  • 15 Примечания
  • 16 Ссылки
  • 17 Внешние ссылки
История

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

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

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

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

Этот CASE используется с 1996 года во многих крупных космических программах: международный проект Морской старт, российский вывод на орбиту разгонный блок Фрегат (русский: Фрегат, фрегат), модернизированная тяжелая ракета-носитель (ракета-носитель) Протон-М и др. Точная роль ДРАКОНа в этих проектах, однако, не может быть определена. Реальный опыт построения систем с помощью DRAKON остается крайне скудным, поскольку публично доступны лишь несколько очень коротких фрагментов кода.

Семейство ДРАКОН-языков (гибридных языков)
Иконки языка ДРАКОН Макроиконы языка ДРАКОН.

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

ДРАКОН используется не как отдельный автономный язык, а как семейство гибридных языков, таких как ДРАКОН-C, ДРАКОН-ASM, ДРАКОН-Java и др. Все гибридные языки семейства ДРАКОН имеют единый графический синтаксис, основанный на блок-схемах. Стандартный графический синтаксис обеспечивает сходство дракон-диаграмм для разных гибридных языков. Используемый текстовый язык использует собственный синтаксис.

Строгое различие графического и текстового синтаксиса вместе с богатой графикой улучшает гибкость и разнообразие выразительных средств языка. Унификация правил графического синтаксиса гибридных языков обеспечивает их концептуальное единство.

Основа графического синтаксиса - графический алфавит. Графические элементы (графические буквы) алфавита ДРАКОН называются пиктограммами (не символами). В графическом алфавите ДРАКОН 27 иконок.

В ДРАКОНе есть не только иконки, но и макросы. Макроиконы - это графические слова языка ДРАКОН. Так же, как слова состоят из букв, макросы (графические слова) состоят из значков (графических букв). В языке ДРАКОН 21 макроконус.

Иконки и макросы являются строительными блоками для построения дракон-карт.

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

Дизайн

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

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

Правила DRAKON для создания диаграмм когнитивно оптимизированы для легкого понимания, что делает их инструментом для увеличения интеллекта.

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

Другие цели и использование

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

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

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

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

Руководство

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

Примеры

Ветвление

В ДРАКОНе менее желательный путь идет вправо.

Алгоритм выхода из своего положения. квартира:

  • Наденьте одежду.
  • Возьмите зонт, если идет дождь.
  • Выйдите из дома.

Контрольный цикл (пока)

Сначала проверьте условия выхода. Затем выполните действие.

Алгоритм тренировки:

  • Разминка.
  • Пока вы не устали, поднимите вес и отдохните.
  • Повторите.

Выполните проверку (do-while) цикл

Сначала выполните действие. Затем проверьте условие выхода.

Другой алгоритм тренировки:

  • Разминка.
  • Поднимите вес.
  • Отдых.
  • Если устали, бросьте.
  • Повторить.
Примеры программирования на языке ДРАКОН

Эти примеры представляют собой реальный код из реализации игры Тетрис. Примеры написаны на языке ДРАКОН-JavaScript. Иконки (визуальные примитивы) языка ДРАКОН определяют общую структуру алгоритмов. Фрагменты кода внутри значков (примитивов) написаны на JavaScript.

advanceStep

Функция advanceStep реализует основную логику игры. advanceStep - это конечный автомат , представленный в виде дерева решений. Движок игры периодически вызывает advanceStep. Этот конечный автомат имеет три состояния: «воспроизведение», «сброс» и «завершение». В зависимости от текущего состояния игра выполняет разные действия. Например, в "игровом" состоянии, когда снаряд падает и снаряд может двигаться вниз, он перемещается на один шаг вниз.

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

Основная логика игры Тетрис на языке DRAKON-JavaScript

Код JavaScript, сгенерированный из диаграммы DRAKON:

function advanceStep () {var _sw_8; _sw_8 = module.state; if (_sw_8 === "игра") {if (module.projectile) {if (canMoveDown ()) {moveDown () return getStepPeriod ()} else {freezeProjectile () return noProjectile ()}} else {return noProjectile () }} else {if (_sw_8 === "droppping") {if (canMoveDown ()) {moveDown () return DropPeriod} else {freezeProjectile () module.state = "playing" return getStepPeriod ()}} else {if ( _sw_8 === "завершено") {} else {throw new Error ("Неожиданное значение выбора:" + _sw_8); } return undefined}}}

noProjectile

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

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

Код JavaScript, сгенерированный из диаграммы DRAKON:

function noProjectile () {if (clearRow ()) {return getStepPeriod ()} else {createProjectile () if (isGameLost ()) {gameOver () module.state = "finished" return undefined} else {return getStepPeriod ()}}}

clearRow

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

Алгоритм, удаляющий строку из сетки Тетриса на языке DRAKON-JavaScript

Код JavaScript, сгенерированный из DRAKON-диаграммы:

function clearRow () {var row, rows; rows = module.glass.rows row = rows.length - 1; в то время как (истина) {если (строка>= 0) {если (rowHasHoles (строка)) {строка--; } else {deleteRow (row) IncreaseScore () УвеличитьSpeed ​​() return true}} else {module.addedScore = 0 return false}}}
Автоматическое программирование в DRAKON

График силуэта DRAKON тип - конечный автомат. Ветви силуэта можно интерпретировать как состояния автомата. Следовательно, можно реализовать автоматное программирование с помощью языка ДРАКОН.

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

Язык DRAKON предусматривает соглашение, которому должны следовать диаграммы. Это соглашение упорядочивает автоматы и дает им единую структуру...

Фундаментальное различие между диаграммами DRAKON и другими визуальными обозначениями для программирования на основе автоматов состоит в том, что DRAKON сочетает в себе автоматный выбор действия с деревьями решений.. Деревья решений делают автоматы более гибкими и понятными для широкого круга разработчиков...

Анимация выполнения алгоритма ДРАКОН

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

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

  • Подготовка к рыбалке.
  • Ожидание поклевки.
  • Рыбалка.
  • Способ назад.

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

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

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

Этот раздел не завершен (будет сделано позже)

DRAKON Editor

DRAKON Editor - программа для создания блок-схем DRAKON . Он используется для двух целей: документирования алгоритмов и программирования. DRAKON Editor написан на Tcl / Tk и работает в Windows, OS X и Linux. В качестве инструмента для документирования DRAKON Editor помогает создавать диаграммы, отражающие алгоритмические знания. Такие знания охватывают как поведение компьютерных систем, так и процедуры, не связанные напрямую с компьютерами, например, медицинские алгоритмы и бизнес-процессы. Редактор DRAKON может генерировать исходный код из диаграмм. Таким образом, DRAKON Editor может использоваться как IDE.

Возможности

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

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

DRAKON Editor поддерживает следующие языки программирования :

Для некоторых языков программирования DRAKON Editor генерирует исходный код для ERIL языка моделирования данных.

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

Для Erlang редактор DRAKON создает шаблонный код из визуального представления дерева контроля.

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

DRAKON в Немецком аэрокосмическом центре

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

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

язык ДРАКОН в медицине

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

См. Также
Примечания
Ссылки
Внешние ссылки
Викискладе есть материалы по теме ДРАКОН.
Последняя правка сделана 2021-05-16 09:26:01
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте