Jump to content

DRAKON

DRAKON
Парадигма Визуальный
Разработчик Центр Академика Пилюгина Министерства общего машиностроения
Впервые появился 1996
Объем Компьютерная разработка программного обеспечения
Веб-сайт drakon .являются /начинать
Основные реализации
GRAFIT-FLOKS (1996), IS Drakon (2008), DRAKON Editor (2011), DrakonHub (2018), Drakon.Tech (2019)
Под влиянием
ПРОЛ2, ДИПОЛЬ, ЛОСОСЬ
Под влиянием
Платформа QReal DSM [1]
Алгоритм поиска Дейкстры в ДРАКОН
Внешняя часть алгоритма быстрой сортировки в ДРАКОН-С
Схема ДРАКОН, описывающая транспортировку криопациента.

DRAKON ( Russian : Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность , lit. 'Friendly Russian Algorithmic language Which Provides Clarity') is a free and open source algorithmic visual programming and modeling language developed as part of the defunct Soviet Union Buran space program [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] Модернизированная тяжелая ракета-носитель (ракета-носитель) «Протон-М» . [ нужна ссылка ]

Обзор [ править ]

The name DRAKON is the Russian acronym for "Дружелюбный Русский Алгоритмический [язык], Который Обеспечивает Наглядность", which translates to "Friendly Russian Algorithmic [language] that illustrates (or provides clarity)". The word "наглядность" (pronounced approximately as "naa-glya-dno-st-th") refers to a concept or idea being easy to imagine and understand, and may be translated as "clarity".

В отличие от философии 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.

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

Код JavaScript, сгенерированный из диаграммы ДРАКОН:

function advanceStep() {
    var _sw_8;
    _sw_8 = module.state;
    if (_sw_8 === "playing") {
        if (module.projectile) {
            if (canMoveDown()) {
                moveDown()
                return getStepPeriod()
            } else {
                freezeProjectile()
                return noProjectile()
            }
        } else {
            return noProjectile()
        }
    } else {
        if (_sw_8 === "dropping") {
            if (canMoveDown()) {
                moveDown()
                return DropPeriod
            } else {
                freezeProjectile()
                module.state = "playing"
                return getStepPeriod()
            }
        } else {
            if (_sw_8 === "finished") {
            } else {
                throw new Error("Unexpected Choice value: " + _sw_8);
            }
            return undefined
        }
    }
}

noProjectile [ править ]

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

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

Код JavaScript, сгенерированный из диаграммы ДРАКОН:

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

ClearRow [ править ]

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

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

Код JavaScript, сгенерированный из диаграммы ДРАКОН:

