Товары в корзине: 0 шт Оформить заказ
Стр. 1 

151 страница

В стандарте определен язык, с помощью которого могут быть описаны аспекты данных об изделии. Данный язык называется EXPRESS.

В стандарте также опредедено графическое представление для подмножества конструкций в языке EXPRESS. Это графическое представление называется EXPRESS-G.

 Скачать PDF

Оглавление

1 Область применения

2 Нормативные ссылки

3 Определения

     3.1 Термины, определенные в ГОСТ Р ИСО 10303-1

     3.2 Термины, определенные в ИСО/МЭК 10646-1

     3.3 Другие определения

4 Требования соответствия

     4.1 Формальные спецификации, написанные на EXPRESS

     4.2 Реализации EXPRESS

5 Фундаментальные принципы

6 Синтаксис определения языка

     6.1 Синтаксис спецификации

     6.2 Специальная символьная нотация

7 Основные элементы языка

     7.1 Набор символа

     7.2 Зарезервированные слова

     7.3 Знаки (symbols)

     7.4 Идентификаторы

     7.5 Литералы

8 Типы данных

     8.1 Простые типы данных

     8.2 Агрегатные (сборные)типы данных

     8.3 Поименованные типы данных

     8.4 Созданные типы данных

     8.5 Обобщенные типы данных

     8.6 Классификация использования типов данных

9 Объявления

     9.1 Объявление типа

     9.2 Объявление объекта

     9.3 Схема

     9.4 Константа

     9.5 Алгоритмы

     9.6 Правило

10 Область действия и видимость

     10.1 Правила областей действия

     10.2 Правила видимости

     10.3 Явные правила для элементов

11 Спецификация интерфейса

     11.1 Спецификация интерфейса USE

     11.2 Спецификация интерфейса REFERENCE

     11.3 Взаимодействие USE и REFERENCE

     11.4 Неявные интерфейсы

12 Выражение

     12.1 Арифметические операторы

     12.2 Операторы отношений

     12.3 Двоичные операторы

     12.4 Логические операторы

     12.5 Строковые операторы

     12.6 Агрегатные операторы

     12.7 Ссылки

     12.8 Обращение к функции

     12.9 Инициализатор агрегатов

     12.10 Оператор конструирования экземпляра сложного объекта

     12.11 Совместимость типов

13 Исполняемые операторы

     13.1 Пустой оператор

     13.2 Оператор псевдоимени

     13.3 Оператор присваивания

     13.4 Оператор CASE

     13.5 Составной оператор

     13.6 Оператор выхода

     13.7 Оператор If…Tneh…Else

     13.8 Оператор вызова процедуры

     13.9 Оператор цикла

     13.10 Оператор возврата

     13.11 Оператор пропуска

14 Встроенные константы

     14.1 Константа e

     14.2 Неопределенная

     14.3 Ложь

     14.4 Пи

     14.5 Self

     14.6 Истина

     14.7 Неизвестная

15 Встроенные функции

     15.1 Abs - арифметическая функция

     15.2 AСos - арифметическая функция

     15.3 ASin - арифметическая функция

     15.4 ATan - арифметическая функция

     15.5 Blength - двоичная функция

     15.6 Cos - арифметическая функция

     15.7 Exists - общая функция

     15.8 Exp - арифметическая функция

     15.9 Format - общая функция

     15.10 HiBound - арифметическая функция

     15.11 HiIndex - арифметическая функция

     15.12 Length - строковая функция

     15.13 LoBound - арифметическая функция

     15.14 Log - арифметическая функция

     15.15 Log2 - арифметическая функция

     15.16 Log10 - арифметическая функция

     15.17 LoIndex - арифметическая функция

     15.18 NVL - функция нулевого значения

     15.19 Odd - арифметическая функция

     15.20 RolesOf - общая функция

     15.21 Sin - арифметическая функция

     15.22 SizeOf - агрегатная функция

     15.23 Sqrt - арифметическая функция

     15.24 Tan - арифметическая функция

     15.25 TypeOf - общая функция

     15.26 UsedIn - общая функция

     15.27 Value - арифметическая функция

     15.28 Value_in - функция принадлежности

     15.29 Value_unique - функция уникальности

16 Встроенные процедуры

     16.1 Insert

     16.2 Remove

Приложение А Синтаксис языка EXPRESS

     А.1 Лексемы

     А.2 Грамматические правила

     А.3 Список перекрестных ссылок

Приложение В Определение разрешенных экземпляров объектов

     В.1 Определение разрешенных экземпляров объектов

     В.2 Операторы супертипов

     В.3 Интерпретация возможных типов данных сложных объектов

Приложение С Ограничения на экземпляры, налагаемые спецификацией интерфейса

Приложение D EXPRESS-G. Графическое подмножество EXPRESS

     D.1 Введение и обзор

     D.2 Символы определения

     D.3 Символы отношений

     D.4 Символы компоновки

     D.5 Диаграммы уровня объекта

     D.6 Диаграммы уровня схемы

     D.7 Полные диаграммы EXPRESS-G

Приложение Е Заявка о соответствии реализации протоколу

     Е.1 Синтаксический анализатор языка EXPRESS

     Е.2 Инструментальное средство редактирования EXPRESS-G

Приложение F Регистрация информационного объекта

Приложение G Отношения

     G.1 Отношения через атрибуты

     G.2 Отношения подтип/супертип

Приложение Н Модели EXPRESS для иллюстрации примеров EXPRESS-G

     Н.1 пример модели единичной схемы

     Н.2 Шаблон отношения

     Н.3 Простое дерево подтип/супертип

     Н.4 Переобъявление атрибута

     Н.5 Многосхемные модели

Приложение J Библиография

Предметный указатель

 

151 страница

Дата введения01.07.2001
Добавлен в базу01.09.2013
Завершение срока действия01.07.2010
Актуализация01.01.2021

Этот ГОСТ находится в:

Организации:

14.11.2000УтвержденГосстандарт России293-ст
РазработанВНИИстандарт
РазработанТК 431 CALS-технологии
ИзданИздательство стандартов2001 г.

Industrial automation systems and integration. Product data representation and exchange. Part 11. Description methods. The EXPRESS language reference manual

Стр. 1
стр. 1
Стр. 2
стр. 2
Стр. 3
стр. 3
Стр. 4
стр. 4
Стр. 5
стр. 5
Стр. 6
стр. 6
Стр. 7
стр. 7
Стр. 8
стр. 8
Стр. 9
стр. 9
Стр. 10
стр. 10
Стр. 11
стр. 11
Стр. 12
стр. 12
Стр. 13
стр. 13
Стр. 14
стр. 14
Стр. 15
стр. 15
Стр. 16
стр. 16
Стр. 17
стр. 17
Стр. 18
стр. 18
Стр. 19
стр. 19
Стр. 20
стр. 20
Стр. 21
стр. 21
Стр. 22
стр. 22
Стр. 23
стр. 23
Стр. 24
стр. 24
Стр. 25
стр. 25
Стр. 26
стр. 26
Стр. 27
стр. 27
Стр. 28
стр. 28
Стр. 29
стр. 29
Стр. 30
стр. 30

ГОСТ Р ИСО 10303-11-2000

ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Системы автоматизации производства и их интеграция

ПРЕДСТАВЛЕНИЕ ДАННЫХ ОБ ИЗДЕЛИИ И ОБМЕН ЭТИМИ ДАННЫМИ

Часть 11

Методы описания Справочное руководство по языку EXPRESS

БЗ 7-2000/177


Издание официальное

ГОССТАНДАРТ РОССИИ Москва

ГОСТ Р ИСО 10303-11-2000

Предисловие

1    РАЗРАБОТАН Всероссийским научно-исследовательским институтом стандартизации (ВНИИстандарт) совместно с НИЦ CALS-технологий «Прикладная логистика»

