Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций 28.3.doc
Скачиваний:
34
Добавлен:
24.09.2019
Размер:
1.47 Mб
Скачать

7.4 Реализация структуры обмена

Синтаксические правила и правила отображения для структуры обмена, использующей кодирование открытым текстом, установлены в ГОСТ Р ИСО 10303-21. Структура обмена может быть реализована для обеспечения файлового обмена. Язык, используемый для синтаксиса метода реализации, основан на нотации синтаксиса по Вирту [1]. Определено отображение из языка EXPRESS на синтаксис структуры обмена.

Гост р исо 10303-21-99

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

Настоящий стандарт устанавливает формат структуры обмена, использующий кодирование открытым текстом данных об изделии, для которого концептуальная модель определена в языке EXPRESS (ИСО 10303-11). Формат файла пригоден для передачи данных об изделии между вычислительными системами.

Определено преобразование из языка EXPRESS в синтаксис структуры обмена. В синтаксис структуры обмена может быть преобразована любая EXPRESS-схема.

  1. Формальные определения

2.1 Формальная нотация

В настоящем стандарте для определения синтаксиса структуры обмена использована синтаксическая нотация Вирта (СНВ).

2.2 Структура обмена

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

  • Заголовочную секцию

  • Секцию данных

Заголовочная секция представляет данные, относящиеся к самой структуру обмена. Секция данных представляет данные, которые должны быть переданы.

Структура обмена определена с помощью СНВ в таблице 3.

2.3 СНВ структуры обмена

Таблица 3

EXCHANGE_FILE =”ISO-10303-21;”

HEADER_SECTION DATA_SECTION

“END-ISO-10303-21;”.

HEADER_SECTION = “HEADER;”

HEADER_ENTITY HEADER_ENTITY

HEADER_ENTITY

[HEADER_ENTITY_LIST]

“ENDSEC;”.

HEADER_ENTITY_LIST = HEADER_ENTITY {HEADER_ENTITY}.

HEADER_ENTITY = KEYWORD

”(“[PARAMETER_LIST] “)” “;”.

PARAMETER_LIST= PARAMETER {“,” PARAMETER}.

PARAMETER = TYPED PARAMETER|

UNTYPED PARAMETER|OMITTED_PARAMETER.

TYPED PARAMETER = KEYWORD “(“ PARAMETER “)”.

UNTYPED PARAMETER = “$”|INTEGER|REAL|STRING|

ENTITY_INSTANCE_NAME

|ENUMERATION|BINARY|LIST.

OMITTED_PARAMETER = “*”.

LIST = “(“[PARAMETER{“,”PARAMETER}] “)”.

DATA_SECTION =“DATA:”ENTITY_INSTANCE_LIST“ENDSEC;”.

ENTITY_INSTANCE_LIST = ENTITY_INSTANCE

{ ENTITY_INSTANCE}.

ENTITY_INSTANCE = SIMPLE_ ENTITY_INSTANCE|

COMPLEX_ ENTITY_INSTANCE.

SIMPLE_ ENTITY_INSTANCE = ENTITY_INSTANCE_NAME “=”

[SCOPE]SIMPLE_RECORD “,”.

COMPLEX_ ENTITY_INSTANCE = ENTITY_INSTANCE_NAME “=”

[SCOPE]SUBSUPER_RECORD “,”.

SCOPE = “&SCOPE”ENTITY_INSTANCE_LIST

“ENDSCOPE”[EXPORT_LIST].

EXPORT_LIST = “/” ENTITY_INSTANCE_NAME

{“,” ENTITY_INSTANCE_NAME}”/”.

SIMPLE_RECORD = KEYWORD “(“[PARAMETER_LIST] “)”.

SUBSUPER_RECORD = ‘(“ SIMPLE_RECORD_LIST “)”.

SIMPLE_RECORD_LIST = SIMPLE_RECORD{ SIMPLE_RECORD}.