Маршрутами ДРАКОНа | Краткое руководство по языку | Шампур-метод и техноязык
Содержание
Визуальные операторы (виопы) техноязыка ДРАКОН-Алго (версии 1 и 2)
Составные операторы (макровиопы) базового словаря техноязыка ДРАКОН
Дополнительные операторы Д2М-редакции техноязыка
Дополнительные макрооператоры Д2М-редакции техноязыка
Операции прибавления элементов
Операции преобразования конфигурации
Операции преобразования свойств
Определение результатов вывода
Техноязык служит для описания структуры и свойств объектов данных (элементарных, сложных) с т. зр. формального исполнителя (напр. информашины) в графовой форме.
Описывает процесс решения задачи как алгоритм (систему алгоритмов) с графовым представлением маршрутной структуры; граф-схема алгоритма (ГСА) в языке называется дракон-схемой. Применяется взамен текстовых импер-языков и блок-схем (заменяя графами только структурную часть их импер-составляющей; остальное подлежит отражению как текстоэлементы дракон-схем и, возможно, схем других визуальных языков).
Модификации (в сравнении с исходным стандартом языка из /1/) состоят в следующем:
обеспечено единообразие построения графики (на основе положений в этом подпункте) и текста (на основе положений в этом подпункте) для удобства восприятия; алфавит и словарь реиндексированы по общеязыковым правилам;
добавлены новые шампур-операторы, как простые, так и комплексные;
изменено определение некоторых исходных операторов (в т.ч. графика) для удобства последующего расширения языка и гибридизации с текстовыми прогязыками;
введены средства визуализации исключений и прерываний при исполнении алгоритмов;
изменена терминология: «валентные точки» называются точками ввода; «икона» (возможно, до введения согласованного термина) - виопом (от ВИзуальный ОПератор);
введено определение синтаксиса текстоэлементов (посредством РБНФ);
правила подразделены на системные категории.
В целом изменения учитывают синтаксис текстовых прогязыков, прежде всего семейства Оберон.
Фактически для представления алгопроцессов в предметных областях, отличных от исходной для техноязыка (как импер-ЯПЗ методологии ГРАФИТ-ФЛОКС), определена расширенная Д2М-редакция техноязыка. Расширение для целей документа ограничено лексикой; правила вывода оставлены в определении шампур-метода. Описания можно найти на страницах графит-букваря.
Визуальные операторы (виопы) техноязыка ДРАКОН-Алго (версии 1 и 2)
Алфавит образуют ОС-вершины и символы, перечисленные в таблицах ниже:
Составные операторы (макровиопы) базового словаря техноязыка ДРАКОН
Базовый словарь образуют сочетания алфавитных знаков, перечисленные в таблице ниже:
Дополнительные операторы Д2М-редакции техноязыка1
Дополнительные операторы приведены ниже:
Пояснение. Виоп Д30 визуализирует операторы проверки инвариантов алгопроцесса (контрактов процедуры/метода программы).
Дополнительные макрооператоры Д2М-редакции техноязыка2
Виоп 30Д визуализирует оператор проверки инвариантов assert.
2.1.2.1. Д2М-схемы представляют собой орграфы, причём всё объекты, кроме дуг, являются вершинами. Направление дуг от начала схемы к концу (в терминах языка – по шампуру) подразумевается и потому специально не показывается; направление дуг против шампура показывается стрелкой на конце дуги.
Д2М-схемы эквивалентны дракон-схемам с точностью до возможного алфавита вертикалей (могут присутствовать также вершины дополнительных виопов).
В Д2М-языке разрешена декомпозиция (оформляемая оператором активной подстановки Вставка). В силу этого описание логики процесса м.б. выполнено как разнесённым способом (в виде Д2М-модели, содержащей общую и частные схемы), так и совмещённым способом – в виде единой Д2М-схемы (без подстановок). Общая схема носит имя процесса, к которому относится. Каждая частная схема описывает одну из процедур процесса (подставляемую одно- или многократно; в последнем случае обязательна формальная параметризация передаваемых/получаемых объектов для различения их в разных вхождениях).
2.1.2.2. Д2М-схемы организованы (находятся «в статике») следующим образом:
СА. Используются базовый или полный алфавит и словарь в зависимости от смысла визуализируемых процессов. Словарные конструкции и заготовки, помимо прочего, задают упорядоченность дуг на схеме.
Определены две альтернативных диоформы (типа структуры) Д2М-схем – маршрутная неаранжируемая (не укладываемая на плоскости, в терминах языка – примитив) или аранжируемая (силуэт). Каждая из них имеет исходную форму (аксиому для вывода), называемую заготовкой. Заготовки и их элементы показаны ниже:
СБ. Определены как виопы-боковики:
формальные параметры или полка с приёмником (справа к шампур-иконе);
синхронизатор или условие (слева к шампур-иконе);
прерывание (справа к звену вертикали);
условие или исключение (слева к звену вертикали).
Виоп-боковик соединяется с вершиной горизонтальным ребром-отводком.
NB. Возможно, следует допустить присоединение исключения к заголовку и концу схемы (т.е. обработку исключительной ситуации при входе в визуал и/или выходе из него).
СВ. Детали организации Д2М-схем заданы далее в Тезисах 1...9, 11...17, 19...20, 22...23, 26...27.
2.1.2.3. Построение («динамика») дракон-схем определяется как исчисление над алфавитом и словарём, определёнными выше, с использованием маршрут-заготовки. Операции вывода распределены по классам прибавления элементов к текущей структуре, их вычитания из структуры, преобразования текущей структуры.
На структуру дракон-схемы накладываются следующие ограничения (топологические запреты), как указано далее при уточнении Тезиса 5.
2.1.2.4. Для «жёсткого» построения определены правила вывода (тезисы), рассмотренные в п. 2.1.3, исключая перечисленные в Д2М-правиле СВ.
Определения тезисов даны на основе /1, Гл.15/ и используют также результаты /3, п/р 4.2/.
NB. Множество тезисов является минимальным и потому составлено исходя из того, что объектом является только текущая схема и не делаются никакие предположения ни о её топологических свойствах, ни о свойствах исполнителя тезисов (напр., наличии дополнительной памяти объектов). М.б. определены другие исчисления с учётом таких предположений; также с использованием данных тезисов и предположений о свойствах исполнителя м.б. определены укрупнённые операции (такие, как объединение/разъединение, рокировка).
Явно в исходном шампур-методе не определены.
NB. Следует подразумевать, по крайней мере, следующее:
Дракон-схемы имеют род топологии, который м.б. определён как маршрутный.
Подстановка означает образование системы дракон-схем, связанных отношением вызова (исполнимого включения).
Операции над схемой с системной т. зр. относятся к одному из классов, выделяемых по характеру влияния на схему как как систему «элементы-связи».
Тезис 1. Иконы — визуальные буквы, образующие визуальный алфавит языка ДРАКОН согласно п. 2.1.1 .
Тезис 9. Точка ввода (валентная) — точка, принадлежащая заготовке или дракон-схеме, в которой разрешается произвести разрыв соединительной линии, чтобы в место разрыв вставить атом с помощью операции Ввод атома
Остальные вертикали, если они есть, находятся правее главной. Все вертикали шампур-блока ориентированы сверху вниз, кроме цепей, используемых для организации петли цикла.
Тезис 15. Точки ввода делятся на нейтральные и критические.
Тезис 16. Точка называется нейтральной, если применение операции Ввод атома к данной точке является возможным, но не обязательным. В отличие от нее критическая точка требует обязательного ввода атома.
Тезис 17. Валентные точки находятся в заготовках и атомах. Они показаны в /3, п/р 4.2, дио/ф Визуализация формальных основ техноязыка/, где нейтральные точки обозначены светлыми кружками, критические — жирными точками.
Тезис 19. Полная совокупность критических точек охватывает:
критические точки в пустых атомах;
одну критическую точку в заготовке-примитив;
одну критическую точку в заготовке-силуэт.
Тезис 20. Полная совокупность нейтральных точек охватывает:
входные и выходные точки атомов;
две внутренние точки в атоме "цикл ЖДАТЬ";
одну точку в заготовке-силуэт;
точки, полученные в результате нейтрализации критических точек.
Тезис 2. Заготовка-примитив и заготовка-силуэт — фигуры, показанные в п/п 3.5.2.1 .
Предварительный тезис 3. Примитив — фигура, полученная путем преобразования заготовки-примитив за конечное число шагов с помощью фиксированного набора операций (перечисленных ниже в тезисе 36).
Предварительный тезис 4. Силуэт — фигура, полученная путем преобразования заготовки-силуэт за конечное число шагов с помощью фиксированного набора операций (перечисленных ниже в тезисе 37).
Тезис 5. Дракон-схема — общее понятие для обозначения примитива и силуэта.
NB. На структуру дракон-схемы накладываются следующие ограничения (топологические запреты):
линии дуг располагаются только вертикально или горизонтально;
не допускаются пересечения линий;
недопустимы обрывы линий, в частности из-за разрыва дракон-схемы между диосценами (схема должна умещаться на одной сцене);
в силуэте невозможны связи между разными ветками;
при преобразованиях схемы должна сохраняться однозначность трактовки маршрутов без дополнительных указаний направления дуг.
NB. Из последнего, в частности, следует, что вертикаль ни в какой своей части не может идти против шампура (снизу вверх), а последовательные (образующие линию) горизонтали д.б. направлены одинаково (исходя из порядка вертикалей - справа налево).
Тезис 6. Шампур-блок — часть дракон-схемы, имеющая один вход сверху и один выход снизу, содержащая одну или несколько икон, причём:
вход и выход лежат на одной вертикали, через которую проходит путь от входа к выходу;
через каждую икону, входящую в состав шампур-блока, проходит хотя бы один путь от входа к выходу;
в состав шампур-блока могут входить любые иконы за исключением следующих: заголовок, конец, формальные параметры, петля силуэта.
Тезис 7. Главная вертикаль шампур-блока — вертикаль, соединяющая его вход и выход.
Тезис 8. Атомы — фигуры, изображённые в /3, п/р 4.2, дио/ф Визуализация формальных основ техноязыка, кадр 1/. Эти фигуры используются в операции Ввод атома. Любой атом является шампур-блоком.
Тезис 11. Атомы делятся на простые и составные. Простой атом состоит из одной иконы, составной содержит не менее двух (/3, п/р 4.2, дио/ф Визуализация формальных основ техноязыка, кадры 2,3/).
Тезис 12. Функциональный атом — простой атом, не являющийся пустым оператором. Таковы все простые атомы, кроме комментария.
Тезис 13. Составные атомы бывают пустые и непустые. В непустом есть хотя бы один функциональный атом. В пустом нет ни одного.
NB. Составной атом также содержит :
древесные точки, в каждой из которых к вертикали присоединяется (от вертикали ответвляется) одна горизонтальная линия;
точки излома, в каждой из которых горизонтальная линия соединяется с вертикальной.
Тезис 22. Матрёшка — фигура, полученная путем ввода пустого атома в критическую точку пустого атома, а также путем многократного вложения пустых и непустых атомов друг в друга (рис. 123).
Тезис 23. Матрёшка бывает пустой (если все содержащиеся в ней атомы пустые), частично пустой (если в ней есть как пустые, так и непустые атомы) и непустой (если все её атомы непустые). См. /1, Рис. 124—126/.
Пояснение. После того как сочинитель эффективно использовал пустые атомы для придания дракон-схеме желаемой конфигурации, он должен убрать их из схемы.
Тезис 26. Лиана — часть дракон-схемы, имеющая один вход и один выход, именуемые "началом лианы" и "концом лианы" соответственно. Началом лианы может быть любой выход икон вопрос и вариант, если он (выход) не является петлёй цикла. Концом лианы считается точка слияния, в которой нижняя часть лианы соединяется с другой линией (концом лианы не может быть неразветвлённый вход иконы).
Тезис 27. Лиана может быть нагруженной (если она содержит иконы) и ненагруженной (если это просто линия).
NB. Существенно неполон шампур-метод в том, что не определены подсхемы как объекты операций. Это требует указания формальных условий выбора подсхемы на шампур-схеме.
Очевидно допустимыми являются:
атомарная вершина (образующаая простой атом);
цепочка атомарных вершин;
шампур-блок.
В реализации определяются условия выбора этих объектов. При несоблюдении условий выбор не принимается.
Операции прибавления элементов
Тезис 10. Ввод атома — преобразование заготовки или дракон-схемы, выполняемое следующим образом: производится разрыв соединительной линии в валентной точке и в это место вставляется атом, как показано на /1, Рис. 116/.
Тезис 18. Если в фигуре (заготовке или атоме) одна критическая точка, ввод атома обязательно производится именно в нее; при этом критическая точка уничтожается. Если фигура имеет две критические точки, обязательный ввод атома делается только в одну из них; при этом критическая точка, в которую произведен ввод, уничтожается, а другая критическая точка нейтрализуется, т. е. становится нейтральной.
Тезис 21. Операция Ввод атома применяется для ввода только простых и пустых атомов, а также цикла ЖДАТЬ. Ввод непустого атома осуществляется в два этапа; сначала вводится пустой атом, затем в его критическую точку вводится функциональный атом.
Пояснение. Ввод пустого атома — очень удобный строительный приём. Он позволяет обеспечить богатство и разнообразие создаваемых дракон-схем и используемых в них конфигураций. Среди последних особую роль играет так называемая "матрёшка".
Тезис 24. Чтобы устранить пустые атомы из дракон-схемы, есть два способа:
превратить пустой атом в непустой;
превратить пустой атом в пустую матрешку, затем превратить её в непустую.
В обоих случаях выполняется ввод атома.
Тезис 25. Устранение из дракон-схемы пустых атомов автоматически приводит к уничтожению всех критических точек.
Тезис 30. Боковое присоединение — преобразование дракон-схемы, с помощью которого в схему добавляются иконы синхронизатор или формальные параметры.
Икона синхронизатор размещается слева от другой иконы и соединяется с ней горизонтальным отростком. Перечень икон, к которым осуществляется боковое присоединение синхронизатора, показан в /2, Рис.2 (пп. 8...20)/.
Икона формальные параметры размещается справа от иконы заголовок и соединяется с ней горизонтальным отводком, как показано на /1, Рис. 2, п. 1/.
Тезис 31. Добавление варианта — преобразование дракон-схемы, с помощью которого в атом переключатель добавляется ещё одна икона вариант. Число добавлений не более 14, так что максимальное число вариантов в переключателе равно 16.
Тезис 32. Добавление ветки — преобразование силуэта, в который добавляется ещё одна ветка. Число добавлений не более 14, так что максимальное число веток в силуэте равно 16.
Тезис 35. Дополнительный вход — преобразование силуэта, с помощью которого добавляется ещё одна икона заголовок, которая размещается над любой иконой имя ветки (кроме левой) и соединяется с ней вертикальным отростком. При этом на верхней горизонтальной линии силуэта рисуют направленную вправо стрелку, как показано в примере /1, Рис. 84/ справа.
Ограничение. При наличии веточного цикла запрещается присоединять дополнительный заголовок к середине веточного цикла.
Тезис 33. Удаление последней ветки — преобразование силуэта, при котором удаляется крайняя правая ветка. Этот приём используется при описании бесконечного параллельного процесса, как показано в примерах /1, Рис. 88, 89/.
Тезис 34. Удаление конца примитива — преобразование примитива, при котором удаляется икона конец. Это необходимо для описания бесконечного параллельного (реагирующего) процесса.
NB. Данные операции формально в той же мере можно трактовать и как преобразования конфигурации схемы.
Следует определить операции удаления для заданных подсхем.
Операции преобразования конфигурации
Тезис 28. Пересадка лианы — преобразование дракон-схемы, выполняемое за четыре шага.
Шаг 1. Производится отрыв конца лианы от точки присоединения (/1, Рис. 119/).
Шаг 2. Конец лианы с помощью вертикальных и горизонтальных линий присоединяется к любой валентной точке, куда лиана может дотянуться без пересечения с другими линиями (/1, Рис. 119/). При этом запрещается:
формировать второй вход в ветку (ошибка "сиамские близнецы" — см. /1, Рис. 127/);
образовывать новый цикл;
создавать второй вход в цикл;
формировать маршрут из данной ветки в другую;
присоединять лиану к точке, к которой уже подходит лиана с другой стороны вертикали; следует использовать точку ввода либо выше, либо ниже.
Однако разрешается строить новый путь из середины обычного цикла к единственному входу в этот цикл, создавая визуальный эквивалент оператора continue языка СИ (см. /1, Рис. 90, пример 7; Рис. 41/).
NB. Два последних правила введены для учёта топологических запретов по п/п 3.5.2.3. В дракон-схемах точки слияния с вертикалью для горизонталей, подходящих к вертикали с разных сторон, должны разделяться как минимум одним звеном вертикали; в этом случае можно однозначно трактовать направление маршрутов после пересадки лиан без дополнительных указаний направления дуг.
Шаг. 3. Производится эквивалентное преобразование топологии дракон-схемы, чтобы лиане не пришлось загибаться наверх (/1, Рис. 128/) и соблюдались правила построения шампур-блока (/1, Рис. 129/).
Шаг 4. Устраняются неоправданные изломы линий (/1, Рис. 130/).
Тезис 29. Заземление лианы — преобразование дракон-схемы, выполняемое за четыре шага.
Шаг 1. Производится отрыв конца лианы от точки присоединения (/1, Рис. 120/).
Шаг 2. Конец лианы с помощью вертикальной линии прсоединяется к любой точке нижней горизонтальной линии силуэта, куда он может дотянуться, не пересекая другие линии.
Шаг 3. Производится разрыв линии в нижней части лианы и в место разрыва вставляется икона адрес (/1, Рис. 120/).
Шаг 4. Устраняются неоправданные изломы линий.
Операции преобразования свойств
Формально в исходном шампур-методе не определены.
NB. Отсутствие явных определений данного класса операций также есть существенная неполнота исходного шампур-метода.
Фактически необходимы по крайней мере следующие:
ввод имени ветки в вершину Имя ветки и в виоп Адрес ветки;
ввод надписей «да» и «нет» (а равно и обмен их местами как предложенная в /2/ операция дракон-редактора).
Эти и другие целесообразные операции определяются при реализации.
Определение результатов вывода
Тезис 14. В полностью законченной дракон-схеме не должно быть ни одного пустого атома (так как последний эквивалентен пустому оператору). Пустые атомы разрешается использовать на всех этапах построения дракон-схемы, кроме заключительного.
Тезис 36. Любая правильно построенная дракон-схема "примитив" является результатом преобразования заготовки-примитив с помощью конечного числа операций: Ввод атома, Пересадка лианы, Добавление варианта, Боковое присоединение, Удаление конца примитива.
Тезис 37. Любая правильно построенная дракон-схема "силуэт" является результатом преобразования заготовки-силуэт с помощью конечного числа операций: Ввод атома, Добавление ветки, Пересадка лианы, Заземление лианы, Добавление варианта, Боковое присоединение, Удаление последней ветки, Дополнительный вход.
В начало страницы | Оглавление | Версия для печати
Copyright © Жаринов В.Н.
1Вводятся как расширение алфавита техноязыка, заданного в /2, Гл.6/.
2Вводятся как расширение словаря техноязыка, заданного в /2, Гл.6/.