ВНЕСЕН Техническим комитетом по стандартизации ТК 431 «CALS-технологии»

2    ПРИНЯТ И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 14 ноября 2000 г. № 293-ст

3    Настоящий стандарт представляет собой аутентичный текст международного стандарта ИСО 10303-11-94 «Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS» с учетом поправки 1—99

4    ВВЕДЕН ВПЕРВЫЕ

© ИПК Издательство стандартов, 2001

Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Госстандарта России

ГОСТ Р ИСО 10303-11-2000

6.1 Синтаксис спецификации

Синтаксис EXPRESS определен как производная от Синтаксической Нотации Вирта (СНВ). Примечание — См. ссылку в приложении J [3].

Соглашение по нотации и самоопределенная СНВ приведены ниже, syntax = { production } . production = identifier '=' expression . expression = term { '|' term } . term factor identifier literal group option repetition

= factor { factor } .

= identifier | literal | group | option | repetition .

= character { character } .

= character { character }    .

= '(' expression ')' .

= '[' expression ']' .

= '{' expression '}' .

Знак равенства '=' указывает логическое заключение. Элемент слева от знака определяется комбинацией элементов справа. Любые пробелы, появляющиеся между элементами логического заключения, не входящие в пределы литерала, не имеют значения. Логическое заключение завершается точкой '

-    Использование идентификатора внутри коэффициента означает нетерминальный символ, который появляется слева от другого логического заключения. Идентификатор состоит из букв, цифр и символа подчеркивания. Ключевые слова языка представляются логическими заключениями, идентификаторы которых состоят только из заглавных букв.

-Литерал используется для обозначения терминального символа, который не может быть расширен далее. Литерал является последовательностью любых символов, заключенной в апострофы. Символ, в данном случае, может быть любым символом, определенным по ИСО/МЭК 10646-1 в позициях 21-7Е группы 00, плоскости 00, строки 00. Чтобы апостроф был включен в литерал, он должен быть записан дважды.

Семантика скобок определена ниже:

-    фигурные скобки '{}' указывают нулевое или большее количество повторений;

-    квадратные скобки ' []' указывают необязательные параметры;

-    круглые скобки ' ()' указывают, что группа логических заключений, включенных в круглые скобки, должна быть использована как единое логическое заключение;

-вертикальная линия '|' указывает, что в выражении должен быть выбран только один элемент.

Синтаксис:

293 string type = STRING [ widthspec ] . 318 width spec = '(' width ')' [ FIXED ] . 317 width = numericexpression .


П р и м е р 2 — Синтаксис для строкового типа:

Полное определение синтаксиса (приложение А) содержит определения для STRING, numeric_expression и FIXED.

Пример 3 — Учитывая синтаксис, данный в примере 2, возможны следующие варианты:

a)    string

b)    string (22)

c)    string (19) fixed

Правило для numeric_expression является сложным и позволяет описать много других вариантов.

6.2 Специальная символьная нотация

Следующая нотация используется для представления целых символьных наборов и некоторых специальных символов, которые сложно отобразить:

-\а — представляет символы в позициях 21-7Е строки 00, плоскости 00, группы 00 ИСО/МЭК 10646-1;

-    \п — представляет символ «новая строка (newline)» (системно зависимый) (см. 7.1.5.2);

