Диссертация (1136162), страница 23
Текст из файла (страница 23)
При этом дляинтеграции и управления контентом КПК адекватна модель ИСУК в видеабстрактной машины управления контентом (АМУК) [292], оперирующей впространстве декартово замкнутых категорий (д.з.к.). Последнее обстоятельствообнаруживает сходство АМУК и так называемой категориальной абстрактноймашины (КАМ) [168], которая получила свое название в силу того, чтофункционирует в пространстве д.з.к.Основополагающим понятием для АМУК является понятие состояния[267-269], [289], которое характеризует АМУК в произвольный момент времени.Процесс (или, точнее, цикл) работы АМУК формализуется явным перечислениемвсевозможных смен состояний с получением динамики.АМУКмоделируетфункциюотображенияобъектовшаблоновинформационных страниц портала КПК в значения элементов информационных133страниц портала.
С точки зрения модели, при таком отображении производитсясвязывание переменных, характеризующих элементы шаблона, со значениями(элементами портальных страниц), т.е. происходит означивание.Посколькувсепеременные(элементышаблона)являютсятипизированными, для корректного выполнения означивания необходимоосуществлять контроль корректности типизации (т.е.
соответствия типовэлементов шаблонов элементам страниц портального программного комплекса).В простейшем случае процедура контроля типизации сводится кнепосредственнойпроверкетиповпосредствомлегкоформализуемыхпредикатов для различных типов выражений (IsNum – для числовых, IsBool – длялогических и т.д.). Для элементарных (атомарных) типов такая проверкапроизводится непосредственно. При необходимости контроля типизациисоставных (сложных) типов гетерогенных ОД конструируются агрегированныефункции (высших порядков) путем аппликации атомарных функций.Формализация семантики АМУК производится на основе теориисемантических доменов Д. Скотта.
При этом типы объектов атомарных шаблонов(для последующего означивания контента) получаются из стандартных доменов,а типы объектов более сложных шаблонов строятся посредством конструкторовдоменов.Построение формальной семантики АМУК производится по следующейсхеме [44], [292]:1) перечисление стандартных (наиболее часто используемых в рамкахмодели) доменов;2) определение конечных (содержащих явно перечислимых элементы)доменов;3) определение конструкторов (операций построения новых доменов наоснове имеющихся), т.е. способов комбинирования доменов;4) формализация агрегированных доменов на основе атомарных доменови конструкторов.Конструкторы доменов определяются следующим образом.134Под функциональным пространством из домена D1 в домен D2 будемпонимать домен [D1→D2], содержащий всевозможные функции с областьюопределения из домена D1 и областью значений из домена D2:[D1→ D2] = {f | f: D1→ D2}.Под декартовым (или, иначе, прямым) произведением доменов D1, D2, …,Dn будем понимать домен всевозможных n-ок вида[D1×D2×…×Dn] = { (d1×d2×…×dn) | d1∈D1, d2∈D2, …, dn∈Dn, … }.Под последовательностью D* будем понимать домен всевозможныхконечных последовательностей вида d=(d1,d2,…,dn) из элементов d1,d2,…,dn,…домена D, где n>0.Наконец, под дизъюнктной суммой будем понимать домен сопределением[D1+ D2+…+Dn] = { (di, i) | di∈Di, 0<i<n+1 }, где принадлежность элементовdi компонентам Di однозначно устанавливается специальными функциямипринадлежности.Пусть формальный язык АМУК содержит множество выражений E,включающее логические и текстовые константы, идентификаторы I, а такжеоперацию присваивания («записи» контента в «слот» шаблона).
Приведемсоответствующую запись «синтаксиса языка» АМУК в форме БНФ:E ::= true | false | 0 | 1 | I.Заметим, что в целях улучшения иллюстративности без нарушенияобщности рассуждений рассматриваемые выражения включают логические (trueи false) и целочисленные (в ограниченном объеме: 0 и 1) константы, а такжемножество идентификаторов (I).Кроме того, формальный язык АМУК содержит множество команд С,которые формализуются посредством БНФ в следующем виде:С ::= I=E | if (E) C1 else C2 | C1;C2Заметим, что команды АМУК включают операции присваивания I=E,ветвления if (E) C1 else C2, а также построения последовательности инструкций135C1;C2.
Деление синтаксиса конструкций АМУК на выражения и команды вданном упрощенном примере является в значительной мере условным и служитиллюстративным целям.На основе представленного формального синтаксиса строится формальнаямодель семантики «языка программирования» АМУК.Вычислительная модель строится по следующей схеме:определение1)синтаксических доменов(т.е. доменов,характеризующих основные синтаксические категории) дляидентификаторов (домен Id), выражений (домен Exp) и команд(домен Cmd);определение семантических функций (I для домена Id, C для2)домена Cmd и т.д.), отображающих синтаксические конструкции«языкапрограммирования»АМУКвсоответствующиесемантические представления;определение семантических предложений в терминах смены3)состояний АМУК.В процессе выполнения «программы», заданной АМУК, происходитизменение состояния (s, state), состоящего из памяти (m, memory), которая впростейшем случае характеризует соответствие идентификаторов и значений (v,value) – то есть, по сути, связывание переменной со значением – либо имеетзначение unbound, характеризующее отсутствие связи идентификатора созначением, т.е.
соответствует свободной переменной.Всоответствииснамеченнойсхемойрассуждений,описаниесинтаксических доменов, в полной мере определяющих синтаксис языка АМУК,имеет вид:Id = { I | I – идентификатор};Cmd = { C | C – команда};Exp = { E | E – выражение}.Совокупность всевозможных идентификаторов языка АМУК объединяетсяв домен Id, команд – в домен Cmd, и, наконец, выражений – в домен Exp.136Модель состояний программы на языке АМУК имеет вид:State = Mem × In × Out;Memory = Id → [Val + {unbound}];In = Val*;Out = Val*;Val = Int + Bool.Заметим, что состояние АМУК в произвольный момент времениопределяется состоянием «памяти» абстрактной машины в той или иной форме.При этом под управлением «памятью» имеется в виду отображение из доменаидентификаторов в домен значений (т.е.
аналог связывания переменной созначением в λ-исчислении). Для корректной обработки исключительныхситуаций,возникающихвслучаесвободныхпеременных,вводитсядополнительный элемент unbound. Домен значений представляет собойдизъюнктную сумму доменов, содержащих существующие в языке определенияОД АМУК типы Int и Bool.Согласно предложенной схеме рассуждений, сформулируем описаниесемантических предложений, определяющих значения денотатов (т.е. правильнопостроенных конструкций) языка манипулирования ОД АМУК.Приведемсемантическиепредложениядлявыраженийязыкаманипулирования ОД АМУК:E : Exp → [St → [[Val × St] + {error}]];E [E] s = (v, s’), еслиv – значение E в s,s’– состояние после означивания;E [E]s = error, есливозникает ошибка несоответствия типов.Из приведенных соотношений следует, что вычисление значениявыражения языка манипулирования ОД АМУК приводит к такому изменениюсостояния, что происходит связывание переменной со значением, либо (в случае137невозможности связывания по причине несоответствия типов переменной изначения) вырабатывается ошибка.
При этом состояние программы изменяется сs на s’.Семантическое предложение для команд языка манипулирования ОДАМУК имеет вид:С: Cmd → [St → [St + {error}]].Из приведенного соотношения следует, что вычисление значения командыязыка манипулирования ОД приводит к изменению состояния АМУК, причемвозможно возникновение ситуации (например, несоответствия типов в ходеприсваивания), при которой вырабатывается ошибка.В соответствии с намеченной схемой рассуждений перейдем крассмотрению семантических предложений, которые описывают значениеденотатов языка манипулирования ОД АМУК. Рассмотрим семантическиепредложениядляденотатовконстантцелочисленноготипавязыкеманипулирования ОД АМУК:E [0] s=(0, s);E [1] s=(1, s);Каквидноизприведенныхсоотношений,денотатамиконстантцелочисленного типа являются значения этих констант (в форме упорядоченныхпар вида «значение»-«состояние»), причем смены состояния программы непроисходит.
Аналогично, денотатами констант логического типа являютсязначения этих констант (в форме упорядоченных пар вида «значение»«состояние»), причем смены состояния ОД АМУК не происходит:E [true] s = (true, s);E [false] s = (false, s);Рассмотрим семантическое предложение для денотатов идентификаторовязыка манипулирования ОД АМУК:E [I] s = (m, I = unbound) error, → (m, I, s).138Как видно из приведенного соотношения, в случае, когда связываниевозможно, денотатами идентификаторов являются идентификаторы, связанныесо значениями (в форме упорядоченных троек вида «значение в памяти»«идентификатор»-«состояние»), причем смены состояния ОД АМУК непроисходит, а при невозможности – выдается сообщение об ошибке.Семантическаяфункциядля«команды»присваиванияязыкаманипулирования ОД АМУК имеет типC: Cmd → St → [St + {error}].Таким образом, заполнение шаблона ИСУК контентом может приводить кизменению состояния АМУК, а в отдельных, заранее оговоренных случаях (вчастности, при несоответствии типов элементов шаблона и контента) – кгенерации сообщения об ошибке.Семантическое предложение для команды языка манипулирования ОДАМУК, выполняющей присваивание контента элементу шаблона, имеетследующий вид:C [I=E] = E [E] * λv (m , i, o) .
(m [v/I], i, o).Как видно из приведенного соотношения, «новое» состояние ОД АМУКотличается от «старого» тем, что в памяти АМ происходит подстановка значенияконтента v информационной страницы портала вместо идентификатора объекташаблона I информационной страницы ИСУК.ВыводыИтак, в данной главе по результатам анализа специфики интеграиуции иуправления объектами данных в КПК создан комплекс моделей, синтезирующихметоды конечных последовательностей [4], [149], [165], [265], [267], теориикатегорий [137], [170], [175], [194], [214], [217], [240], [283], семантических сетей[153], [186], [236], [246], [259], [260], [290] и абстрактных машин [137], [139],[168], [200], [201], [214], [235], [240], [283] и обеспечивающих интеграцию исобытийно-ориентированноеуправлениегетерогенных глобально распределенных КПК.объектами(мета)данныхв1391. Развита общая схема «класс – объект – значение» для построениясхемы интеграции классов гетерогенных ОД как устойчивых совокупностейобъектов данных КПК, основанная на типизированной вычислительной моделипеременных объектов (мета)данных и принципе свертывания [209], [210], [240],[281], [283], [290].2.