Г Р А Ф И Т — б а з и с

Инфологическое обеспечение | Когнитивное | Графит-букварь

Стр. 1 2 3 4 5 6 7 8 9 10 11 12


Содержание

Подстановка и понятие о дракон-модели. Вставка и процедура

Для чего это нужно?

Что это значит?

Как это пишется?

Пассивная подстановка и гибкое поле

Подстановка и понятие о дракон-модели. Вставка и процедура

Для чего это нужно?

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

Здравый смысл подсказывает, что дракон-схема упростится, если оформить инвариант как «типовой блок», указывая на схеме лишь вхождения этого блока; но как это сделать?

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

Декомпозиция последовательности путём подстановки

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

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

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

Подстановка м.б. и пассивной — не подлежащей исполнению. Тогда её результат трактуется как текст (документ), образуемый с участием текстов-вставок.

В начало страницы

Что это значит?

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

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

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

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

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

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

Как установить состояния алгоритмов? Для вставки м.б. задан перечень величин – формальные параметры – в одноимённой вершине Д11. С их участием формулируется текст тела вставки (виопов, вынесенных при подстановке). В вызове такой вставки можно указать некоторые величины из головного визуала – фактические параметры. Их значения на момент вызова передаются во вставку, т.е. в к.-л. порядке помещаются исполнителем в память формальных параметров. Иначе можно задать значения формальных параметров прямо в тексте Д11 (путём присваивания). Также некоторые переменные, т.н. глобальные, и в головном алгоритме, и во вставке могут существовать под одним именем и быть доступны для изменения (см. п. 2.1.1).

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

Реально и параметры, и все остальные величины входят в состояние алгоритма. Кроме того, туда входит по крайней мере одна служебная величина – положение рабочей точки.

Принцип исполнения визуала с параметрами иллюстрирует следующая схема.

Обычно состояние одного выполняемого алгоритма хранится в основной памяти исполнителя компактно – в одной области. Области ОП на схеме показаны как объекты визуального деклар-языка из числа описанных в Приложении 2.

Вызов и возврат для визуала с параметрами

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

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

На очередном шаге головного визуала мы достигаем виопа Вставка и должны вызвать одноимённый визуал-вставку (он становится текущим). Как это делается? Рабочая точка перемещается на заголовок вставки и сменяется текущее состояние в ОП.

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

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

Далее по той же схеме выполняется тело вставки, пока рабочая точка не достигает её виопа Конец. Теперь возвращаемся в головной визуал, сменяя состояния обратно.

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

Здесь содержание вставки дано в общем виде. Что мы хотели этим сказать? Во-первых, вставка не обязательно результат выноса шампур-блоков из головного визуала; логически возможно обратное, когда как вставка используется алгоритм, сочинённый независимо от головного, в т.ч. не для данной задачи и не как вставка. Такой алгоритм м.б. визуализирован и как силуэт (незацикленный). Во-вторых, шампур-блок, выносимый из головного визуала, также м.б. использован для построения вставки-силуэта (для чего это нужно и как делается, см. технологию визуализации в Разд.4).

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

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

В сложном головном визуале подстановки проводят в любые вертикали; также и объектами подстановки могут являться сложные шампур-блоки, описываемые с применением конструкций ветвлений (см. п. 2.2.2) и циклов (см. п. 2.2.3).

В начало страницы

Как это пишется?

Графика виопа Вставка соответствует символу Предопределённый процесс по ГОСТ 19.701-90.

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

В начало страницы

Пассивная подстановка и гибкое поле

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

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

Вершина Гибкое поле определена в языке синтдиаграмм (определение языка см. в п/р 5.2 Приложения 2.).

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

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

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

Hosted by uCoz