-    \q — символ кавычки (апострофа) (') и содержится внутри \а;

-    \s — символ пробела;

-    \х8, \х9, \хА, \хВ, \хС, \xD — представляет символы в позициях 8—13 строки 00, плоскости 00, группы 00 ИСО/МЭК 10646-1.

5

7 Основные элементы языка

В настоящем разделе определены основные элементы, из которых составляется EXPRESS -схема: набор символов, комментарии, знаки, зарезервированные слова, идентификаторы и литералы.

Основные элементы языка компонуются в текст, разделяемый обычно на физические строки. Физическая строка является любым числом (включая нулевое) символов, заканчивающимся символом «новая строка» (см. 7.1.5.2).

П римечание — Схема более удобна для чтения, когда операторы разделены на строки, а для компоновки различных конструкций используется пробел (whitespace).

П р и м е р 4 — Следующие записи эквивалентны: entity point; х, у, z:real; endentity;

ENTITY point;

x,

У,

z : REAL;

ENDENTITY;

7.1    Набор символов

В схемах, написанных на языке EXPRESS, должны использоваться только символы из следующего набора: символы, расположенные в 08—0D, графические символы, лежащие в диапазоне 20—7Е из ИСО/МЭК 10646-1, а также специальный символ \п, означающий новую строку. Данный набор называется набором символов EXPRESS. Элемент этого набора ссылается на позицию соответствующего стандарта, в которой расположен данный символ; номера этих позиций определены в шестнадцатеричной системе. Печатаемые символы данного набора (позиции 21—7Е из ИСО/МЭК 10646-1) объединяются для формирования лексем языка EXPRESS. Лексемами EXPRESS являются ключевые слова, идентификаторы, знаки или литералы. Дальнейшая классификация набора символов EXPRESS приведена ниже.

Данный набор символов определен как абстрактный набор символов; он не зависит от его представления в реализации.

Примечание — В ИСО/МЭК 6429 (см. [1] из приложения J) установлены семантики символов позиций 08—0D из ИСО/МЭК 10646-1. В настоящем стандарте не требуются семантики, установленные в ИСО/МЭК 6429.

7.1.1    Цифры

В EXPRESS используются арабские цифры 0—9 (позиции 30—39 из набора символов EXPRESS).

Синтаксис:

120 digit = '0' | 'Г | '2' | '3' | '4' \ '5' \ '6' \ '7' \ '8' \ '9' ._

7.1.2    Буквы

В EXPRESS используются строчные и прописные буквы английского алфавита (позиции 41—5А и 61—7А набора символов EXPRESS). Регистр букв имеет значение только в явных строковых литералах.

И римечание — Текст на языке EXPRESS может быть написан с использованием верхних, нижних или смешанных регистров (заглавных, строчных или и тех и других букв — см. пример 4).

Синтаксис:

124 letter = 'а' | 'b' | 'с' |'d' | 'е' | 'Г | 'g' | 'h' | Т | 'j' | 'к' | ' Г |'m' | 'n' | 'о' |

'р' | 'q' | 'г' | 's' |'t' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' .

7.1.3. Специальные символы

Специальные символы (выводимые на печать символы, которые не являются ни буквами, ни цифрами) используются главным образом для пунктуации и в качестве операторов. Специальные символы соответствуют позициям 21—2F, ЗА—3F, 40, 5В—5Е, 60 и 7В—7Е набора символов EXPRESS.

ГОСТ Р ИСО 10303-11-2000

Синтаксис:

134 special = not_paren_star_quote_special | '(' | ')' |    | "" .

128 not_paren_star_quote_special = '!' |    | '#' | '$' | '%' \ '&' \ ' + ' \ ',' \

'?' | '<§>' | '[' | 'y \ 'y |    |    |    |

7.1.4    Подчеркивание

Символ подчеркивания ('_' — ячейка 5F набора символов EXPRESS) может использоваться в идентификаторах и ключевых словах, за исключением использования его в качестве первого символа.

7.1.5    Пробел

Пробел (whitespace) определен 7.1.5.1—7.1.5.3 и 7.1.6. Пробел должен использоваться для разделения лексем в EXPRESS-схемах.

П римечание — Свободное и последовательное использование пробела может улучшить структуру и удобочитаемость схемы.

7.1.5.1    Символ пробела

Один или несколько пробелов (позиция 20 из набора символов EXPRESS) могут располагаться между двумя лексемами. Нотация '\s' может быть использована для представления символа пробела в синтаксисе языка.

7.1.5.2    Новая строка

Символ «новая строка (newline)» отмечает физическое окончание строки внутри формальной спецификации, записанной на языке EXPRESS. Обычно новая строка трактуется как пробел, но существует разница между завершением заключительного комментария и неправильным окончанием строкового литерала. В синтаксисе языка символ новой строки представляется нотацией \п.

Конкретное представление новой строки определяется спецификой реализации.

7.1.5.3    Другие символы

Символы из позиций 08—0D должны рассматриваться как пробел (whitespace), кроме случаев, когда они встречаются внутри строкового литерала. Для представления этих символов в синтаксисе языка должна быть использована нотация \хп, где п является одним из символов: 8, 9, А, В, С и D.

7.1.6. Комментарии

Комментарий используется при документировании описания и должен быть интерпретирован синтаксическим анализатором языка EXPRESS как пробел (whitespace). Существует два вида комментариев: вложенный и заключительный.

7.1.6.1 Вложенный комментарий

Пара символов '(*' обозначает начало вложенного комментария, а пара символов '*)' обозначает его окончание. Вложенный комментарий может располагаться между двумя любыми лексемами.

Синтаксис:

142 embeddedremark = '(*' { notlparenstar | lparennotstar | starnotrparen |

embeddedremark } '*)' .

126    not lparen star = not_paren_star | ')' .

124 letter = 'a'

| 'b' | 'c' | 'd'

1 'e'

| 'f

1 У

1 h'

1 i

1 T 1

'k' |'1'

' m'

| 'n' | 'o' | 'p'

1 'o'

1 r

1 's'

1 't'

1 u'

1 'v'

1 w' 1 'x'

У

120 digit = 'O' |

1 z .

'1' | '2' | '3' |

'4' |

'5' |

'6' |

'7' |

'8' |

'9' .

129 not_paren_star_special = not_paren_star_quote_special |    .

128 not_paren_star_quote_special = '!' |    |    '#'    |    '$'    |    '%'    \    '&'    \    '+'


127    not_paren_star = letter | digit | not_paren_star_special.

'?' I I T I 'V IT I I I

125 lparen not star = '(' notstar .

132 not star = not_paren_star | '(' | ')' .

135 star not rparen = notrparen .

131 not rparen = not_paren_star |    |    '('    .


7


Любой символ из набора символов EXPRESS может быть вставлен между началом и концом вложенного комментария, включая символ «новая строка (newline)», поэтому вложенные комментарии могут охватывать несколько физических строк.

Вложенные комментарии могут вкладываться друг в друга.

П римечание — При вложении комментариев необходимо обращать большое внимание на согласование пар символов.

П р и м е р 5 — Пример вложенных комментариев.

(* Символ '(*' начинает комментарий, а символ '*)' его заканчивает *).

7.1.6.2    Заключительный комментарий

Заключительный комментарий записывается в конце физической строки. Два последовательных дефиса начинают заключительный комментарий, а первый встреченный символ «новая строка» заканчивает его.

Синтаксис:

144 tail_remark = ' -    { \а | \s | \х8 | \х9 | \хА | \хВ | \хС | \xD } \п .

Пример 6---Этот текст является комментарием, который заканчивается символом «но

вая строка (newline)».

7.2    Зарезервированные слова

Зарезервированными словами языка EXPRESS являются ключевые слова, а также имена встроенных констант, функций и процедур. Зарезервированные слова не должны использоваться в качестве идентификаторов. Зарезервированные слова языка EXPRESS описаны ниже.

7.2.1 Ключевые слова

Ключевые слова языка EXPRESS показаны в таблице 1.

Примечания

1    Ключевые слова представляются литералом, состоящим из символов заглавных букв (верхнего регистра). Это облегчает чтение синтаксических конструкций.

2    Ключевые слова CONTEXT (КОНТЕКСТ), ENDCONTEXT (КОНЕЦ_КОНТЕКСТА), MODEL (МОДЕЛЬ) и END_MODEL (КОНЕЦ_МОДЕЛИ) зарезервированы для использования в последующих редакциях настоящего стандарта.

Таблица 1 — Ключевые слова языка EXPRESS

ABSTRACT

AGGREGATE

ALIAS

ARRAY

AS

BAG

BEGIN

BINARY

BOOLEAN

BY

CASE

CONSTANT

CONTEXT

DERIVE

ELSE

END

END_ALIAS

END_CASE

ENDCON STANT

ENDCONTEXT

END_ENTITY

END_FUNCTION

END_IF

END_LOCAL

END_MODEL

END_PROCEDURE

END_REPEAT

END_RULE

END_SCHEMA

END_TYPE

ENTITY

ENUMERATION

ESCAPE

FIXED

FOR

FROM

FUNCTION

GENERIC

IF

INTEGER

INVERSE

LIST

LOCAL

LOGICAL

MODEL

NUMBER

OF

ONEOF

OPTIONAL

OTHERWISE

PROCEDURE

QUERY

REAL

REFERENCE

REPEAT

RETURN

RULE

SCHEMA

SELECT

SET

SKIP

STRING

SUBTYPE

SUPERTYPE

THEN

TO

TYPE

UNIQUE

UNTIL

USE

VAR

WHERE

WHILE

7.2.2 Зарезервированные слова-операторы

Операторы, определенные зарезервированными словами, приведены в таблице 2. Определения этих операторов см. в разделе 12.

Таблица 2 — Зарезервированные слова EXPRESS-операторы

AND

ANDOR

DIV

IN

LIKE

MOD

NOT

OR

XOR

7.2.3 Встроенные константы

Имена встроенных констант приведены в таблице 3. Определения этих констант см. в разделе 14.

Таблица 3 — Зарезервированные слова EXPRESS-константы

?

SELF

CONSTE

PI

FALSE

TRUE

UNKNOWN

7.2.4 Встроенные функции

Имена встроенных функций приведены в таблице 4. Определения этих функций см. в разделе 15.

Таблица 4 — Зарезервированные слова EXPRESS-имена функций

ABS

ACOS

ASIN

ATAN

BLENGTH

COS

EXISTS

EXP

FORMAT

HIBOUND

HIINDEX

LENGTH

LOBOUND

LOG

LOG2

LOG10

LOINDEX

NVL

ODD

ROLESOF

SIN

S1ZEOF

SQRT

TAN

TYPEOF

USEDIN

VALUE

VALUE_IN

VALUE_UNIQUE

7.2.5 Встроенные процедуры

Имена встроенных процедур приведены в таблице 5. Определения этих процедур см. в разделе 16.

INSERT


REMOVE


Таблица 5 — Зарезервированные слова EXPRESS-имена процедур

7.3 Знаки (symbols)

Таблица 6 — EXPRES-знаки

*

+

-

=

%

'

\

/

<

>

[

]

{

}

1

e

(

)

<=

<>

>=

<*

:=

II

**

(*

*)


Знаки являются специальными символами или группами специальных символов, которые имеют специальное значение в языке EXPRESS. Знаки используются в языке EXPRESS как разделители и операторы. Разделитель используется для начала, выделения или окончания смежных лексических или синтаксических элементов. Интерпретация этих элементов была бы невозможна без разделителей. Операторы обозначают, что функции должны выполняться на операндах, которые связаны с оператором, описания этих операторов см. в разделе 12. EXPRESS-знаки приведены в таблице 6.

9

7.4 Идентификаторы

Идентификаторы являются именами, заданными элементам, объявленным в схеме (см. 9.3), включая саму схему. Идентификатор не должен быть таким же, как зарезервированное слово языка EXPRESS.

Синтаксис:

140 simpleid = letter { letter | digit |    }    .

124 letter =

'а'

1 'Ь'

1 с'

|'d' |'е' | 'Г

1

1 h'

1 1 1

T 1 'k' |

' Г |

пГ

'у' 1

1 п' z

1

1 'Р' 1 'O' 1 'г'

1 's'

1 't' |

'u' |

'v' | 'w'

1 'x'

120 digit =

'0' 1

'V \

'Т I

'3' | '4' | '5' |

'6'

| '7'

| '8'

| '9' .

Первый символ идентификатора должен быть буквой. Остальные символы, при их наличии, могут являться любой комбинацией букв, цифр и символа «подчеркивание».

Разработчик синтаксического анализатора языка EXPRESS, в соответствии с приложением Е, должен определить максимальное число символов идентификатора, которое может распознаваться данной реализацией.

7.5 Литералы

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

Синтаксис:

238 literal = binaryliteral | integerliteral | logicalliteral | real literal | stringliteral .

7.5.1    Двоичный литерал

Двоичный литерал представляет значение двоичного типа данных и состоит из знака %, за которым следует один или более битов (1 или 0).

Синтаксис:

136 binary literal = '%' bit { bit } .

119    bit = '(Г \ 'V ._

Разработчик синтаксического анализатора языка EXPRESS, в соответствии с приложением Е, должен определить максимальное число битов в двоичном литерале, которое может распознаваться данной реализацией.

И р и м е р 7 — Правильный двоичный литерал.

%0101001100

7.5.2    Целочисленный литерал

Целочисленный литерал представляет собой значение целого типа данных, состоящее из одной или более цифр.

Синтаксис:

138 integer literal = digits .

121 digits = digit { digit } .

120    digit = '(Г | 'V | '2' \ '3' \ '4' \ '5' \ '6' \ 'T \    \ '9' ._

Примечание — Знак целочисленного литерала не используется в синтаксисе, так как EXPRESS использует концепцию унарных операторов внутри синтаксиса выражения.

Разработчик синтаксического анализатора языка EXPRESS, в соответствии с приложением Е, должен определить максимальное значение целого для целочисленного литерала, которое может распознаваться данной реализацией.

И р и м е р 8 — Допустимые целочисленные литералы

4016

38

7.5.3    Действительный литерал

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

10

ГОСТ Р ИСО 10303-11-2000

Синтаксис:

139 realliteral = digits [ digits ] [ 'е' [ sign ] digits ] .

121 digits = digit { digit } .

120 digit = 'O' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' .

286 sign = '+' | '-' .

Примечание — Знак действительного литерала не смоделирован в пределах синтаксиса, так как EXPRESS использует концепцию унарных операторов внутри синтаксиса выражения.

Разработчик синтаксического анализатора языка EXPRESS, в соответствии с приложением Е, должен определить максимальную точность и максимальный показатель экспоненты действительного литерала, которые могут распознаваться данной реализацией.

Примеры

9    — Допустимые действительные литералы

1.Е6«Е» может быть записано как строчной, так и прописной буквой

3.5е-5

359.62

10    — Недопустимые действительные литералы

.001 По крайней мере одна цифра должна предшествовать десятичной точке, lei0 Десятичная точка должна быть частью литерала.

1. е10 Пробел не является частью действительного литерала.

7.5.4 Строковый литерал

Строковый литерал представляет собой значение строкового типа данных. Существуют две формы строкового литерала: простой и кодированный. Простой строковый литерал состоит из последовательности символов из набора символов EXPRESS (см. 7.1), заключенной в апострофы ('). Апостроф внутри простого строкового литерала представляется двумя последовательными апострофами. Кодированный строковый литерал состоит из четырехоктетного кодированного представления каждого символа из последовательности символов ИСО/МЭК 10646-1, заключенного в кавычки ("). Кодирование определяется следующим образом:

-    первый октет = группа ИСО/МЭК 10646-1, в которой определен символ;

-    второй октет = плоскость ИСО/МЭК 10646-1, в которой определен символ;

-третий октет = строка ИСО/МЭК 10646-1, в которой определен символ;

-четвертый октет = ячейка ИСО/МЭК 10646-1, в которой определен символ.

Последовательность октетов должна определять один из символов по ИСО/МЭК 10646-1.

Строковый литерал строки никогда не должен выходить за границу физической строки; то

есть символ «новая строка» не должен встречаться между апострофами, в которые заключен строковый литерал.

Разработчик синтаксического анализатора языка EXPRESS, в соответствии с приложением Е, должен определить максимальное число символов простого строкового литерала, которое может распознаваться данной реализацией.

Синтаксис:

292 stringliteral = simplestringliteral | encodedstringliteral .

141 simple_string_literal = \q { ( \q \q ) | not_quote | \s | \x8 | \x9 | \xA | \xB

| \xC | \xD } \q .

130 not quote = not_paren_star_quote_special | letter | digit | '(' | ')' | '*' .

128 not_paren_star_quote_special = '!' | '"' | '#' | '$' | '%' | '&' | ' + ' | ',' |

'?' |

'<§>'

1T

I'V П' 1

T 1'

T 1'

r 1'

— '

124 letter =

'a' |

'b'

'c' |'d' | 'e' | 'f

У

1 h'

1 'i' 1 T

' m'

1 n'

| 'o' | 'p' | 'q' | 'r'

1 's'

1 1 't'

1 u' 1 v

У 1

'z' .

120 digit =

'O' |

'1' |

'2' | '3' | '4' | '5' |

'6'

| '7'

o\

CO


137 encoded string literal = '"' encodedcharacter { encodedcharacter } '"

122    encoded character = octet octet octet octet.

133 octet = hex digit hex digit .

123    hex_digit = digit | 'a' | 'b' | 'c' |'d' | 'e' | 'f .


11


Разработчик синтаксического анализатора языка EXPRESS, в соответствии с приложением Е, должен также определить максимальное число октетов (которое должно быть кратно четырем) кодированного строкового литерала, которое может распознаваться данной реализацией. Примеры

11    — Допустимые простые строковые литералы

' Ребенку нужна новая пара обуви!'

Читается как: ...Ребенку нужна новая пара обуви!

'Ed"s Computer Store'

Читается как: ...Ed's Computer Store

12    — Недопустимые простые строковые литералы

'Ed's Computer Store'

Всегда должно быть четное число апострофов.

'Ed"s Computer Store'

Выходит за границы физической строки

13    — Допустимые кодированные строковые литералы «00000041»

Читается А «000000С5»

Читается А «0000795Е00006238»

Это японские иероглифы в нотации Кобе

14    — Недопустимые кодированные строковые литералы «000041»

Октеты должны быть сгруппированы по четыре «00000041 000000С5»

Между «» разрешены только шестнадцатеричные символы.

7.5.5 Логический литерал

Логический литерал представляет собой значение логических или булевых типов данных и является одной из встроенных констант TRUE, FALSE или UNKNOWN.

Примечание — UNKNOWN не совместим с булевым типом данных.

Синтаксис:

242 logical literal = FALS | TRUE | UNKNOWN .

8 Типы данных

В настоящем разделе представлены типы данных как часть языка. Каждый атрибут, локальная переменная или формальный параметр имеет связанный с ними тип данных.

Типы данных подразделяются на простые, сборные (агрегатные), поименованные, созданные и обобщенные. Также типы данных подразделяются в соответствии с их использованием на основные, параметрические и исходные. Взаимоотношения между двумя этими классификациями описаны в 8.6.

Операции, которые могут быть выполнены над значениями этих типов данных, определены в разделе 12.

8.1    Простые типы данных

Простые типы данных определяют области элементарных единиц данных в EXPRESS. То есть они не могут быть далее декомпозированы на элементы, которые распознает EXPRESS. Простыми типами данных являются: NUMBER (ЧИСЛОВОЙ^, REAL (ДЕЙСТВИТЕЛЬНЫЙ), INTEGER (ЦЕЛОЧИСЛЕННЫЙ), STRING (СТРОКОВЫЙ), BOOLEAN (БУЛЕВСКИЙ), LOGICAL (ЛОГИЧЕСКИЙ) И BINARY (ДВОИЧНЫЙ).

8.1.1    Числовой тип данных

Областью значений числового (NUMBER) типа данных являются все числовые значения в языке. Числовой тип данных должен использоваться, когда не имеет значения более определенное числовое представление.

ГОСТ Р ИСО 10303-11-2000

Синтаксис:

248 numbertype = NUMBER .

П ример 15 — Так как мы можем не знать контекста размера (size), мы не знаем, каким типом данных его представить, например размер толпы на футболе представляет собой целое число, тогда как площадь области подачи — действительное.

size : NUMBER ;

Примечание — В последующих редакциях настоящего стандарта может быть проведена дальнейшая специализация числового типа данных, например комплексные числа.

8.1.2    Действительный тип данных

Областью значений действительного (REAL) типа данных являются все рациональные, иррациональные и действительные научные числа. Данный тип является конкретизацией числового типа данных.

Синтаксис:

265 realtype = REAL [ '(' precisionspec ')' ] .

255 precision spec = numericexpression .

Рациональные и иррациональные числа имеют бесконечное представление и точность. Научные числа представляют физические единицы, которые известны лишь с определенной точностью. Объект precision spec устанавливается в границах значащих цифр.

Литерал действительного числа представляется мантиссой и необязательным показателем экспоненты. Число цифр, составляющих мантиссу, не считая нулей, стоящих впереди первой значащей цифры до десятичной точки, является числом значащих цифр. Известная точность значения является числом первых цифр, которые необходимы для конкретного приложения.

Правила и ограничения:

a)    Объект precision spec задает минимальное число требуемых цифр представления действительного числа. Это выражение должно иметь целое положительное значение.

b)    Когда представление не определено, точность действительного числа не ограничена.

8.1.3    Целочисленный тип данных

Областью значений целочисленного (INTEGER) типа данных являются все целые числа. Данный тип является конкретизацией действительного типа данных.

Синтаксис:

227 integertype = INTEGER .

Пример 16 — В данном примере целочисленный тип данных используется для представления атрибута, названного nodes. Областью значений данного атрибута являются все целые числа без дальнейших ограничений.

ENTITY foo;

nodes : INTEGER;

END ENTITY;

8.1.4    Логический тип данных

Областью значений логического (LOGICAL) типа данных являются три литерала: TRUE, FALSE и UNKNOWN._

Синтаксис:

243 logical type = LOGICAL .

Для значений логического типа данных установлен следующий порядок: FALSE < < UNKNOWN < TRUE. Логический тип данных совместим с булевским типом данных, за исключением того, что булевской переменной не может быть присвоено значение UNKNOWN.

8.1.5    Булевский тип данных

Областью значений булевского (BOOLEAN) типа данных являются два литерала: TRUE и FALSE. Булевский тип данных является конкретизацией логического типа данных._

Синтаксис:

173 boolean type = BOOLEAN .

13

Для значений булевского типа данных установлен тот же порядок, что и для значений логического типа данных: FALSE < TRUE.

Пример 17 — В этом примере, атрибут, названный planar, представлен булевским типом данных. Значением для planar, связанным с экземпляром surface, может быть TRUE или FALSE.

ENTITY surface;

planar : BOOLEAN;

ENDENTITY;

8.1.6    Строковый тип данных

Областью значений строкового типа данных являются последовательности символов. Символами, допустимыми в строковых значениях, являются символы из ИСО/МЭК 10646-1, расположенные в позициях 08—0D, и графические символы, лежащие в диапазонах 20—7Е и АО—10FFFE.

Синтаксис:

293 stringtype = STRING [ widthspec ] .

318 width spec = '(' width ')' [ FIXED ] .

317    width = numericexpression .

Строковый тип данных может иметь как фиксированную, так и переменную ширину (число символов). Если специально не установлено, что имеется фиксированная ширина (используя зарезервированное слово FIXED в определении), то строка имеет переменную ширину.

Областью значений строкового типа данных с фиксированной шириной является набор всех последовательностей символов с шириной, точно указанной в определении типа.

Областью значений строкового типа данных с переменной шириной является набор всех последовательностей символов с шириной не большей максимальной ширины, указанной в определении.

Если ширина не указана, то областью значений будет набор всех последовательностей символов без ограничений по ширине этих последовательностей.

Подстрочные и отдельные символы могут быть адресованы, используя подстрочные индексы, как описано в 12.5. Имеет значение регистр букв (верхний или нижний) в пределах строки.

Правила и ограничения

Выражение ширины должно иметь целое положительное значение.

Примеры

18    — Следующее выражение определяет строку переменной длины, значения которой не имеют определенной максимальной длины.

string 1 : STRING;

19    — Следующее выражение определяет строку, имеющую длину максимум десять символов, значения которой могут измениться по фактической длине от нуля до десяти символов.

string2 : STRING) 10);

