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

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

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

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

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

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

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

История [ править ]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Дизайн [ править ]

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

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

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

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

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

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

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

Визуальный синтаксис [ править ]

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

Руководство [ править ]

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

Примеры [ править ]

Ветвление [ править ]

Цикл проверки (пока) [ править ]

Цикл do-check (do-while) [ править ]

Примеры программирования на языке ДРАКОН [ править ]

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

advanceStep [ править ]

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

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

noProjectile [ править ]

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

clearRow [ править ]

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

Автоматное программирование в ДРАКОН [ править ]

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

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

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

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

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

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

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

  • Подготовка к рыбалке.
  • В ожидании укуса.
  • Рыболовные работы.
  • Путь назад.

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

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

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

Примеры ДРАКОН-программ и эквивалентных им обычных программных кодов [ править ]

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

Редактор ДРАКОН [ править ]

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

Особенности [ править ]

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

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

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

  • AutoHotKey
  • C
  • C ++
  • C #
  • D
  • Erlang
  • Идти
  • Ява
  • JavaScript
  • Lua
  • Обработка
  • Python
  • Tcl
  • Verilog

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

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

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

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

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

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

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

Язык ДРАКОН в медицине [ править ]

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

Официальный русскоязычный сайт и интернет-форум языка ДРАКОН [ править ]

Русский сайт
ДРАКОН Русский сайт ДРАКОН

Чтобы прочитать русский текст на английском, нажмите правую кнопку мыши и выберите «Перевести на английский».

См. Также [ править ]

  • Концептуальное программирование
  • Схема

Примечания [ править ]

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

Ссылки [ править ]

  • О языке ДРАКОН на английском .
  • В. Паронджанов. Как улучшить работу своего ума. Алгоритмы без программистов - это очень просто! ( Как улучшить работу ума. Алгоритмы без программистов - это очень просто! М .: Дело, 2001. - 360с. )
  • С. Миткин. ДРАКОН: человеческая революция в понимании программ

Внешние ссылки [ править ]

  • История ДРАКОН (на русском языке )
  • Трансгуманизм | ДРАКОН Список интернет-ресурсов о Драконе (на русском языке)
  • ДРАКОН + Оберон = язык визуального программирования ДРОН (на английском языке)
  • ДРАКОН + Оберон = язык визуального программирования ДРОН (на русском)
  • Редактор ДРАКОН для Windows, Mac и Linux.
  • Drakon.Tech - онлайн-среда разработки на базе DRAKON.
  • ИС Дракон для Windows.
  • Learn Drakon Synchronized Music Slideshow Видео Слайд-шоу о том, как использовать Drakon, настроенный на [Кевин МакЛауд] музыку, синхронизированную для легкого обучения.