low - нижняя границ индекса массива
high - верхняя граница индекса массива (если знак ‘ ? ’ то может быть любое число элементов
base_type - тип элементов массива
Примеры:
a : SET [0:?] OF REAL;
b : SET [0:2] OF LIST [1:?] OF INTEGER
Определяемый (Defined) тип данных
Описывает новый тип данных как конструкцию из стандартных и ранее определенных типов данных.
Формат:
TYPE name_of_type = define_of_type;
END_TYPE;
где
name_of_entity - имя описываемого типа данных
define_of_type - описание структуры типа данных
Пример:
TYPE new_type = ARRAY [ 2:8 ] OF REAL;
Тип данных - Перечисление (ENUMERATION)
Переменная этого типа может принимать одно из значений заданных в списке. Фактически, в этой переменной содержится номер элемента в списке.
Формат:
enumeration_type = ENUMERATION OF ( val_1, val_2,...)
где
val_1, val_2, ... - перечисленные через запятую возможные значения переменной.
Пример:
TYPE цвета = ENUMERATION OF
( красный, синий, зеленый);
END_TYPE;
Тип данных - Выбор (SELECT)
Тип данных “SELECT” представляет собой именованную коллекцию других типов. Это означает, что переменна типа “SELECT” может принимать значения всех типов входящих в SELECT.
Формат:
select_type = SELECT ‘(‘ name_1 [ , name_2...] ‘)’
где
name_1, name_2, ... - имена типов данных составляющих SELECT
Пример:
TYPE univers_type = SELECT
( INTEGER, LOGICAL, STRING(10) );
END_TYPE;
Связи
Отношения
В общем случае связи являются отношениями типа “многие ко многим”. Это можно отобразить следующим образом:
E.A {k:l}-{p:q} Base T
где:
E - объект
A - атрибут
T - тип атрибута
k - нижняя граница массива ссылок в прямом направлении
l - верхняя граница массива ссылок в прямом направлении
p - нижняя граница массива ссылок в обратном направлении
s - верхняя граница массива ссылок в обратном направлении
Base - тип отношения
T - тип включаемых объектов
Это выражение можно прочитать так: “ атрибутом A объекта E является множество типа Base ссылок на объекты типа T. В данном множестве может содержаться от k до l элементов. При этом все экземпляры объектов типа E могут ссылаться на каждый экземпляр объекта T от p до q раз.”
Если в качестве верхней границы массива указать знак “?”, то максимальное число ссылок не ограничено.
Если в качестве нижней границы указать ноль, то атрибут является необязательным, т.е. множество ссылок может быть пустым.
Если в качестве Base выступает не один из Aggregation типов, то l <= 1. Т.е. атрибут может содержать не более чем одной ссылки.
Пример:
ENTITY сборка;
состав : LIST [1,?] OF деталь;
цвет : STRING(10);
масса : REAL;
END_ENTITY
Наследование
Все объекты являются генетическими (generic) типами. Это означает, что для определения объектов может быть применено наследование. Каждый объект потомок наследует все атрибуты и методы своего родителя.
Спецификация EXPRESS определяет как простое так и множественное наследование.
Выделяется 3 опции наследования : AND, ANDOR, ONEOF
AND: Объект, являющийся потомком нескольких объектов по опции AND, наследует всё содержимое всех объектов родителей.
ANDOR: Объект, являющийся потомком нескольких объектов по опции ANDOR, наследует содержимое только нескольких объектов- родителей из всего их списка. При этом содержимое каждого объекта либо наследуется полностью, либо не наследуется вообще. Различные экземпляры объекта потомка могут наследовать содержимое различных комбинаций из объектов- родителей.
ONEOF: Объект, являющийся потомком нескольких объектов по опции ONEOF, наследует содержимое только одного объекта из списка. Различные экземпляры наследуют содержимое различных объектов, имеющихся в списке.
Пример:
Атрибут объекта определяется именем и типом. В Express возможны следующие базовые типы:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.