20    — Следующее выражение определяет строку, имеющую длину точно десять символов, значения которой должны содержать десять символов.

string3 : STRING) 10) FIXED;

8.1.7    Двоичный тип данных

Областью значений двоичного (BINARY) типа данных являются последовательности битов, а каждый бит представляется 0 или 1.

Синтаксис:

172 binarytype = BINARY [ width spec ] .

318    width spec = '(' width ')' [ FIXED ] .

317 width = numeric expression .

Двоичный тип данных может иметь как фиксированную, так и переменную ширину (число битов). Если специально не определено, что ширина фиксирована (используя зарезервированное слово FIXED в определении), то двоичный тип данных имеет переменную ширину.

Областью значений двоичного типа данных с фиксированной шириной является набор всех последовательностей битов с шириной, точно установленной в определении типа.

ГОСТ Р ИСО 10303-11-2000

Содержание

1    Область применения......................................................................... 1

2    Нормативные ссылки........................................................................ 1

3    Определения................................................................................ 1

3.1    Термины, определенные в ГОСТ Р ИСО 10303-1......................................... 1

3.2    Термины, определенные в ИСО/МЭК 10646-1 ........................................... 2

3.3    Другие определения..................................................................... 2

4    Требования соответствия.................................................................... 2

4.1    Формальные спецификации, написанные на EXPRESS................................... 2

