Д Р А К О Н О Г Р А Ф И К А

Маршрутами ДРАКОНа | Краткое руководство по языку | Базовые структуры деятельности


Содержание

Примитив

Произвольный примитив

Силуэт

Произвольный силуэт


Как уже говорилось, одной из ключевых идей, «изюминок» техноязыка является существование различных изображений структуры ГСА на плоскости, или символических диоформ визуалов — примитива и силуэта. Изначально даются их исходные формы – заготовки дракон-схем; одно из назначений заготовки – задавать границы шампура. Рассмотрим теперь каждую из диоформ в целом, опираясь на то, что мы узнали о подструктурах, составляющих содержание визуалов, т.е. входящих в шампуры.

Примитив

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

Визуал формы примитива – общий вид и способ образования

Примитив произвольной структуры мы рассмотрим позже.

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

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

Формула маршрута следования – это слово, составленное из буквенных обозначений икон.

Горизонтальные линии в начале и конце любой побочной вертикали являются частью соответствующего звена (естественного перехода).

Ветвления изображаются посредством развилок – визуальных операторов, имеющих один вход и несколько выходов (плеч). Простейшая развилка строится на основе иконы И4, сложная – макроиконы 3. Формально при этом происходит условный переход на один из выходов в зависимости от результата проверки некоторого условия.

Если алгоритм содержит ветвления, то в его дракон-схеме можно выделить элементы:

Проверка условия ветвления происходит в условном операторе, изображаемом иконой И4 или «шапкой» макроикон 3/11 или 5/13. В иконе Вопрос записывается т.н. да-нетный вопрос, т.е. такой, на который можно дать ответы «Да» или «Нет». Для переключателя составляется т.н. тематический вопрос, т.е. такой, на который можно дать ряд конкретных ответов (перечень из двух и более понятий – вариантов); предмет вопроса записывается в иконе Выбор, а каждый из вариантов – в своей иконе Вариант.

Циклы, вводимые на основе иконы И24, изменяют порядок исполнения; в петле цикла движение идет в направлении, обратном естественному – снизу вверх и справа налево, что отмечается стрелкой.

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

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

При наличии ветвлений в визуале имеется два и более маршрутов, проходящих через разные вертикали и плечи развилок. В смысловом визуале (иконы которого заполнены конкретным текстом) один из маршрутов считается главным; он выбирается разработчиком схемы, обычно по значимости для целей алгоритма.

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

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

Исходя из визуального порядка вертикалей ветвления (цикла), определяется и положение горизонталей рёбер, ограничивающих побочную вертикаль - всегда справа от главной.

Теперь коснёмся структуры примитива в целом. Она м.б. линейной или нелинейной (содержащей ветвления и/или циклы).

Изначально нелинейная структура тела примитива образуется как матрёшка — вложение одних макроикон ветвления в другие. Из схем переключающего цикла видно, что матрёшки образуются и как комбинации ветвлений с циклами. Нам также знаком ещё один случай матрёшек – циклы в цикле.

Матрёшка в общем случае определяется как вложение нелинейных структур (ветвлений и/или циклов) друг в друга.

В примитиве реального времени употребляются иконы РВ, не являющиеся шампур-блоками. Такая икона Период может располагаться в петле цикла; кроме того, такие иконы Синхронизатор м.б. присоединены к некоторым шампур-иконам (макроиконам). Тем самым образуются макроиконы реального времени (по стандарту языка имеют номера 7…20).

Кроме обычных примитивов, возможны и произвольные.

Произвольный примитив

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

Тело в произвольном примитиве состоит из макроструктурных блоков следующих видов:

Пересадка лианы – отрыв нижнего конца лианы и присоединение его в другой точке дракон-схемы при соблюдении определённых условий (см. /2, гл. 15, Тезис 28/).

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

В частном случае (если тело примитива начинается с ветвления и в нём определённым образом пересаживались лианы) лианным блоком становится всё тело.

В примитиве, кроме того, возможно «зацикливание» алгоритма операцией Удаление конца примитива; при этом образуется макроцикл — неявный (не заданный через макроикону) цикл по всему телу до верхней границы шампура. Этот макроцикл мы можем представить себе как явный цикл, вопрос которого д.б. риторическим, т.е. иметь в любой ситуации выполнения единственный верный ответ, приводящий на петлю (наиболее очевидная формулировка – Продолжать (или нет) выполнение визуала?); полученная схема показана слева на рисунке далее.

Варианты визуализации логики «зацикленного» примитива

Указанную схему можно считать корректной, но вообще-то ответ на риторический вопрос бессмыслен. Фактически при удалении конца условный переход на него превращается в безусловный переход назад (возврат управления) к началу алгоритма. Это можно изобразить, используя иконы Имя ветки и Адрес, визуализирующие безусловный переход в техноязыке (см. схему справа на рисунке выше). Эта схема может считаться лишь драконоподобной, поскольку БП назад в техноязыке запрещён.

Силуэт

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

