Инфологическое обеспечение | Когнитивное | Графит-букварь
Стр. 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 © Жаринов В.Н.