4.2    Реализации EXPRESS................................................................... 3

5    Фундаментальные принципы................................................................ 4

6    Синтаксис определения языка............................................................... 4

6.1    Синтаксис спецификации............................................................... 5

6.2    Специальная символьная нотация....................................................... 5

7    Основные элементы языка................................................................... 6

7.1    Набор символов......................................................................... 6

7.2    Зарезервированные слова................................................................ 8

7.3    Знаки (symbols).......................................................................... 9

7.4    Идентификаторы........................................................................10

7.5    Литералы................................................................................10

8    Типы данных................................................................................12

8.1    Простые типы данных...................................................................12

8.2    Агрегатные (сборные) типы данных......................................................15

8.3    Поименованные типы данных...........................................................19

8.4    Созданные типы данных.................................................................20

8.5    Обобщенные типы данных...............................................................22

8.6    Классификация использования типов данных............................................22

9    Объявления..................................................................................23

9.1    Объявление типа........................................................................23

9.2    Объявление объекта.....................................................................24

9.3    Схема...................................................................................39

9.4    Константа...............................................................................40

9.5    Алгоритмы..............................................................................40

9.6    Правило.................................................................................45

10    Область действия и видимость..............................................................47

10.1    Правила областей действия.............................................................47

10.2    Правила видимости.....................................................................48

10.3    Явные правила для элементов..........................................................49

11    Спецификация интерфейса.................................................................54

11.1    Спецификация интерфейса USE........................................................54

11.2    Спецификация интерфейса REFERENCE...............................................54

11.3    Взаимодействие USE и REFERENCE...................................................55

