Google Группы больше не поддерживают новые публикации и подписки в сети Usenet. Опубликованный ранее контент останется доступен.

ELIT6.Контекст

1 просмотр
Перейти к первому непрочитанному сообщению

Vladimir Pavlikov

не прочитано,
17 июл. 1999 г., 03:00:0017.07.1999
Контекст - это "зона действия" - неких набор ограничений и правил
другого назначения, влияющих на действующие в его пределах
понятия и объекты.
Выступает в трех "ролях" - понятийно-смысловом, объектном и
"размерно-модульном".

Первая роль касается зон и специфики действия самих понятий.
При этом понятия в разных контекстах могут как оставаться одно-
именными, так и _менять_ названия - синонимичность. Пример уже
приводился (не мною) - глобальное (для материальных объектов)
свойство "высота" для более узкого контекста "человек" естественно
именовать уже, как "рост" - for homo height is stature (пример неудачен -
рост тоже может писаться, как height :) Здесь приведен пример правила,
указывающего на синонимичность понятий. Если в пределах одного
контекста действуют объекты с ролями, содержащими свойства, про-
декларированные в _разных_ смысловых контекстах, приводимых
друг к другу - ко всем применимы общие запросы (суперкласса).
При этом к конкретному объекту можно обращаться по полному
списку _его_ интерфейсов. Возможно существование контекстно-
неприводимых одноименных понятий. Например, "стек" в контексте
"компьютер" и "стек" в контексте "английский денди в колониальной
Индии" :) - явно понятия разные. Если соотношение контекстов никак
не определено, при вводе обоих понятий в некий составной объект
система либо должна сообщать о неоднозначности, либо проглатывать
молча, _различая_ эти понятия, но при этом отвергать общий запрос
типа "кто имеет стек", без контекстной детализации "компьютер.стек",
к примеру. Собственно, под понятийными контекстами имеются ввиду
именно профессиональные и предметные специфики одних и тех же
понятий _или_ _разные_ значения одних и тех же (по написанию) слов:
квартал в градостроительстве и в бухгалтерском учете - вещи разные,
в то время как "объем" (легких) в медицине является лишь специфи-
ческим подмножеством "объема" вообще.

Объектный контекст - это просто некий "непростой" тип объекта,
состоящий из других объектов и _задающий_ для них те или иные
ограничения, [возможно] некие _изменения_ (непринципиальные) в
свойствах и устанавливающий правила их возможных взаимодейст-
вий. В частности, "температура" вообще имеет диапазон от 0К до ~
миллионов градусов, но в контексте "поликлиники" вряд-ли имеют
смысл температуры больше 42С и меньше 32С, разве что на градус-
нике (комнатном или уличном), но это уже другие контексты :)
Точно также "Вася" и "Маша" являясь просто "человеками", на
работе уже именуются "менеджером" и "бухгалтером", а дома -
"мужем" и "женой", "папой" и "мамой". Разумеется, это лишь пере-
числения их ролей в разных контекстах, но они могут накладывать
различия во взаимодействиях, например "именовании" - на работе
"Василий Петрович", дома - смотря с кем! - "ты, придурок", или
"папахен" :) Объектный контекст описывается перечнем общих для
всех правил, правил взаимодействия конкретных объектов (прежде
всего - в их _ролях_), правил применения (и, возможно, даже реали-
заций) тех или иных свойств и интерфейсов.

Модульный контекст. Здесь речь идет уже о составляющих частях
программ, "библиотек" (компонент), сервисов, сред и т.д. Служит для
изоляции ("инкапсуляции") отдельных [независимых] частей разра-
батываемого проекта друг от друга, "разводка" понятий с одноимен-
ными (синонимичными) уже имеющимся в системе и т.д. Упрощает
совместную разработку группой исполнителей, последующую моди-
фикацию/расширение и т.д. Короче - это уже в сущности реализаци-
онная часть, дойдем и до нее...

Хочу лишь отметить, что все три понятия контекста "работают" сов-
местно, целый ряд целей достижим _разными_ способами, в том
числе и "контекстированием" в разном смысле.
Если попытаться проиллюстрировать указанные типы контекстности
средствами языка С++, к примеру :
1.Модульная контекстность достигается делением на файлы, декла-
рацией static для переменных и функций, использованием разных
библиотек и т.д.
2.Объектная - описанием внутри классов, прямым _кодом_ внутри
функций и методов.
3.Понятийная - namespaces, наследованием классов и виртуализа-
цией методов и т.д.
Часть "приемов" действует в нескольких контекстных смыслах - тот
же static, к примеру.
Разница прежде всего в том, что зоны действия и применимость
данных "контекстных" механизмов ограниченны, жестко заданы
изначально и (имно, естественно) _резко_ недостаточны. При этом
для любых изменений/добавлений/расширений приходился ждать
изменений _стандарта_ и последующих изменений реализаций :(
С учетом времени ожидания и тем, что результаты его не оправды-
вают... :)))


Осталось попытаться, с учетом уже изложенного, привести опреде-
ления, диаграммы и т.д. - и можно "отдаться на растерзание" :)
Но оставшееся потребует времени :(

Владимир Павликов.

0 новых сообщений