ГОСТ Р ИСО 10303-14—2015
ПриложениеС
(обязательное)
Алгоритм преобразования текста с языка EXPRESS-X
на язык EXPRESS
В настоящем приложении представлено преобразование совокупности объявлений образов в совокупность
объявлений объектов на языке EXPRESS, обеспечивающую представление результатов выполнения операторов
языка EXPRESS-X. Данное преобразование представлено в форме алгоритма, принимающего текст объявления
образа в качестве входного параметра и производящего в результате своей работы текст объявления объекта. Дан
ный алгоритм представлен здесь только с целью спецификации языка EXPRESS-X и не предусматривает какой-
либо конкретной реализации.
Предполагается, что преобразованные объекты существуют в схеме с уникальными именами, с которой все
необходимые внешние объявления связаны с помощью интерфейсов.
Описаниеалгоритма
a) Если объявление образа представляет зависимый образ (то есть не определяет никаких атрибутов обра
за). то пропустить данное объявление.
b
) Заменить ключевое слово
VIEW
на
ENTITY.
c) Удалить элементы языка
FROM,WHERE,1DENTIFIED_BY
и
ORDEREOBY.
Элементы
WHERE
удалить
только в заголовке, но не удалять в ограничениях.
d) Удалить ключевое слово
SELECT.
e) Если объявление образа содержит разделы, то полностью удалить все разделы, кроме объявления перво
го раздела; удалить ключевое слово
PARTITION
и идентификатор раздела (если он имеется) из объявления
первого раздела.
f) Удалить оператор присваивания и следующее за ним выражение у каждого атрибута образа,
д) Заменить ключевое слово
END_VIEiJ
на
END_EKTJTY.
Примеры
1 Следующее объявление образа:
VIEW aABSTRACTSUPERTYPE;
PARTITIONone;
FROMb:one;c:two;
WHERE condl;
cond2;
SELECT
x :attrl :=expression].;
у :attr2 :=expression2;
PARTITION two;
FROMd:two;e:three;
WHERE cond3;
cond4;
SELECT
x :attrl :=expression3;
у :attr2 :=expression^
END_VIEW;
преобразуется в следующее объявление объекта на языке EXPRESS:
ENTITY aABSTRACT SUPERTYPE;
х :attrl;
у :attr2;
END_ENTITY;
2
Следующее объявление образа:
VIEWb SUBTYPEOF (a);
PARTITIONone;
WHERE cond5;
SELECT
z :attr3 :=expressions;
PARTITION two;
WHERE cond6;
SELECT
59