11.4    Неявные интерфейсы...................................................................55

12    Выражение.................................................................................57

12.1    Арифметические операторы............................................................58

12.2    Операторы отношений.................................................................59

12.3    Двоичные операторы...................................................................66

12.4    Логические операторы..................................................................67

12.5    Строковые операторы..................................................................68

12.6    Агрегатные операторы..................................................................69

12.7    Ссылки.................................................................................74

12.8    Обращение к функции..................................................................76

12.9    Инициализатор агрегатов...............................................................77

12.10    Оператор конструирования экземпляра сложного объекта..............................78

12.11    Совместимость типов..................................................................78

13    Исполняемые операторы....................................................................79

13.1    Пустой оператор........................................................................80

13.2    Оператор псевдоимени.................................................................80

III

ГОСТ Р ИСО 10303-11-2000

Областью значений двоичного типа данных с переменной шириной является набор всех последовательностей битов с шириной, меньшей или равной максимальной ширине, указанной в определении типа. Если ширина не определена, то областью значений является набор всех последовательностей битов, без ограничения по ширине этих последовательностей.

Подстроки и отдельные биты могут быть адресованы, используя подстрочные индексы, как описано в 12.3.

Правила и ограничения

Выражение ширины должно иметь целое положительное значение.

П ример 21 — Следующее выражение может быть использовано для представления информации о шрифте символа.

ENTITY character;

representation : ARRAY [1:20] OF BINARY (8) FIXED;

ENDENTITY;

8.2 Агрегатные (сборные) типы данных

Областями значений сборных (агрегатных) типов данных являются множества значений заданного основного типа данных (см. 8.6.1). Эти значения основного типа данных называются элементами сборного (агрегатного) множества. В EXPRESS установлено определение четырех видов сборных типов данных: ARRAY (МАССИВ), LIST (СПИСОК), BAG (МУЛЬТИМНОЖЕСТВО) и SET (НАБОР). Каждый вид сборного типа данных приписывает различные свойства для своих значений.

Тип ARRAY является упорядоченным множеством фиксированного размера. Оно проиндексировано последовательностью целых чисел.

П ример 22 — Матрица преобразований (в геометрии) может быть определена как массив массивов (чисел).

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

Пример 23 — В виде списка могут быть представлены операции плана процесса. Операции упорядочены и могут быть добавлены или удалены из плана процесса.

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

П ример 24 — Множество крепежных деталей, используемых при сборке, может быть представлено как мультимножество. В состав его элементов может входить некоторое число одинаковых болтов, но неважно, который из них используется в конкретном отверстии.

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

П ример 25 — В качестве набора может быть представлено население всего мира.

Примечание — Сборки (агрегаты) в языке EXPRESS являются одномерными. Объекты, обычно рассматриваемые как многомерные (например, математические матрицы), могут быть представлены сборным типом данных, чей основной тип является в свою очередь сборным типом данных. Таким образом, сборные типы данных могут быть вложенными до произвольной глубины, позволяя представлять любые размерности.

Пример 26 — Можно представить LIST [1:3] OF ARRAY [5:10] OF INTEGER, который в действительности имеет размерность, равную двум.

8.2.1 Тип данных ARRAY

Областью значений типа данных ARRAY является индексирование фиксированного размера множества подобных элементов. Нижние и верхние границы, значения которых выражаются целыми числами, определяют диапазон значений индекса и, таким образом, размер каждого множества массива. Определение типа данных ARRAY может факультативно устанавливать, что значения массива не могут содержать повторяющихся элементов. Также может быть установлено, что значения массива не обязательно содержат элементы в каждой проиндексированной позиции.

ГОСТ Р ИСО 10303-11-2000

13.3    Оператор присваивания................................................................80

13.4    Оператор CASE........................................................................81

13.5    Составной оператор....................................................................82

13.6    Оператор выхода.......................................................................82

13.7    Оператор If... Then ... Else..............................................................82

13.8    Оператор вызова процедуры............................................................83

13.9    Оператор цикла........................................................................83

13.10    Оператор возврата.....................................................................85

13.11    Оператор пропуска....................................................................85

14    Встроенные константы.....................................................................86

14.1    Константа е............................................................................86

14.2    Неопределенная........................................................................86

14.3    Ложь...................................................................................86

14.4    Пи.....................................................................................86

14.5    Self.....................................................................................86

14.6    Истина.................................................................................86

14.7    Неизвестная............................................................................86

15    Встроенные функции.......................................................................86

15.1    Abs — арифметическая функция........................................................86

15.2    ACos — арифметическая функция......................................................86

15.3    ASin — арифметическая функция.......................................................87

15.4    АТап — арифметическая функция......................................................87

15.5    Blength — двоичная функция...........................................................87

15.6    Cos — арифметическая функция........................................................87

15.7    Exists — общая функция................................................................87

15.8    Ехр — арифметическая функция........................................................87

15.9    Format — общая функция..............................................................88

15.10    HiBound — арифметическая функция..................................................90

15.11    Hilndex — арифметическая функция...................................................90

15.12    Length — строковая функция..........................................................90

15.13    LoBound — арифметическая функция..................................................91

15.14    Log — арифметическая функция.......................................................91

15.15    Log2 — арифметическая функция......................................................91

15.16    Log 10 — арифметическая функция.....................................................91

15.17    Lolndex — арифметическая функция...................................................91

15.18    NVL — функция нулевого значения...................................................92

15.19    Odd — арифметическая функция......................................................92

15.20    RolesOf — общая функция.............................................................92

15.21    Sin — арифметическая функция.......................................................93

15.22    SizeOf — агрегатная функция..........................................................93

15.23    Sqrt — арифметическая функция.......................................................94

15.24    Таи — арифметическая функция.......................................................94

15.25    TypeOf — общая функция.............................................................94

15.26    Usedln — общая функция.............................................................95

15.27    Value — арифметическая функция.....................................................96

15.28    Value in — функция принадлежности..................................................97

15.29    Value unique — функция уникальности................................................97

16    Встроенные процедуры.....................................................................97

16.1    Insert...................................................................................97

16.2    Remove.................................................................................98

Приложение А Синтаксис языка EXPRESS....................................................99

А.1    Лексемы...................................................................99

А. 2    Грамматические правила..................................................102

A. З    Список перекрестных ссылок.............................................106

Приложение В Определение разрешенных экземпляров объектов.............................112

B. 1    Формальный подход......................................................112

В.2    Операторы супертипов....................................................113

В.З    Интерпретация возможных типов данных сложных объектов..............113

ГОСТ Р ИСО 10303-11-2000

Приложение С Ограничения на экземпляры, налагаемые спецификацией интерфейса.........119

Приложение D EXPRESS-G. Графическое подмножество EXPRESS..........................122

D.1 Введение и обзор.........................................................122

D.2 Символы определения....................................................123

D.3 Символы отношений.....................................................124

D.4 Символы компоновки....................................................125

D.5 Диаграммы уровня объекта...............................................126

D.6 Диаграммы уровня схемы.................................................128

D. 7 Полные диаграммы EXPRESS-G.........................................129

Приложение Е Заявка о соответствии реализации протоколу (ЗСРП).........................131

E. 1 Синтаксический анализатор языка EXPRESS..............................131

Е.2 Инструментальное средство редактирования EXPRESS-G.................131

Приложение F Регистрация информационного объекта.......................................132

Приложение G Отношения...................................................................133

G.1 Отношения через атрибуты...............................................133

G. 2 Отношения подтип/супертип.............................................137

Приложение Н Модели EXPRESS для иллюстрации примеров EXPRESS-G...................138

H. 1 Пример модели единичной схемы........................................138

Н.2 Шаблон отношения......................................................139

Н.З Простое дерево подтип/супертип.........................................139

