Построение стандарта STEP. Идеология EXPRESS. Функции (Function) и процедуры (Procedure). Элементы языка EXPRESS, страница 2

Имена объектов, констант, функций, процедур, правил и типов уникальны в пределах данной схемы.

Теперь дадим пример схемы (конечно же, сильно упрощенный). Реальные схемы, составляющие прикладные протоколы, могут занимать десятки и сотни страниц исходного текста.

Разумеется, приведенная схема написана на языке EXPRESS. Формат исходного текста на языке EXPRESS свободный, предложения исходного текста заканчиваются символом “;” и могут произвольным образом разбиваться на физические строки.

Допускается вставлять любое количество пустых строк. Между лексемами языка допускается вставлять любое количество пробелов.

Предусмотрено два типа комментариев:

встроенные (embedded) (между парами символов “(*” и “*)” );

хвостовой (tail) (от пары символов “—“ до конца физической строки.

Примеры обоих типов комментариев имеются в нижеприведенном исходном тексте.

SCHEMA sample_geometry;

TYPE point_colour = ENUMERATION OF (red,yellow,green);

END_TYPE;

ENTITY (* example of embedded comment *) point;

coords : ARRAY [1:3] OF REAL; -- example of tail comment

END_ENTITY;

ENTITY colour_point SUBTYPE OF (point);

colour : point_colour;

END_ENTITY;

ENTITY contour;

points : LIST [2:?] OF point;

END_ENTITY;

ENTITY colour_contour;

points : LIST [2:?] OF colour_point;

END_ENTITY;

END_SCHEMA;

Поясним этот пример. Приведенный текст на языке Express показывает в упрощенном виде принципы описания предметных областей.

Элементы языка EXPRESS

Основными элементами языка EXPRESS являются: Attribute, Constant, Elements of a enumeration type, Entity, Function, Parameter,

Procedure, Rule, Schema, Type и Variable. Архитектура информационной схемы такова, что одни элементы состоят из множества других.

Возможное содержание одних типов элементов в других типах отображено в таблице:

Schema

Entity

Function /

Procedure

Enumeration

Attribute

X

X

Constant

X

X

X

Elements of a Enumeration type

X

Entity

X

Function

X

Parameter

X

Procedure

X

Rule

X

X

Schema

Type

X

X

Variable

X

X

Объект (ENTITY)

Объект “ENTITY” представляет из себя информационный объект - совокупность атрибутов и методов. Такие переменные могут использоваться в качестве атрибутов других объектов, локальных переменных и формальных параметров.

Формат:

ENTITY name_of_entity;

<текст определения объекта>

END_ENTITY;

где

name_of_entity - имя объекта

Пример:

ENTITY point;

x, y, z : REAL;

END_ENTITY;

Схема определяется набором связанных между собой объектов ENTITY (сущностей), с помощью которых можно описать данную предметную область. Каждый объект определяется набором его атрибутов.

Атрибут (Attribute) - это свойство объекта, присущее объектам данного типа. Набор атрибутов для объектов каждого типа фиксирован и задается при определении объекта. В вышеприведенном примере атрибутами являются:

coords,

colour,

points (атрибут объекта типа contour),

points(атрибут объекта типа colour_contour).

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

Объект может быть подтипом другого объекта, при этом он наследует атрибуты родительского объекта (т.е. того объекта, подтипом которого является). Помимо унаследованных этот объект может иметь и свои собственные атрибуты. В определении объекта на языке Express приводятся только собственные атрибуты объекта. Наследуемые атрибуты в определении самого объекта не приводятся.

Объект может быть подтипом другого объекта, а тот, в свою очередь, подтипом третьего. Вложенность подтипов не ограничена.

Существует и более сложный вид наследования (так называемые составные объекты), описанный в томе 11 ISO 10303.

Атрибуты объектов разделяются на: