Файл:Arranging cryo.png

ДРАКОН-схема, описывающая алгоритм организации криосохранения

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

Наиболее близким функциональным аналогом ДРАКОНА можно считать схемы действий (action diagrams) и схемы деятельности (activity diagrams)

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

Язык в равной степени рассчитан на четыре категории лиц:

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

При создании Дракона были предъявлены необычные для программистов, математиков и «технарей» гуманитарные требования:

  1. Улучшить работу человеческого ума.
  2. Предложить эффективные средства для описания структуры человеческой деятельности.
  3. Предоставить человеку такие языковые средства, которые резко упрощают восприятие сложных процедурных проблем и общение с кол легами, делают непонятное понятным и за счет этого буквально заставляют человека мыслить отчетливо, глубоко и продуктивно. В этих условиях вероятность заблуждений, просчетов и ошибок неизбежно падает, а производительность растет.
  4. Радикально облегчить межотраслевое и междисциплинарное общение между представителями разных организаций, ведомств, отделов, лабораторий, научных школ и профессий.
  5. Устранить или уменьшить барьеры взаимного непонимания между работниками различных специальностей (врачами и физиками, математиками и конструкторами, биологами и экономистами и т. д.), а также программистами и теми, у кого аллергия к любому программированию.
  6. Добиться кардинального улучшения качества программного обеспечения по критерию «понимаемость алгоритмов и программ

Краткая история[править | править код]

  • В 1982 году Юрий Трунов, руководитель комплексного отделения Пилюгинского центра был назначен ответственным за комплексную разработку системы управления Бурана. По его инициативе — совместно с Институтом прикладной математики Академии наук СССР — были созданы три языка: ПРОЛ2 (для разработки бортовых комплексных программ Бурана), ДИПОЛЬ (для создания наземных программ Бурана) и ЛАКС (для моделирования). Хотя языки успешно решали поставленные задачи, стало ясно, что узкая специализация языков мешает делу. В связи с этим в 1986 году Юрий Трунов вызвал к себе начальника лаборатории комплексной разработки вычислительной системы Бурана Владимира Паронджанова и поручил ему создать универсальный язык, способный заменить три вышеназванных.
  • 15 ноября 1988 года состоялся первый полёт «Бурана».
  • В мае 1993 официально закрылась программа «Буран» и разработка языка ДРАКОН была заморожена вместе с ней.
  • Через некоторое время, после смены руководства комплексного подразделения Пилюгинского центра, работы над языком были возобновлены.
  • К 1998 году все работы по системному программированию были завершены. На базе ДРАКОНА была построена автоматизированная технология проектирования программных систем ( CASE -технология) под рабочим названием «Графит-Флокс»., включающая в себя обширный комплекс программных средств: процедурный редактор, декларативный редактор, базу данных, транслятор, анализатор, кодогенератор и т.д. Автоматизированная Дракон-технология прошла испытания в работе над такими проектами, как : международный космический проект «Морской старт» ( Sea Launch ), российско-французский космический проект «Фрегат», модернизация ракеты-носителя «Протон-М». Поскольку результаты были стабильно высокими, руководство Пилюгинского центра приняло решение использовать дракон-технологию во всех последующих проектах.


Основы, примеры, использование[править | править код]

Для обозначения блок-схем, построенных по правилам языка ДРАКОН, используется термин “дракон-схемы”. Основное их отличие от блок-схем - они пригодны для формализованной записи, автоматического получения кода и исполнения его на компьютере. Графоэлементы (графические буквы) языка ДРАКОН называются иконами . Подобно тому, как буквы объединяются в слова, иконы объединяются в составные иконы — макроиконы. Соединяя иконы и макроиконы по определенным правилам, можно строить разнообразные алгоритмы.

Шампур-блок — часть дракон-схемы, имеющая один вход сверху и один выход снизу, расположенные на одной вертикали.

Шапкой называется верхняя часть дракон-схемы, которая включает заголовок алгоритма и комплект икон “имя ветки”. Назначение шапки — помочь читателю быстро сориентироваться в проблеме и получить ответ на три наиболее важных вопроса:

  1. как называется проблема?
  2. из скольких частей она состоит?
  3. как называется каждая часть?

Ветка – смысловой блок алгоритма. Слово “ветка” имеет два значения. С одной стороны, это смысловой “кусок” алгоритма. С другой стороны, ветка — составной оператор языка ДРАКОН, который не имеет аналогов в известных языках. Оператор “ветка” состоит из трех частей: начала ветки (икона “имя ветки”), тела ветки (которое может содержать большое число икон) и конца ветки (который содержит одну или несколько икон “адрес” либо икону “конец”).

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


Ветка имеет один вход и один или несколько выходов. Входом служит икона “имя ветки”, содержащая идентификатор ветки. Визуальный оператор “имя ветки” не выполняет никаких действий, это всего лишь метка, объявляющая название смысловой части программы. Исполнение дракон-алгоритма всегда начинается с крайней левой ветки.

Выходом из ветки служит икона “адрес”, в которой записывается имя следующей по порядку исполнения ветки. Икона “адрес” — это замаскированный оператор перехода (gоtо), однако он передает управление не куда угодно, а только на начало выбранной ветки. Вход в ветку возможен только через ее начало. Выход из последней ветки осуществляется через икону “конец”.

Дракон-схема с ветками называется силуэтом, без веток — примитивом (см. рис справа)

Примитив есть последовательное соединение иконы “заголовок” шампур-блоков и иконы “конец”. У примитива иконы “заголовок” и “конец” обязательно лежат на одной вертикали, которая называется шампуром. На этой же линии лежат главные вертикали шампур-блоков. Примитив рекомендуется использовать, если дракон-схема очень простая и содержит не более 5...15 икон.

Главный маршрут силуэта — последовательное соединение главных маршрутов поочередно работающих веток.

Побочные маршруты должны быть упорядочены слева направо согласно одному из выбранных критериев, например: чем правее — тем хуже.


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

Для описания веток в текстовый язык пришлось внести ряд изменений. В частности, появились два новых текстовых оператора, отсутствующие в традиционных языках: ВЕТКА < идентификатор ветки > АДРЕС < идентификатор ветки >

Оператор текстового языка ВЕТКА объявляет название ветки (записываемое на визуальном языке внутри иконы “имя ветки”). Оператор АДРЕС безусловно передает управление на текстовый оператор ВЕТКА, имя которой записано справа от оператора АДРЕС.

Однако, визуальный язык несомненно более нагляден и доходчив, т.к. графика позволяет полностью исключить избыточные (паразитные) элементы, каковыми в текстовом языке оказываются почти все ключевые слова: АЛГОРИТМ, ВЕТКА, АДРЕС, КОНЕЦ ВЕТКИ, ЕСЛИ, ТО, ИНАЧЕ, КОНЕЦ ЕСЛИ, ЦИКЛ ЖДАТЬ, КОНЕЦ ЦИКЛА, КОММЕНТАРИЙ, ПЕРЕХОД НА, а также метки.

СЕМЕЙСТВО ДРАКОН-ЯЗЫКОВ[править | править код]

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

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

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

Кроме того, семейство включает гибридные визуальные языки программирования: ДРАКОН-БЕЙСИК, ДРАКОН-ПАСКАЛЬ, ДРАКОН-СИ и т. д. Чтобы получить гибридный язык, например, ДРАКОН-СИ, необходимо взять визуальный синтаксис ДРАКОНА и присоединить к нему по определенным правилам текстовый синтаксис языка СИ.

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

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

Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA, если не указано иное.