В данном разделе описаны основные элементы языка EXPRESS-I, относящиеся к определению абстрактных контрольных примеров.
9.1 Контекст
Контекст (CONTEXT) определяет экземпляры данных и алгоритмы, относящиеся к представлению рассматриваемой предметной области, в котором элементы имеют определенные смысл и назначение. Экземпляры данных могут быть параметризованы.
Синтаксис: |
56i ContextBlock = CONTEXT Contextld `;` ContextBody END_CONTEXT `;` . |
58i Contextld = simple_id . |
57i ContextBody = { SchemaReferenceSpec } [ FormalParameterBlock ] { SchemaInstanceBlock | SupportAlgorithm } . |
36i ContextRef = Contextld . |
EXPRESS-I-объявление CONTEXT создает новую область действия, в которой могут быть объявлены следующие элементы:
- ссылки на EXPRESS-схемы (см. 10.2);
- формальные параметры;
- экземпляры данных схемы;
- EXPRESS-функции;
- EXPRESS-процедуры.
Пример 35 - Например bugatti может быть именем CONTEXT, который содержит параметризованные (то есть обобщенные) данные, представляющие автомобиль типа Bugatti. Внутри этого CONTEXT может быть несколько экземпляров данных схемы: один, например, для чертежей автомобиля, и другой, содержащий данные по обслуживанию автомобиля этого типа.
Правила и ограничения
a) Каждый экземпляр данных схемы внутри CONTEXT должен быть экземпляром из разных схем.
b) Каждый идентификатор внутри CONTEXT должен быть уникальным.
Пример 36 - Набросок CONTEXT
CONTEXT parametrized_model;
PARAMETER
…
END_PARAMETER;
SCHEMA_DATA a_schema;
…
END_SCHEMA_DATA;
SCHEMA_DATA another_schema;
…
END_SCHEMA_DATA;
END_CONTEXT;