function clearRow() {
    var row, rows;
    rows = module.glass.rows
    row = rows.length - 1;
    while (true) {
        if (row >= 0) {
            if (rowHasHoles(row)) {
                row--;
            } else {
                deleteRow(row)
                increaseScore()
                increaseSpeed()
                return true 
            }
        } else {
            module.addedScore = 0
            return false 
        }
    }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. ^ Терехов, Андрей; Брыксин Тимофей; Литвинов Юрий. Как сделать визуальное моделирование более привлекательным для разработчиков программного обеспечения / 11-я летняя школа LASER по программной инженерии. Передовая разработка программного обеспечения. 7-13 сентября 2014 г. – остров Эльба, Италия.
  2. ^ "Степан-миткин/Дракон_редактор" . Гитхаб . 28 сентября 2022 г.
  3. ^ Jump up to: Перейти обратно: а б Окулова Л. П. Проектирование образовательного процесса в соответствии с требованиями педагогической эргономики // Вестник. Наука и практика. Материалы конференции «Инновации и научные исследования, а также их применение на практике \ Innowacje i badania naukowe, jak rowniez ich zastosowanie w praktyce. — 29.05.2012- 31.05.2012. Варшава \ Warszaw».
  4. ^ Паронджанов В.Д. Визуальный синтаксис языка ДРАКОН // Программирование и компьютерное программное обеспечение, 01/1995; Том 21 (Выпуск 3): с. 142 – 153. (Здесь неверный перевод. Следует читать как «Язык ДРАКОНА».)
  5. ^ Jump up to: Перейти обратно: а б Штурманы ракет / Под общей редакцией Е. Л. Межирицкого. — М.: БЛОК-Информ-Экспресс, 2008. — 384 с. — C. 192. — ISBN   978-5-93735-008-4
  6. ^ «Методика разработки алгоритмов и программ «Графит-Флокс». » (PDF) . Архивировано из оригинала (PDF) 27 декабря 2012 г. Проверено 27 декабря 2012 г.
  7. ^ Морозов В.В., Трунов Ю.В., Комиссаров А.И., Пак Е.А., Жучков А.Г., Дишель В.Д., Залихина Е.Е., Паронджанов В.Д. Система управления межорбитального космического буксира «Фрегат» // Вестник НПО имени С.А. Лавочкина: Космонавтика и ракетостроение. — 2014, №1 (22). — С. 16–25. (In Russian) Morozov V.V., Trunov Yu.V., Komissarov A.I., Pak E.A., Zhuchkov A.G., Dishel V.D., Zalihina E.E., Parondzhanov V.D. Control System of "Fregat" Versatile Space Tug // Vestnik NPO imeni S.A. Lavochkina. Cosmonautics and Rocket Engineering — 2014, 1 (22). — P. 16–25.
  8. ^ Безель Джа. V. Можно ли улучшить работу ума? Новый взгляд на проблему.— Вестник РАН. Том 73, выпуск 4, 2003 г.
  9. ^ Созоров Н. Г., Трошин М. В. Дракон-редактор как основное звено в формализации целевых дидактических ресурсов для проектирования интерактивного учебного курса . Материалы региональной научно-методической конференции ИДНО Томского политехнического университета «Электронные дидактические материалы в инженерном образовании» 11-12 октября 2009 г.
  10. ^ Паронджанов В. Д. (2012). "Учебное пособие по языку ДРАКОН для вузов". Учись писать, читать и понимать алгоритмы. Алгоритмы для правильного мышления. Основы алгоритмизации . М.: ДМК Пресс. p. 520. ISBN  978-5-94074-800-7 . вуз ов". Учись писать, читать и понимать алгоритмы. Алгоритмы для правильного мышления. Основы алгоритмизации . М.: ДМК Пресс. p. 520. ISBN   978-5-94074-800-7 .
  11. ^ Паронджанов В.Д. (1995). Визуальный синтаксис языка ДРАКОН . Том. 21. ПРОГРАММИРОВАНИЕ И КОМПЬЮТЕРНОЕ ОБЕСПЕЧЕНИЕ. Официальный английский перевод Программирования. стр. 142–153.
  12. ^ Митькин С.Б. Автоматное программирование на языке ДРАКОН // Программная инженерия. Том 10, № 1, 2019 (in Russian). Mitkin Stepan B. Automata-Based Programming in DRAKON Language. Programmnaya Ingeneria, 2019, vol. 10, no. 1, pp. 3—13. DOI: 10.17587/prin.10.3-13
  13. ^ «Марк Шварцбах, Свен Влах, Максимилиан Лайакер. Модификация научной системы управления полетом для миссий БПЛА, запускаемых на воздушном шаре // Немецкий аэрокосмический центр DLR // IEEE, 2015» (PDF) . drakon.su . Проверено 3 декабря 2017 г.
  14. ^ Валеев С.С., Кондратьева Н.В. Анализ бизнес-процессов в распределенной организационно-технической системе на основе снимков // Вычислительные технологии. 2023. Т. 28. № 1. С. 41-47.
  15. ^ Пример медицинской программы по снижению жировых отложений (на русском языке) [ постоянная мертвая ссылка ]

Источники [ править ]

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 22b1ef2cc6ce023cf5acbc15818e8358__1707438900
URL1:https://arc.ask3.ru/arc/aa/22/58/22b1ef2cc6ce023cf5acbc15818e8358.html
Заголовок, (Title) документа по адресу, URL1:
DRAKON - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)