Данная диоформа считается наиболее общей для алгоритма.

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

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

Петля силуэта – икона, визуализирующая обобщённые безусловные переходы между выходами веток и их входами.

Понятие главного маршрута применительно к силуэту уточняется:

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

Замыкающая стрелка петли обозначает направление перехода – снизу вверх и слева направо (ср. с петлёй цикла), а также отмечает начальную точку исполнения визуала – со входа в крайнюю левую ветку. Горизонталь, лежащую в петле справа от этой стрелки, будем называть заглавной; вместе с иконой Заголовок и комплектом икон Имя ветки она образует т.н. шапку силуэта, которая позволяет оперативно уяснить метаструктуру описываемой деятельности (её название, число частей и имя каждой части). Нижнюю горизонталь петли называют «землей» силуэта; вместе с комплектом икон Имя ветки» она образует т.н. подвал силуэта.

Силуэт имеет две и более веток; в каждой иконе Адрес пишется имя одной из веток данного визуала. Мы можем обобщённо показать структуру дракон-схемы в этой форме (см. далее).

Как показано на схеме, крайняя правая ветка м.б. конечной; тело её представляет собой шампур, соединяемый не с петлёй, а с иконой Конец. Остальные ветки будем называть полными.

Тело полной ветки обычного силуэта образуется так же, как и шампур в обычном примитиве.

Шампур веткивертикаль, соединяющая икону Имя ветки с иконой Адрес той же ветки.

Рассмотрим отличия базовых алгоритмических конструкций в силуэте от примитива и сопутствующие ограничения.

В силуэте следование отображается, кроме соединения смежных икон звеньями вертикали, также через совпадение имён в иконах Имя ветки и Адрес разных веток. Тем самым происходит безусловный переход по петле силуэта от ветки к ветке, вплоть до конечной.

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

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

Силуэт можно описать на текстовом языке; разумеется, в него следует ввести операторы, соответствующие иконам Имя ветки и Адрес. Пример описания силуэта на псевдокоде /1, с.91-92/.

В силуэте реального времени допускается употребление в телах веток рассмотренных для примитива шампур-икон и макроикон РВ. Кроме того, конечная ветка может отсутствовать; тогда силуэт является "зацикленным", т.е. выполняется бесконечно (практически – пока может работать исполнитель алгоритма). Общий вид данного силуэта представлен далее.

Исходной формой силуэта является заготовка-силуэт, имеющая только начальную и конечную ветки, тела которых замещены валентными точками. Заготовка-силуэт даётся в языке аксиоматически, как и заготовка-примитив; очевидно, что путём несложной редукции из первой получается вторая.

Визуал формы силуэта – обобщённые структуры для обычного вида

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

Произвольный силуэт

К произвольным будем относить силуэты с расширенными возможностями маршрутизации выполнения – множественностью выходов веток и/или входов в визуал.

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

Тело полной ветки произвольного силуэта, в отличие от шампура в примитиве, может иметь несколько выходов; в этом случае ветка называется многоадресной. Один из этих выходов, как и в шампуре, является концом главной вертикали ветки; остальные представляют собой т.н. заземлённые лианы.

Кроме структурных и лианных блоков, в макроструктуру ветки входит новый тип блока:

Заземление лианы – отрыв конца лианы и присоединение его к "земле" силуэта через икону Адрес с соблюдением определённых условий (см. /1, Гл. 15, Тезис 29/).

Операция Заземление лианы делает ветку многоадресной. При наличии хотя бы одной многоадресной ветки силуэт является разветвлённым.

В разветвлённом силуэте (с многоадресными ветками) уточняются некоторые понятия, и прежде всего понятие главного маршрута, что подробно рассмотрено в /1, Гл.6/.

Шампур веткивертикаль, соединяющая икону Имя ветки с крайней левой из икон Адрес той же ветки.

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

В разветвлённом силуэте можно образовать веточный цикл . Он может проходить и через последовательность двух и более веток; тогда иконы с совпадающим именем относятся к разным веткам. Началом веточного цикла является начало (икона Имя ветки) крайней левой из входящих в него веток, а концом – икона Адрес крайней правой.

Как и обычные, веточные циклы м.б. вложены друг в друга (конечно, N-веточный цикл можно вложить в цикл с числом веток, также не меньшим N).

Иконы Имя ветки и Адрес, обозначающие начало и конец веточного цикла, принято помечать специальным образом (возможные варианты см. /2, рис. 51 и 105/). Мы принимаем второй вариант, что видно из используемого алфавита техноязыка.

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

Также можно преобразовать обычный силуэт (в т.ч. разветвлённый) к бесконечному операцией техноязыка Удаление последней ветки; при этом автоматически ссылки на последнюю ветку в «подвале» изменяются на первую.

Визуал формы силуэта – обобщённые структуры для произвольного вида

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

В начало страницы | Оглавление | Главная | Версия для печати

Copyright © Жаринов В.Н.

Hosted by uCoz