3GL   к технологии программирования   к экономической информатике   4GL - визуальные среды

Язык программирования ДРАКОН

  1. Обоснование и назначение языка Дракон
  2. Семейство Дракон-языков
  3. Гибридные языки дракон-семейства
  4. Визуальный и текстовый синтаксис Дракона
  5. Зачем Дракону две головы?
  6. Язык Дракон значительно облегчает
    алгоритмизацию и программирование
  7. Выводы

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

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

Язык ДРАКОН разработан совместными усилиями Российского космического агентства (НПЦ автоматики и приборостроения, г. Москва) и Российской академии наук (Институт прикладной математики им. М.В. Келдыша, г. Москва) как обобщение опыта работ по созданию космического корабля "Буран". На базе ДРАКОНА построена автоматизированная технология проектирования программных систем (CASE-технология) под названием "ГРАФИТ-ФЛОКС". Она успешно используется в ряде крупных космических проектов: "Морской старт", "Фрегат", "Протон-М" и др.

ДРАКОН — очень лёгкий язык. Настолько лёгкий, что разработку многих компьютерных программ для космических ракет на практике ведут не программисты, а обычные специалисты — по принципу “программирование без программистов”. Причина отказа от программистов проста. При решении практических прикладных задач специалисты досконально владеют материалом и прекрасно знают постановку задачи. В отличие от них программисты не знают “физику процесса” и становятся “лишними людьми”, без которых вполне можно обойтись. Это позволяет значительно сократить издержки, улучшить показатель "затраты—результат", ускорить ход работ и полностью избавиться от ошибок “испорченного телефона”, вызванных взаимным непониманием между ПРОГРАММИСТАМИ и СПЕЦИАЛИСТАМИ.

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

Обоснование и назначение языка Дракон

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

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

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

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

Возможно, что визуалы и вызываются как вставки, и взаимодействуют друг с другом. Как раз организация дракон-схем в модель представляет вызовы и взаимодействия, возможные при исполнении.

Представляемые схемами модели процессы могут находиться либо в отношении “главный-подчинённый” (иерархическая, или ранговая модель), либо в отношении “партнёров” (одноранговая, или диспозитивная модель). По порядку же возникновения всегда существует первичный процесс, который для другого данного процесса бывает:

В ранговой модели существует только одна рабочая точка (как ещё говорит Паронджанов, “дракон-поезд”). Она последовательно проходит процессы, начиная с первичного вызывающего. Там, где указана вставка другого процесса, совершается переход на его схему. Когда эта схема пройдена до конца — переход обратно на место указания вставки. В совокупности эти переходы образуют т. н. переход с возвратом (у Паронджанова также называется “акробатический прыжок”). Первичный процесс здесь понимается как головной.

Суть асинхронности (параллелизма) — в допущении более чем одной “рабочей точки” для системы процессов. Каждая точка развёртывает свою схему, и при необходимости процессы взаимодействуют. Первичный процесс в этом случае понимается как базовый; он может контролировать ход порождённых им процессов и при необходимости “снимать” их — досрочно прекращать исполнение.

Понятно, что в обеих моделях в каждом процессе, если он нелинейный, проходится один маршрут. Также понятно, что в ранговой модели ни один процесс, кроме первичного, не м.б. “зацикленным”.

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

Семейство Дракон-языков

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

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

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

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

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

Гибридные языки дракон-семейства

Императивную (процедурную) часть языка Дракон можно присоединить к некоторым языкам программирования и получить так называемые гибридные языки:

язык Дракон + язык Бейсик = гибридный язык Дракон-Бейсик

язык Дракон + язык Си = гибридный язык Дракон-Си

язык Дракон + язык Java = гибридный язык Дракон-Java

язык Дракон + язык Си# = гибридный язык Дракон-Си#

язык Дракон + язык Питон = гибридный язык Дракон-Питон

язык Дракон + язык Perl = гибридный язык Дракон-Perl

язык Дракон + язык Ruby = гибридный язык Дракон-Ruby

язык Дракон + язык Ада = гибридный язык Дракон-Ада

язык Дракон + язык Оберон = гибридный язык Дракон-Оберон

язык Дракон + язык Tcl = гибридный язык Дракон-Tcl

и т. д.

Пример 1. При создании гибридного языка Дракон-Си необходимо, в частности, создать транслятор из дракон-схемы в исходный код языка Си. В этом случае Си является целевым языком.

Пример 2. При создании гибридного языка Дракон-Дельфи необходимо, в частности, создать транслятор из дракон-схемы в исходный код языка Дельфи. При этом Дельфи является целевым языком.

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

И т. д.

При использовании гибридных языков исходным текстом программы считается дракон-схема и только она.

Еще один пример. Предположим, пользователь работает в связке ИС Дракон — Транслятор Дракон-Си — Keil. Понятно, что исходником служит дракон-схема. При отладке программы не следует вносить исправления в промежуточные текстовые Си-файлы. Все исправления нужно вносить в исходный код, то есть в дракон-схему.