Н.4 Переобъявление атрибута.................................................140

Н.5 Многосхемные модели...................................................140

Приложение J Библиография................................................................142

Предметный указатель........................................................................142

V

Введение

Стандарты серии ГОСТ Р ИСО 10303 распространяются на машинно-ориентированное представление данных об изделии и обмен этими данными. Целью является создание механизма, позволяющего описывать данные об изделии на протяжении всего жизненного цикла изделия независимо от конкретной системы. Характер такого описания делает его пригодным не только для обмена инвариантными файлами, но также и для создания баз данных об изделиях, коллективного пользования этими базами и архивации соответствующих данных.

Стандарты серии ГОСТ Р ИСО 10303 представляют собой набор отдельно издаваемых стандартов (частей). Части данной серии стандартов относятся к одной из следующих тематических групп: методы описания, интегрированные ресурсы, прикладные протоколы, комплекты абстрактных тестов, методы реализации и аттестационное тестирование. Группы стандартов данной серии описаны в ГОСТ Р ИСО 10303-1. Настоящий стандарт входит в группу методов описания.

Настоящий стандарт описывает элементы языка EXPRESS. Каждый элемент языка представлен в собственном контексте с примерами. Сначала следуют простейшие примеры, далее с нарастающей сложностью раскрываются более сложные положения.

Обзор языка

EXPRESS — это название формального языка описания информационных требований. EXPRESS применятся для определения информационных требований других стандартов серии ГОСТ Р ИСО 10303. Цели создания языка EXPRESS:

-    объем и сложность стандартов серии ГОСТ Р ИСО 10303 требуют наличия возможностей как для машинной интерпретации содержащейся в них информации, так и для интерпретации данной информации человеком. Представление элементов информации из стандартов серии ГОСТ Р ИСО 10303 в не строго формализованном виде позволит игнорировать возможности применяемых средств автоматизации для проверки несоответствий в процессе представления или создания вторичных отображений, включая отображения реализации;

-    язык EXPRESS разрабатывался таким образом, чтобы обеспечить возможности структурирования различных материалов, относящихся к стандартам серии ГОСТ Р ИСО 10303. В данном языке EXPRESS-схема является основой для структурирования и взаимосвязи элементов представления данных об изделии;

-    язык основан на определении объектов, представляющих формализованные описания моделируемых реальных объектов. Определение объекта дается через его свойства, которые характеризуются путем определения области их значений и ограничений, накладываемых на область значений;

-    при создании языка ставилась задача избежать, насколько это возможно, влияния особенностей реализации. Тем не менее, имеется возможность создания отображений реализации (таких как статический файл обмена) как автоматически, так и непосредственно.

В языке EXPRESS объекты определяются через их атрибуты — особенности или характеристики, имеющие важное значение для понимания и использования объектов. Представление атрибутов может иметь простой тип данных (такой как целый) или являться другим объектом. Геометрическая точка, например, определяется тремя действительными числами. Имена, которые даны атрибутам, дополняют определение объекта. Так, для геометрической точки использующиеся в ее определении три действительных числа имеют имена X, Y и Z. В языке устанавливается связь между определяемым объектом и атрибутами, которые его определяют, а также связь между атрибутом и его представлением.

Примечания.

1    При разработке языка EXPRESS были использованы несколько языков, в частности, Ada, Algol, С, C++, Euler, Modula-2, Pascal, PL/I и SQL. В языке EXPRESS добавлены некоторые возможности, которые делают язык более подходящим для задач описания информационной модели.

2    В настоящем стандарте примеры текстов на языке EXPRESS не соответствуют никакому конкретному стилю. Напротив, для того, чтобы сэкономить место и показать гибкость языка, иногда используется некорректный стиль. Приведенные примеры не отражают содержание информационных моделей, описанных в других стандартах серии РОСТ Р ИСО 10303. Примеры создавались для того, чтобы показать конкретные особенности языка EXPRESS. Необходимо игнорировать любые сходства между примерами, приведенными в настоящем стандарте, и нормативными информационными моделями, содержащимися в других стандартах серии РОСТ Р ИСО 10303.

3    Приложения А, В, С, D, Е и F являются обязательными и составляют неотъемлемую часть настоящего стандарта. Приложения G, Н и J являются справочными.

4    В тексте настоящего стандарта объекты и конструкции языка EXPRESS в ряде случаев выделены полужирным шрифтом (например, file_description).

VI

ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Системы автоматизации производства и их интеграция ПРОСТАВЛЕНИЕ ДАННЫХ ОБ ИЗДЕЛИИ И ОБМЕН ЭТИМИ ДАННЫМИ

Часть 11.

Методы описания. Справочное руководство по языку EXPRESS

Industrial automation systems and integration. Product data representation and exchange.

Part 11. Description methods. The EXPRESS language reference manual

Дата введения 2001—07—01

1    Область применения

В настоящем стандарте определен язык, с помощью которого могут быть описаны аспекты данных об изделии. Данный язык называется EXPRESS.

В стандарте также определено графическое представление для подмножества конструкций в языке EXPRESS. Это графическое представление называется EXPRESS-G.

В ГОСТ Р ИСО 10303-1 EXPRESS описан как язык определения данных. Данный язык состоит из элементов, которые позволяют однозначно определять данные и устанавливать ограничения на эти данные.

Область применения настоящего стандарта охватывает:

-    типы данных;

-    ограничения на экземпляры типов данных.

Область применения настоящего стандарта не охватывает:

-    определение форматов баз данных;

-    определение форматов файлов;

-    определение форматов передачи;

-    управление процессом;

-    обработку информации;

-    обработку особых ситуаций.

Язык EXPRESS не является языком программирования.

2    Нормативные ссылки

В настоящем стандарте использованы ссылки на следующие стандарты:

ГОСТ Р ИСО 10303-1-99 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 1. Общие представления и основополагающие принципы.

ИСО/МЭК 8824-1—95* Информационная технология. Взаимосвязь открытых систем. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 1. Требования к основной нотации ИСО/МЭК 10646-1—93* Информационная технология. Универсальный многобайтный кодированный набор символов (UCS). Часть 1: Архитектура и основной многоязычный уровень

3    Определения

3.1 Термины, определенные в ГОСТ Р ИСО 10303-1

В настоящем стандарте использованы следующие термины:

-    контекст;

-    данные;

-    язык определения данных;

-    информация.

* Оригинал стандарта ИСО/МЭК — во ВНИИКИ Еосстандарта России.

Издание официальное

3.2    Термины, определенные в ИСО/МЭК 10646-1

- графический символ.

Примечание — Данное определение охватывает только те символы из ИСО/МЭК 10646-1, которые имеют определенное визуальное представление; тем самым исключаются любые пустые или заштрихованные ячейки.

3.3    Другие определения

В настоящем стандарте использованы следующие термины с соответствующими определениями:

3.3.1    тип данных сложного объекта (complex entity data type): Представление объекта. Тип данных сложного объекта устанавливает область значений, определяемую общими атрибутами и ограничениями допустимой комбинации типов данных объекта внутри конкретного графа под-тип/супертип.

3.3.2    экземпляр сложного объекта (типа данных) [complex entity (data type) instance]: Обозначенный блок данных, который представляет блок информации внутри класса, определенного объектом. Он принадлежит области значений, установленной типом данных сложного объекта.

3.3.3    константа (constant): Обозначенный блок данных из определенной области значений. Значение этого блока данных не может быть изменено.

3.3.4    тип данных (data type): Область значений.

3.3.5    объект (entity): Класс информации, определенный общими свойствами.

3.3.6    тип данных объекта (entity data type): Представление объекта. Тип данных объекта устанавливает область значений, определяемую общими атрибутами и ограничениями.

