Язык ДРАКОН — общедоступный интеллектуальный инструмент нового типа, специально сконструированный для облегчения и улучшения работы ума интеллектуальных работников и учащихся, особенно полезный при решении трудных и сверхтрудных задач систематизации и автоформализации профессиональных знаний, описания структуры человеческой деятельности и многих других задач, о которых речь впереди.
Отличие ДРАКОНА в том, что это не текстовый, а визуальный (графический) язык. Образно говоря, он прокладывает кратчайший путь к цели, взрывая логико-математические, алгоритмические и технологические скалы и препятствия динамитом наглядных картинок. Благодаря этим и другим приёмам многие (хотя, разумеется, далеко не все) сложные проблемы превращаются в простые, непонятное становится понятным. В итоге достигается искомый выигрыш: производительность растет, качество улучшается, трудная работа облегчается и оказывается более приятной, умственные перегрузки резко уменьшаются, опускаясь намного ниже опасной черты.
Как пользоваться Dragon Family? #dragonfamily #туториал
Язык ДРАКОН разработан совместными усилиями Российского космического агентства (НПЦ автоматики и приборостроения, г. Москва) и Российской академии наук (Институт прикладной математики им. М.В. Келдыша, г. Москва) как обобщение опыта работ по созданию космического корабля «Буран». На базе ДРАКОНА построена автоматизированная технология проектирования программных систем (CASE-технология) под названием «ГРАФИТ-ФЛОКС». Она успешно используется в ряде крупных космических проектов: «Морской старт», «Фрегат», «Протон-М» и др.
ДРАКОН — очень лёгкий язык. Настолько лёгкий, что разработку многих компьютерных программ для космических ракет на практике ведут не программисты, а обычные специалисты — по принципу “программирование без программистов”. Причина отказа от программистов проста.
При решении практических прикладных задач специалисты досконально владеют материалом и прекрасно знают постановку задачи. В отличие от них программисты не знают “физику процесса” и становятся “лишними людьми”, без которых вполне можно обойтись. Это позволяет значительно сократить издержки, улучшить показатель «затраты—результат», ускорить ход работ и полностью избавиться от ошибок “испорченного телефона”, вызванных взаимным непониманием между ПРОГРАММИСТАМИ и СПЕЦИАЛИСТАМИ.
ДРАКОН универсален. Он может применяться для наглядного представления и быстрой разработки алгоритмов не только в «космосе», но и в «земных» видах человеческой деятельности. Ведётся подготовка учебных книг для средней и высшей школы. Уже издана первая из них — игровое учебное пособие для детей младшего и среднего школьного возраста.
Обоснование и назначение языка Дракон
ДРАКОН — язык представления маршрутов алгоритма (как структурной части отчуждаемого, “отслаиваемого” императивного знания) посредством дракон-схемы — граф-схемы алгоритма (ГСА), специально упорядоченной для удобства восприятия структуры маршрутов — или системы дракон-схем, которую можно назвать “дракон-моделью”.
Школа Западный Дракон.Мск,инструкция по применению
Эта система получается как результат процедурной декомпозиции деятельности на два и более алгоритмических процессов связанных отношением вызова и/или взаимодействия.
Говоря проще, решение сложной задачи мы обычно разбиваем на подзадачи. В алгоритме решения при этом выделяем основной алгоритм и вспомогательные (“вставки” у Паронджанова). И в ДРАКОНе есть возможность представить такое разбиение как вызовы “вставок” из основного алгоритма — и, быть может, из других “вставок”.
ДРАКОН поддерживает декомпозицию алгоритма выделением вспомогательных алгоритмов-вставок.
Возможно, что визуалы и вызываются как вставки, и взаимодействуют друг с другом. Как раз организация дракон-схем в модель представляет вызовы и взаимодействия, возможные при исполнении.
Представляемые схемами модели процессы могут находиться либо в отношении “главный-подчинённый” (иерархическая, или ранговая модель), либо в отношении “партнёров” (одноранговая, или диспозитивная модель). По порядку же возникновения всегда существует первичный процесс, который для другого данного процесса бывает:
- вызывающий — когда данный процесс был вставкой (во вставку во вставку и т. д. — если уровней вызова много) в другой процесс;
- “родительский” — когда данный процесс порождён как часть системы т. н. совместно протекающих взаимодействующих процессов (как ещё говорят, асинхронных или параллельных — понятие).
В ранговой модели существует только одна рабочая точка (как ещё говорит Паронджанов, “дракон-поезд”). Она последовательно проходит процессы, начиная с первичного вызывающего. Там, где указана вставка другого процесса, совершается переход на его схему. Когда эта схема пройдена до конца — переход обратно на место указания вставки.
В совокупности эти переходы образуют т. н. переход с возвратом (у Паронджанова также называется “акробатический прыжок”). Первичный процесс здесь понимается как головной.
Суть асинхронности (параллелизма) — в допущении более чем одной “рабочей точки” для системы процессов. Каждая точка развёртывает свою схему, и при необходимости процессы взаимодействуют. Первичный процесс в этом случае понимается как базовый; он может контролировать ход порождённых им процессов и при необходимости “снимать” их — досрочно прекращать исполнение.
Понятно, что в обеих моделях в каждом процессе, если он нелинейный, проходится один маршрут. Также понятно, что в ранговой модели ни один процесс, кроме первичного, не м.б. “зацикленным”.
Поскольку в основе ДРАКОНа, как любого формального языка, лежит математика, а как языка эргономичного — также инженерная психология, то без научных понятий при объяснении его назначения нам не обойтись. Однако для удобства понимания мы и дальше будем делать, как только что, — введя небольшую “порцию науки”, поясним её более просто.
Семейство Дракон-языков
ДРАКОН — не один язык, а целое семейство, все языки которого имеют одинаковый визуальный синтаксис (что зрительно делает языки семейства почти близнецами) и отличаются текстовым синтаксисом.
ДРАКОН-1 — визуальный псевдоязык, визуальный аналог обычного текстового псевдокода. Он служит для описания структуры деятельности, создания технологий, алгоритмов и проектов программ, используется в методе пошаговой детализации, а также при формализации профессиональных знаний.
ДРАКОН-2 — язык визуального программирования реального времени. Он является элементом CASE-технологии для разработки программного обеспечения систем управления ракет и космических объектов, а также атомных электростанций, нефтехимических и металлургических заводов, биотехнологических производств и т. д.
Кроме того, семейство включает гибридные визуальные языки программирования: ДРАКОН-БЕЙСИК, ДРАКОН-ПАСКАЛЬ, ДРАКОН-СИ и т. д. Чтобы получить гибридный язык, например, ДРАКОН-СИ, необходимо взять визуальный синтаксис ДРАКОНА и присоединить к нему по определенным правилам текстовый синтаксис языка СИ.
Строгое разграничение визуального и текстового синтаксиса позволяет в максимальной степени расширить сферу применения языка, обеспечивая его гибкость и универсальность. При этом единообразие правил визуального синтаксиса семейства дракон-языков обеспечивает их концептуальное единство, а разнообразие текстовых правил (т. е. возможность выбора любого текстового синтаксиса) определяет гибкость языка и легкую настройку на различные проблемные и предметные области.
В настоящей книге основное внимание уделяется визуальному псевдоязыку ДРАКОН-1. Что касается остальных языков дракон-семейства, даются лишь краткие пояснения.
Гибридные языки дракон-семейства
Императивную (процедурную) часть языка Дракон можно присоединить к некоторым языкам программирования и получить так называемые гибридные языки:
язык Дракон + язык Бейсик = гибридный язык Дракон-Бейсик
язык Дракон + язык Си = гибридный язык Дракон-Си
язык Дракон + язык Java = гибридный язык Дракон-Java
язык Дракон + язык Си# = гибридный язык Дракон-Си#
язык Дракон + язык Питон = гибридный язык Дракон-Питон
язык Дракон + язык Perl = гибридный язык Дракон-Perl
язык Дракон + язык Ruby = гибридный язык Дракон-Ruby
язык Дракон + язык Ада = гибридный язык Дракон-Ада
язык Дракон + язык Оберон = гибридный язык Дракон-Оберон
язык Дракон + язык Tcl = гибридный язык Дракон-Tcl
Пример 1. При создании гибридного языка Дракон-Си необходимо, в частности, создать транслятор из дракон-схемы в исходный код языка Си. В этом случае Си является целевым языком.
Пример 2. При создании гибридного языка Дракон-Дельфи необходимо, в частности, создать транслятор из дракон-схемы в исходный код языка Дельфи. При этом Дельфи является целевым языком.
Пример 3. При создании гибридного языка Дракон-Фортран необходимо, в частности, создать транслятор из дракон-схемы в исходный код языка Фортран. В этом случае Фортран служит целевым языком.
При использовании гибридных языков исходным текстом программы считается дракон-схема и только она.
Еще один пример. Предположим, пользователь работает в связке ИС Дракон — Транслятор Дракон-Си — Keil. Понятно, что исходником служит дракон-схема. При отладке программы не следует вносить исправления в промежуточные текстовые Си-файлы. Все исправления нужно вносить в исходный код, то есть в дракон-схему.
Достоинства гибридных языков
С точки зрения человеческого фактора, в истории развития языков программирования условно можно выделить два этапа.
На первом этапе появились языки высокого уровня, которые (по сравнению с ассемблером) сделали исходный текст программы более понятным и удобным для человека. И значительно увеличили производительность труда программистов.
На втором этапе (который, по-видимому, только начинается) некоторые языки высокого уровня смогут работать в сочетании с языком ДРАКОН, образуя гибридные языки. При этом функция исходного кода программы переходит к дракон-схемам.
Это позволит отказаться от текстовых управляющих структур, используемых в языках высокого уровня, и заменить их на управляющую графику ДРАКОНа.
Что это даст? Исходный код программы станет еще более понятным и удобным для человека. И, следовательно, еще больше увеличится производительность труда программистов.
Как и все прочие языки, ДРАКОН опирается на математику и логику. Однако сверх того, он самым тщательным образом учитывает когнитивные вопросы. Благодаря систематическому использованию когнитивно-эргономических методов ДРАКОН приобрел уникальные эргономические характеристики. Можно предположить, что в будущем ДРАКОН сможет претендовать на звание чемпиона по критерию “понимаемость алгоритмов и программ” (в классе императивных языков). ДРАКОН можно определить как общедоступный визуальный язык, предназначенный для описания структуры деятельности, для систематизации, структуризации, наглядного представления и формализации императивных знаний, а также для проектирования, программирования, моделирования и обучения…
Человечность языка ДРАКОН, стремление создать максимальный комфорт для работы человеческого мозга, всемерная забота о повышении творческой продуктивности персонала позволяет надеяться, что ДРАКОН получит … широкое применение в народном хозяйстве, бизнесе, обороне, науке и системе образования.
Используя не просто наглядные, а предельно наглядные формы представления знаний, облегчая работу мозга, ДРАКОН обеспечивает заметный рост производительности интеллектуального труда.
В основе языка ДРАКОН лежит идея когнитивной формализации знаний, позволяющая сочетать строгость логико-математической формализации с точным учетом когнитивных (познавательных) характеристик человека.
Как построить гибридный язык?
Чтобы построить гибридный язык, нужно выполнить 5 шагов.
- Выбрать целевой язык (например, язык Си, но можно подставить любой целевой язык).
- Использовать графический синтаксис языка Дракон в качестве графического синтаксиса гибридного языка Дракон-Си.
- Использовать синтаксис целевого языка (синтаксис языка Си) в качестве текстового синтаксиса гибридного языка Дракон-Си.
- Удалить из текстового синтаксиса гибридного языка Дракон-Си все элементы, которые заменяются управляющей графикой ДРАКОНа.
- Создать транслятор из дракон-схемы в исходный код языка Си.
Визуальный и текстовый синтаксис Дракона
ДРАКОН — визуальный язык , в котором используются два типа элементов: графические фигуры ( графоэлементы ) и текстовые надписи, расположенные внутри или снаружи графических фигур ( текстоэлементы ).
Следовательно, синтаксис ДРАКОНА распадается на две части.
Визуальный синтаксис охватывает алфавит графоэлементов, правила их размещения в поле чертежа и правила связи графоэлементов с помощью соединительных линий. Текстовый синтаксис задает алфавит символов, правила их комбинирования и привязку к графоэлементам (привязка необходима потому, что внутри разных графических фигур используются разные типы выражений). Оператором языка ДРАКОН является графоэлемент или комбинация графоэлементов, взятые вместе с текстовыми надписями.
Одновременное использование графики и текста говорит о том, что ДРАКОН адресуется не только к словесно-логическому мышлению автора и читателя программы, но сверх того активизирует интуитивное, образное, правополушарное мышление, стимулируя его не написанной, а именно нарисованной программой, т. е. программой-картинкой.
Зачем Дракону две головы?
Язык ДРАКОН выполняет две принципиально разные функции. Для большинства работников он является новым средством повышения эффективности интеллектуального труда, причем у этого средства практически нет аналогов в мировой практике, если не считать язык UML. В этом качестве ДРАКОН не имеет ни малейшего отношения к программированию.
Вторая функция состоит в том, что для программистов ДРАКОН действительно является языком программирования.
Таким образом, ДРАКОН имеет две головы, обращенные к совершенно разным аудиториям. Причем каждая голова пытается угадать сокровенные потребности своей аудитории и по возможности удовлетворить их наилучшим образом.
В этом состоит одно из ключевых преимуществ, поскольку язык ДРАКОН можно использовать как удобный “мост взаимопонимания” между не программирующим большинством и программирующим меньшинством, между “без компьютерной” и компьютерной интеллектуальной деятельностью.
Язык Дракон значительно облегчает алгоритмизацию и программирование
Некоторые ученые считают, что существующие способы записи алгоритмов и программ (принятые во всем мире) слишком трудны для понимания и требуют неоправданно больших трудозатрат.
Это обстоятельство ставит непреодолимый барьер для многих специалистов, работа которых связана с алгоритмами, но которые не имеют резерва времени, чтобы научиться выражать свои профессиональные знания в форме алгоритмов и программ.
Язык ДРАКОН использует новую эргономичную нотацию (дракон-схемы) и за счет этого существенно облегчает алгоритмизацию и программирование. Благодаря использованию дракон-схем алгоритмы и программы становятся более понятными, доходчивыми, ясными, прозрачными.
В итоге ТРУДНЫЕ для понимания способы записи алгоритмов и программ заменяются на более ЛЕГКИЕ. Вследствие этого работники быстро овладевают дракон-схемами и успешно создают алгоритмы и прикладные программы без программистов или с их минимальным участием. Об этом свидетельствует 15-летний опыт эксплуатации Технологии ГРАФИТ-ФЛОКС в НПЦ автоматики и приборостроения им. Н. А. Пилюгина.
ДРАКОН — очень легкий язык. Настолько легкий, что разработку многих компьютерных программ для космических ракет на практике ведут не программисты, а инженеры — по принципу “программирование без программистов”.
Причина частичного отказа от программистов проста. При решении практических прикладных задач инженеры досконально владеют материалом и прекрасно знают постановку задачи. В отличие от них программисты не знают физику процесса и становятся “лишними людьми”, без которых в ряде случаев (хотя и не всегда) вполне можно обойтись.
Это позволяет значительно сократить издержки, улучшить показатель “затраты — результат”, ускорить ход работ. И полностью избавиться от ошибок “испорченного телефона”, вызванных взаимным непониманием между программистами и инженерами.
Выводы
Приведем сводку эргономических правил, позволяющих улучшить когнитивное качество дракон-схем и сделать алгоритмы, программы и технологии более понятными.
- Сложный алгоритм следует рисовать в виде силуэта, простой — в виде примитива.
- В иконе “заголовок” запрещается писать слово “начало”; вместо этого следует указать понятное и точное название алгоритма.
- Разбейте сложный алгоритм на части, каждую часть изобразите в виде ветки. Дайте частям доходчивые и четкие названия и запишите их в иконах “имя ветки”.
- Вход в ветку возможен только через ее начало.
- В иконе “адрес” разрешается писать имя одной из веток, другие надписи запрещены.
- Ветки следует располагать в пространстве согласно правилу: чем правее, тем позже. Наличие веточного цикла модифицирует это правило.
- Примитив обязательно имеет шампур. Это значит, что у примитива иконы “заголовок” и “конец” всегда лежат на одной вертикали, которая и называется “шампур”.
- Каждая ветка обязательно имеет шампур. У правой ветки шампур — это вертикаль, соединяющая иконы “имя ветки” и “конец”. У остальных веток шампуром служит вертикальная линия, соединяющая иконы “имя ветки” и “адрес”, а если адресов несколько — с левым из них.
- Алгоритм всегда имеет главный маршрут, который должен идти по шампуру.
- Побочные маршруты должны быть упорядочены слева направо согласно одному из выбранных критериев, например: чем правее — тем хуже.
- В иконе “конец” следует писать слово “конец”.
- Соединительные линии могут идти либо горизонтально, либо вертикально. Наклонные линии не допускаются.
- Пересечения линий запрещены.
- Обрывы линий запрещены.
- Использование соединителей запрещено.
Знаете ли Вы, в чем фокус эксперимента Майкельсона?
Эксперимент А. Майкельсона, Майкельсона — Морли — действительно является цирковым фокусом, загипнотизировавшим физиков на 120 лет.
Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается:
— Cколько яблок на березе, если на одной ветке их 5, на другой ветке — 10 и так далее
При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе.
В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.
Удивительно, что этот цирковой трюк овладел на 120 лет умами физиков на полном серьезе, хотя его прототипы есть в сказках-небылицах всех народов всех времен, включая барона Мюнхаузена, вытащившего себя за волосы из болота, и призванных показать детям возможные жульничества и тем защитить их во взрослой жизни. Подробнее читайте в FAQ по эфирной физике.
Источник: www.bourabai.ru
Программирование на языке ДРАКОН
ДРАКОН — это графический алгоритмический язык, созданный в космической отрасли. Первоначально аэрокосмические инженеры создавали ДРАКОН, чтобы иметь дело с безумной сложностью систем управления космическими аппаратами. Авторы языка ДРАКОН тщательно спроектировали язык таким образом, чтобы снизить когнитивные усилия при работе с алгоритмами. Каждое правило и каждая функциональная возможность ДРАКОНа помогает людям быстрее понимать программы.
Drakon.Tech принёс язык ДРАКОН с небес на землю, позволяя разработчикам применять эту космическую технологию для веб-приложений.
ДРАКОН и JavaScript
Процесс разработки в Drakon.Tech включает следующие шаги:
- Разработчик рисует Дракон-схемы в Drakon.Tech IDE.
- Генератор кода создаёт JavaScript-функцию для каждой Дракон-схемы (Рис. 1). Drakon.Tech помещает эти функции в JS-файл, который можно выполнить в браузере или Node.js.
Рисунок 1. JavaScript-функция, сгенерированная из Дракон-схемы
Разработчик задаёт логику алгоритма при помощи графических конструкций языка ДРАКОН. Затем разработчик помещает короткие кусочки кода на языке JavaScript в квадратики на диаграмме. При этом нет необходимости в ключевых словах if, else, for и while, потому что ДРАКОН позаботится о ветвлении и циклах.
В Drakon.Tech мы программируем на обычном JavaScript, но логика алгоритма задаётся графически.
Почему ДРАКОН такой классный
ДРАКОН кардинально меняет то, как человек воспринимает программы. Это прорыв в представлении алгоритмов. С одной стороны, ДРАКОН показывает логику алгоритма ясным и понятным способом. С другой — ДРАКОН даёт порядок и единообразие.
Текст не оптимален для представления алгоритмов
Структурное программирование, основанное на тексте, задаёт поток исполнения при помощи блоков текста с разным отступом. Текст с отступами подчёркивает древоподобную сущность программы, но при этом возникает необходимость раз за разом решать одну и ту же мысленную задачу. Какая строка следующая?
Современные редакторы кода пытаются облегчить решение этой проблемы при помощи вертикальных линий, которые соединяют начало и конец блока. Хотя вертикальная линия действительно помогает найти начало блока, всё равно приходится делать эту раздражающую работу — находить следующую строку (Рис. 2).
Рисунок 2. Определить, что после betterFoo() идёт bar() — задача нетривиальная.
Блок-схемы помогают легко проследить поток исполнения
Блок-схемы избавляют нас от ненужной работы по поиску следующего шага. На блок-схеме можно найти следующую икону, если просто следовать соединительным линиям (Рис. 3). Более того, читатель может проследить все пути через алгоритм при помощи пальца или мыши. Такой уровень интуитивности недостижим при чисто текстовом программировании.
Рисунок 3. На Дракон-схеме очевидно, что после betterFoo() идёт именно bar().
Блок-схемам не хватает порядка
Несмотря на достоинства визуального программирования, мало кто программирует блок-схемами. Разработчики предпочитают текстовые языки программирования, основанные на отступах.
Главная причина этого — структурное программирование даёт структуру. Традиционные блок-схемы, напротив, не имеют средств для поддержания порядка и поэтому являются графическим аналогом ужасного оператора goto. Слишком легко превратить блок-схему в нечитаемый клубок стрелок и прямоугольников.
ДРАКОН — это графическое структурное программирование
Графический язык ДРАКОН похож на блок-схемы, но, строго говоря, это не блок-схемы.
ДРАКОН вводит правила и соглашения, благодаря которым получаются ясные и единообразные диаграммы. Эти правила делают ДРАКОН графическим аналогом стуктурного программирования.
ДРАКОН так же превосходит блок-схемы, как структурное программирование превосходит goto.
Figure 4. ДРАКОН и традиционные блок-схемы
Преимущества языка ДРАКОН
Вот несколько примеров тщательно продуманных правил ДРАКОНа:
- Пересечения линий запрещены. Только это правило в отдельности устраняет половину проблем с блок-схемами.
- Разрешены только прямые вертикальные и горизонтальные линии. Прямые линии под прямыми углами приводят диграммы к единообразному виду, благодаря которому в диаграммах легко ориентироваться.
- Начало диаграммы всегда находится в левом верхнем углу. Читатель всегда знает, откуда начать.
- Время течёт вниз; ветвление идёт вправо. Читатель всегда знает, где следующая икона.
- Применяются обычные линии вместо стрелок.
Эти и другие правила улучшают читаемость диаграмм путём устранения зрительного шума.
Другое преимущество этих правил — единообразие. Пути по диаграмме идут так, как читатель этого ожидает. Например, следующая икона всегда находится под текущей, что убирает необходимость сканировать окружающее пространство, чтобы найти следующий шаг.
Ветвление всегда идёт вправо, и никогда — влево. Такая предсказуемость позволяет увидеть алгоритм сразу, без предварительного изучения структуры диаграммы.
Уникальные возможности
В добавок к улучшенной читаемости, в языке ДРАКОН имеются уникальные возможности, такие как силуэт, а также представление царской дороги через алгоритм (happy path).
Силуэт
Силуэт — это тип диаграммы, который разбивает большой алгоритм на малые логические части (Рис. 5). Силуэт предлагает удобный способ разделить сложную функцию на несколько подфункций, и при этом не создавать отдельные функции. Силуэт следует знаменитой стратегии «разделяй и властвуй» без того, чтобы тратить силы на передачу параметров в функции и получение возвращаемых значений.
Рисунок 5. Силуэт.
Царская дорога (happy path)
Царская дорога на Дракон-схеме идёт по вертикальной линии в левой части диаграммы. Правая сторона диаграммы, в свою очередь, имеет дело с нежелательными ситуациями и ошибками. Это соглашение называется «чем правее, тем хуже».
Если читателю интересна только базовая информация об алгоритме, изучать всю диаграмму не нужно. Достаточно бросить взгляд на её левую часть.
Рисунок 6. Царская дорога в языке ДРАКОН
Свобода от drag-and-drop
Процесс редактированя в Drakon.Tech не использует drag-and-drop. Щелчки мышью заменяют эргономически изматывающие операции по тасканию объектов мышью. Вместо того, чтобы вручную рисовать диаграмму, достаточно щёлкнуть по выделенным точкам на холсте, чтобы дать указания редактору. Диаграмму рисует не человек, а редактор.
Вот почему на создание диаграммы в Drakon.Tech уходит так мало времени.
Лёгкость редактирования
Программирование — это непрерывный процесс улучшения кода, и поэтому традиционные среды разработки, основанные на тексте, предлагают богатые возможности редактирования. Разработчик может перемещать блоки кода при помощи операции копировать-вставить, а также нажимать кнопки «Отменить» и «Повторить». Никакой визуальный редактор не обеспечивает гибкость и лёгкость работы, сравнимую с текстовыми средами разработки. Никакой, кроме Drakon.Tech.
Инструмент выделения нескольких элементов в Drakon.Tech гарантирует, что только логически завершённые части диаграммы можно выделить, скопировать и вставить.
Всё это вместе позволяет редактировать алгоритмы в Drakon.Tech даже быстрее, чем модифицировать код в традиционном текстовом редакторе.
Источник: drakon.tech
Глава 12
Предположим, нужно построить систему визуального программирования на гибридном языке ДРАКОН-СИ. Задачу можно решить, например, с помощью трех программ: дракон-редактора, дракон-конвертора и компилятора языка СИ. Пользователь с помощью дракон-редактора рисует на экране компьютера программу на языке ДРАКОН-СИ (рис. 90, правая графа).
Затем дракон-конвертор преобразует внутреннее представление графических кодов в исходный текст языка СИ (рис. 90, средняя графа), после чего стандартный компилятор СИ превращает исходный текст в объектный код.
Чтобы лучше уяснить преимущества языка ДРАКОН-СИ, произведем мысленно обратное преобразование. Как видно из рис. 90, при преобразовании текстовой программы в визуальную исходный текст СИ-программы разбивается на две части. Операторы присваивания, условные выражения и декларативные описания почти без изменения переносятся в визуальную программу и размещаются внутри ее икон. Остальные текстоэлементы языка СИ (которые можно назвать удаляемыми или “паразитными”) становятся ненужными, превращаясь в графические линии и ключевые слова “да” и “нет” (yes и no). Рисунок 90 показывает, что список паразитных (удаляемых) элементов языка СИ оказывается внушительным: он включает все ключевые слова в примерах 1—7 кроме default, все фигурные, круглые и косые скобки, двоеточия, метки, комментарии в примерах 3—5, и кроме того, точки с запятой в примерах 2, 3, 7 и отчасти 6.
Таким образом, чтобы построить язык ДРАКОН-СИ, надо по определенным правилам соединить визуальный синтаксис ДРАКОНА с текстовым синтаксисом языка СИ, удалив из последнего все элементы, функции которых реализуются визуальными операторами ДРАКОНА. Пара языков СИ и ДРАКОН-СИ эквивалентна в том смысле, что может быть построен конвертор, выполняющий как прямое, так и обратное преобразование. Такой конвертор может превращать исходный текст программы на языке ДРАКОН-СИ (рис. 90, правая графа) в эквивалентную СИ-программу (рис. 90, средняя графа), и наоборот.
Создание любого гибридного языка (например, ДРАКОН-СИ) вряд ли стоит считать оригинальной разработкой, так как последний почти полностью сохраняет концепцию, структуру, типы данных и другие особенности исходного языка (СИ). Правильнее говорить о том, что построение гибридного языка (ДРАКОН-СИ) есть технический прием, при котором в строго определенном числе случаев текстовая нотация исходного языка заменяется на визуальную. Однако этот технический прием позволяет существенно улучшить эргономический облик исходного языка.
ГИБРИДНЫЙ ЯЗЫК ПРОГРАММИРОВАНИЯ
Обратимся к верхнему примеру на рис. 91. В средней графе представлена программа на языке МОДУЛА-2, в правой — эквивалентная ей программа на языке ДРАКОН-МОДУЛА. В левой графе приводится список ключевых слов, которые используются в модула-программе и являются “жизненно необходимыми” для языка МОДУЛА, но которые совершенно не нужны в дракон-программе.
С эргономической точки зрения, эти и многие другие ключевые слова, присутствующие в текстовых языках, есть не что иное как визуальные помехи, притягивающие к себе внимание читателя и отвлекающие его внимание от содержательной стороны дела. Эргономическое преимущество ДРАКОНА состоит в том, что вместо ключевых слов используется визуальный образ, который воспринимается читателем бессознательно, на интуитивном уровне, в то время как канал сознательного внимания действует более продуктивно — для восприятия наиболее важных, содержательных аспектов задачи.
ПРИМЕР ЭРГОНОМИЧЕСКОЙ ОПТИМИЗАЦИИ
На рис. 91 (внизу, в средней графе) написана программа на языке ПАСКАЛЬ. Действуя по аналогии с предыдущими примерами, ее можно легко преобразовать в программу на языке ДРАКОН-ПАСКАЛЬ. Для этого нарисуем визуальный оператор “развилка” и в иконе “вопрос” поместим запись
K = 1 OR K = 2 |
Нижний выход иконы “вопрос” пометим словом “да” и присоединим к нему переключатель с двумя иконами “вариант”, а правый выход (ответ “нет”) подключим к иконе “вывод”, в которой сверху напишем WRITELN, снизу — ОШИБКА. В итоге получим дракон-схему, которая несомненно является совершенно правильным решением поставленной задачи. (Для наглядности советуем читателю выполнить описанные построения на бумаге.)
А теперь изменим условие задачи. Попытаемся создать программу, которая была бы не только эквивалентной паскаль-программе на рис. 91, но и эргономически оптимальной для русскоязычного читателя. Искомая программа, написанная на языке ДРАКОН-2, представлена на том же рисунке внизу справа.
Бросается в глаза структурное различие между программами. Паскаль-программа содержит две конструкции: if-then-else и case-of. Эргономическая оптимизация состоит в том, что в дракон-программе используется всего один визуальный оператор (переключатель с тремя вариантами), который тем не менее “в одиночку” выполняет те же самые функции, что и два текстовых оператора языка ПАСКАЛЬ. В итоге сложное условие K = 1 OR K = 2 и другие излишества паскаль-программы устраняются, а дракон-схема заметно упрощается и становится лаконичной, прозрачной, элегантной.
ДИАЛОГОВЫЕ ПРОГРАММЫ
Продолжим изложение одного из возможных подходов к построению языка программирования ДРАКОН-2. Еще раз напомним: читатель не найдет здесь описания языка. Наша цель гораздо скромнее: показать, что формализация текстового синтаксиса для языка ДРАКОН вполне осуществима, и привести несколько примеров, подтверждающих эту мысль.
Рассмотрим диалоговые программы на рис. 92 и 93, имеющие улучшенные дидактические (педагогические) характеристики. Для этого применяется обширный набор эргономических средств. В частности, при заполнении иконы “комментарий” используется зонирование текста.
Текст комментария для облегчения восприятия пространственно делится на две зоны, которые, во-первых, имеют четко очерченные и легко различимые границы, во-вторых, отличаются по цвету фона (белый и серый). В серой зоне помещается текст, появляющийся на экране компьютера, в белой — пояснения к нему. Отграничение экранного текста от пояснений облегчает чтение комментариев и улучшает их понимаемость.
Эргономический прием “зонирование текста” полезно использовать не только в комментариях, но и в других случаях, например в операторах ввода-вывода.
Оператор “Сообщение”
Оператор “Сообщение” служит для вывода информации на экран компьютера. Он содержит икону “вывод”, на верхнем этаже которой помещают ключевое слово “Сообщение”, на нижнем — выводимую информацию. При описании последней применяется зонирование текста: в серой зоне пишут имена переменных или выражения (значения которых следует вывести на экран), в белой зоне — постоянную информацию (которая выводится на экран без изменений). Признаком новой строки служит черный кружок. Например, на рис. 92 с помощью оператора “Сообщение” на экран выводится фраза “Сумма чисел равна” и значение выражения m + n.
Оператор “Запрос”
Оператор “Запрос” осуществляет ввод в компьютер значений переменных, вывод на экран постоянной информации, имен переменных и введенных значений. В верхней части иконы “ввод” пишут ключевое слово “Запрос”, в нижней — вводимую и выводимую информацию. Здесь также присутствует зонирование текста: в серой зоне указывают имена переменных, подлежащих вводу в компьютер, в белой — помещают постоянную информацию.
Предположим, нужно ввести значения m = 23 и n = 45 (рис. 92). Делается это, например, так: подводят курсор в зону m, набирают на клавиатуре число 23 и нажимают клавишу “возврат каретки”. При этом зона m на экране гаснет и вместо нее загорается число 23. Значение n вводится аналогично.
Таким образом, оператор “Запрос” запрашивает у пользователя значения переменных, записывает их в память и одновременно отображает на экране вместе с постоянной информацией (если последняя указана на нижнем этаже оператора “Запрос” в белой зоне).
Описание данных
Для описания данных служит икона “полка”. На верхнем этаже пишут ключевое слово “Данные”, на нижнем — описание данных. Например, на рис. 92 в иконе “полка” указано, что переменные m и n имеют тип “целый”.
Можно предложить и другой способ: описание данных выносят за рамки дракон-схемы и помещают в отдельную таблицу.
ИДЕНТИФИКАТОРЫ
Приведем правила записи идентификаторов.
-
Длина идентификатора 1. 32 символа.
Источник: drakon.pbworks.com