Достоинства гибридных языков

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

На первом этапе появились языки высокого уровня, которые (по сравнению с ассемблером) сделали исходный текст программы более понятным и удобным для человека. И значительно увеличили производительность труда программистов.

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

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

Что это даст? Исходный код программы станет еще более понятным и удобным для человека. И, следовательно, еще больше увеличится производительность труда программистов.

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

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

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

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

Как построить гибридный язык?

Чтобы построить гибридный язык, нужно выполнить 5 шагов.

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

Визуальный и текстовый синтаксис Дракона

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

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

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

Зачем Дракону две головы?

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

Язык Дракон значительно облегчает алгоритмизацию и программирование

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

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

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

В итоге ТРУДНЫЕ для понимания способы записи алгоритмов и программ заменяются на более ЛЕГКИЕ. Вследствие этого работники быстро овладевают дракон-схемами и успешно создают алгоритмы и прикладные программы без программистов или с их минимальным участием. Об этом свидетельствует 15-летний опыт эксплуатации Технологии ГРАФИТ-ФЛОКС в НПЦ автоматики и приборостроения им. Н. А. Пилюгина.

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

Причина частичного отказа от программистов проста. При решении практических прикладных задач инженеры досконально владеют материалом и прекрасно знают постановку задачи. В отличие от них программисты не знают физику процесса и становятся “лишними людьми”, без которых в ряде случаев (хотя и не всегда) вполне можно обойтись.

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

Выводы

Приведем сводку эргономических правил, позволяющих улучшить когнитивное качество дракон-схем и сделать алгоритмы, программы и технологии более понятными.

  1. Сложный алгоритм следует рисовать в виде силуэта, простой — в виде примитива.
  2. В иконе “заголовок” запрещается писать слово “начало”; вместо этого следует указать понятное и точное название алгоритма.
  3. Разбейте сложный алгоритм на части, каждую часть изобразите в виде ветки. Дайте частям доходчивые и четкие названия и запишите их в иконах “имя ветки”.
  4. Вход в ветку возможен только через ее начало.
  5. В иконе “адрес” разрешается писать имя одной из веток, другие надписи запрещены.
  6. Ветки следует располагать в пространстве согласно правилу: чем правее, тем позже. Наличие веточного цикла модифицирует это правило.
  7. Примитив обязательно имеет шампур. Это значит, что у примитива иконы “заголовок” и “конец” всегда лежат на одной вертикали, которая и называется “шампур”.
  8. Каждая ветка обязательно имеет шампур. У правой ветки шампур — это вертикаль, соединяющая иконы “имя ветки” и “конец”. У остальных веток шампуром служит вертикальная линия, соединяющая иконы “имя ветки” и “адрес”, а если адресов несколько — с левым из них.
  9. Алгоритм всегда имеет главный маршрут, который должен идти по шампуру.
  10. Побочные маршруты должны быть упорядочены слева направо согласно одному из выбранных критериев, например: чем правее — тем хуже.
  11. В иконе “конец” следует писать слово “конец”.
  12. Соединительные линии могут идти либо горизонтально, либо вертикально. Наклонные линии не допускаются.
  13. Пересечения линий запрещены.
  14. Обрывы линий запрещены.
  15. Использование соединителей запрещено.
3GL   к технологии программирования   к экономической информатике   4GL - визуальные среды

Знаете ли Вы, что cогласно релятивистской мифологии "гравитационное линзирование - это физическое явление, связанное с отклонением лучей света в поле тяжести. Гравитационные линзы обясняют образование кратных изображений одного и того же астрономического объекта (квазаров, галактик), когда на луч зрения от источника к наблюдателю попадает другая галактика или скопление галактик (собственно линза). В некоторых изображениях происходит усиление яркости оригинального источника." (Релятивисты приводят примеры искажения изображений галактик в качестве подтверждения ОТО - воздействия гравитации на свет)
При этом они забывают, что поле действия эффекта ОТО - это малые углы вблизи поверхности звезд, где на самом деле этот эффект не наблюдается (затменные двойные). Разница в шкалах явлений реального искажения изображений галактик и мифического отклонения вблизи звезд - 1011 раз. Приведу аналогию. Можно говорить о воздействии поверхностного натяжения на форму капель, но нельзя серьезно говорить о силе поверхностного натяжения, как о причине океанских приливов.
Эфирная физика находит ответ на наблюдаемое явление искажения изображений галактик. Это результат нагрева эфира вблизи галактик, изменения его плотности и, следовательно, изменения скорости света на галактических расстояниях вследствие преломления света в эфире различной плотности. Подтверждением термической природы искажения изображений галактик является прямая связь этого искажения с радиоизлучением пространства, то есть эфира в этом месте, смещение спектра CMB (космическое микроволновое излучение) в данном направлении в высокочастотную область. Подробнее читайте в FAQ по эфирной физике.

Bourabai Research Institution home page

Боровское исследовательское учреждение - Bourabai Research Bourabai Research Institution