3.3.7    экземпляр объекта (типа данных) [entity (data type) instance]: Обозначенный блок данных, который представляет блок информации внутри класса, определенного объектом. Он принадлежит области значений, установленной типом данных объекта.

3.3.8    экземпляр (instance): Обозначенное значение.

3.3.9    частный тип данных сложного объекта (partial complex entity data type): Потенциальное представление объекта. Частный тип данных сложного объекта является группировкой типов данных объекта внутри графа подтип/супертип, которая может образовывать тип данных сложного объекта целиком или частично.

3.3.10    частное значение сложного объекта (partial complex entity value): Значение частного типа данных сложного объекта. Оно не имеет собственного смысла и должно комбинироваться с другими частными значениями сложного объекта и обозначением для формирования экземпляра сложного объекта.

3.3.11    совокупность (population): Множество экземпляров типа данных объекта.

3.3.12    экземпляр простого объекта (типа данных) [simple entity (data type) instance]: Обозначенный блок данных, который представляет блок информации внутри класса, определенного объектом. Входит в область значений, установленную единственным типом данных объекта.

3.3.13    граф подтип/супертип (subtype/supertype graph): Объявленный набор типов данных объекта. Типы данных объекта, объявленные внутри графа подтип/супертип, связаны через выражение подтипа. Граф подтип/супертип определяет один или несколько сложных типов данных объекта.

3.3.14    лексема (token): Не подлежащий декомпозиции лексический элемент языка.

3.3.15    значение (value): Блок данных.

4 Требования соответствия

4.1    Формальные спецификации, написанные на EXPRESS

4.1.1    Лексический язык

Формальная спецификация, написанная на EXPRESS, должна быть согласована с заданным уровнем, как указано ниже. Формальная спецификация согласована с заданным уровнем, когда все проверки, установленные для этого уровня и всех нижних уровней, удовлетворены для этой спецификации.

Уровни проверки

Уровень 1: проверка ссылок. Данный уровень состоит из проверки формальной спецификации, гарантирующей ее синтаксическую и ссылочную корректность. Формальная спецификация синтаксически корректна, если она соответствует синтаксису, полученному расширением пер-

ГОСТ Р ИСО 10303-11-2000

вичных синтаксических правил (синтаксиса), установленных в приложении А. Формальная спецификация корректна в отношении ссылок, если все ссылки на каждый элемент описания языка EXPRESS соответствуют области применения и правилам видимости, установленным в разделах 10 и 11.

Уровень 2: проверка типов. Данный уровень состоит из проверки формальной спецификации, гарантирующей ее соответствие следующему:

-    выражения должны удовлетворять правилам, установленным в разделе 12;

-    присваивания должны удовлетворять правилам, установленным в 13.3;

-    объявления инверсных атрибутов должны удовлетворять правилам, установленным в 9.2.1.3;

-    переобъявления атрибутов должны удовлетворять правилам, установленным в 9.2.3.4.

Уровень 3: проверка значения. Данный уровень состоит из проверки формальной спецификации, гарантирующей ее соответствие утверждениям вида «А должно быть больше В», как установлено в разделах 7—16. Проверка справедлива для тех положений, в которых А и В могут быть выражены литералами и/или константами.

Уровень 4: полная проверка. Данный уровень состоит из проверки формальной спецификации, гарантирующей ее соответствие всем формулировкам требований, установленным в настоящем стандарте.

Пример 1 — В настоящем стандарте установлено, что функция должна иметь оператор возврата («return») для каждой из возможных ветвей, по которым может пойти процесс после вызова данной функции. Это должно быть проверено.

4.1.2    Графическая форма

Формальная спецификация, написанная на EXPRESS-G, должна быть согласована с заданным уровнем, как указано ниже. Формальная спецификация согласована с заданным уровнем, когда все проверки, установленные для этого уровня и всех нижних уровней, удовлетворены для этой спецификации.

Уровни проверки

Уровень 1: проверка символов и области применения. Данный уровень состоит из проверки формальной спецификации, гарантирующей ее соответствие как требованиям к уровню объекта, так и требованиям к уровню схемы, как определено в D.5 и D.6. Это охватывает проверку того, что в формальной спецификации символы используются в соответствии с D.2—D.4. Формальная спецификация также должна быть проверена на соответствие страничных ссылок и переобъяв-ленных атрибутов требованиям D.4.1 и D.5.5.

Уровень 2: полная проверка. Данный уровень состоит из проверки формальной спецификации для установления тех мест, которые не соответствуют требованиям к полному уровню объекта или полному уровню схемы, определенным в приложении D, и требованиям, установленным в разделах 7—16.

4.2    Реализации EXPRESS

4.2.1    Синтаксический анализатор языка EXPRESS

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

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

4.2.2    Средство графического редактирования

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

3

Разработчик редактора EXPRESS-G должен установить любые ограничения, которые реализация накладывает на число и длину идентификаторов, на число доступных символов на страницу модели и на максимальное число страниц. Такие ограничения должны быть документально оформлены в виде, установленном в приложении Е, с целью проведения аттестационного тестирования.

5    Фундаментальные принципы

Предполагается, что читатели настоящего стандарта знакомы с нижеуказанными концепциями.

Схема, написанная на языке EXPRESS, описывает набор условий, которые устанавливают область ее определения. Экземпляры могут быть оценены для определения их принадлежности к данной области значений. Если экземпляры отвечают всем условиям, тогда они объявляются принадлежащими к данной области. Если экземпляры противоречат любому из условий, тогда они нарушают условия и поэтому не принадлежат данной области. В случае, когда экземпляры не имеют значений для необязательных атрибутов, а некоторые условия содержат в себе эти необязательные атрибуты, то не всегда возможно определить, отвечают ли экземпляры всем условиям. В таком случае считается, что экземпляры входят в данную область.

Многим элементам языка EXPRESS присвоены имена. Имя позволяет другим элементам языка ссылаться на связанное с этим именем представление. Использование имени в определении других элементов языка вводит в силу ссылку на исходное представление. Так как синтаксис языка использует идентификатор для имени, то исходное представление должно быть исследовано для понимания его структуры.

Определение типа данных объекта в языке EXPRESS описывает область его значений. Предполагается, что отдельные элементы области различаются некоторыми связанными с ними уникальными идентификаторами. В EXPRESS не установлены содержание или представление этих идентификаторов.

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

Процедурные описания ограничений в EXPRESS могут объявлять или делать ссылки на дополнительные экземпляры объекта как на локальные переменные, которые, как предполагается, будут временными идентифицируемыми элементами области. Данные процедурные описания могут изменять эти дополнительные экземпляры объекта, но не могут изменять постоянные элементы данной области. Эти временные элементы области доступны только в пределах действия процедурного описания, в котором они объявлены, и прекращают существование за пределами этого описания.

Язык EXPRESS не описывает среду реализации. В частности EXPRESS не определяет:

-    как разрешены ссылки на имена;

-    какие другие схемы известны;

-    как и когда проверяются ограничения;

-    что должна делать реализация, если ограничение не удовлетворено;

-    имеют или нет право на существование в реализации экземпляры, которые не соответствуют EXPRESS-схеме;

-    как и где в реализации создаются, изменяются и удаляются экземпляры.

6    Синтаксис определения языка

В настоящем разделе определена нотация, используемая для представления синтаксиса языка EXPRESS. Полный синтаксис для языка EXPRESS приведен в приложении А. Части этих синтаксических правил воспроизведены в различных разделах настоящего стандарта для иллюстрации синтаксиса конкретного оператора. Эти части не всегда полны. Поэтому иногда необходимо руководствоваться приложением А для недостающих в данном примере правил. Части синтаксиса в тексте настоящего стандарта представлены в рамке. Каждое правило внутри синтаксической рамки слева имеет уникальный номер для использования его в перекрестных ссылках на другие синтаксические правила.