База ГОСТовallgosts.ru » 25. МАШИНОСТРОЕНИЕ » 25.040. Промышленные автоматизированные системы

ГОСТ Р ИСО 13584-20-2006 Системы автоматизации производства и их интеграция. Библиотека деталей. Часть 20. Логический ресурс. Логическая модель выражений

Обозначение: ГОСТ Р ИСО 13584-20-2006
Наименование: Системы автоматизации производства и их интеграция. Библиотека деталей. Часть 20. Логический ресурс. Логическая модель выражений
Статус: Действует
Дата введения: 07/01/2007
Дата отмены: -
Заменен на: -
Код ОКС: 25.040.40
Скачать PDF: ГОСТ Р ИСО 13584-20-2006 Системы автоматизации производства и их интеграция. Библиотека деталей. Часть 20. Логический ресурс. Логическая модель выражений.pdf
Скачать Word:ГОСТ Р ИСО 13584-20-2006 Системы автоматизации производства и их интеграция. Библиотека деталей. Часть 20. Логический ресурс. Логическая модель выражений.doc

Текст ГОСТ Р ИСО 13584-20-2006 Системы автоматизации производства и их интеграция. Библиотека деталей. Часть 20. Логический ресурс. Логическая модель выражений



ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ

НАЦИОНАЛЬНЫЙ

СТАНДАРТ

РОССИЙСКОЙ

ФЕДЕРАЦИИ

ГОСТРИСО

13584-20-

2006

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

БИБЛИОТЕКА ДЕТАЛЕЙ

Часть 20

Логический ресурс.

Логическая модель выражений

ISO 13584-20:1998

Industrial automation systems and integration — Parts library — Part 20: Logical

resource: Logical model of expressions (IDT)

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

О

tO

s

гч

I

С|Ш№Ц1ЧИ1+П|Ш

тт

ГОСТ Р ИСО 13584-20—2006

Предисловие

Цели и принципы стандартизации е Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N9 1&4-ФЗ «О техническом регулировании», а правила применения национальных стандартов Российской Федерации — ГОСТ Р 1.0—2004 «Стандартизация в Российской Федерации. Основные положения »

Сведения о стандарте

1    ПОДГОТОВЛЕН Государственным научным учреждением «Центральный научно-исследовательский и опытно-конструкторский институт робототехники и технической кибернетики» на основе собственного аутентичного перевода стандарта, указанного в пункте 4

2    ВНЕСЕН Техническим комитетом по стандартизации ТК 459 «Информационная поддержка жизненного цикла изделий»

3    УТВЕРЖДЕН И 8ВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 27 декабря 2006 г. № 484-ст

4    Настоящий стандарт идентичен международному стандарту ИСО 13584-20:1998 аСистемы автоматизации производства и их интеграция. Библиотека деталей. Часть 20. Логический ресурс. Логическая модель выражений» (ISO 13584-20:1998 «Industrial automation systems and integration — Parts library — Part 20: Logical resource: Logical modelofexpressions»). При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты Российской Федерации, сведения о которых приведены в дополнительном приложенииG

5    ВВЕДЕН ВПЕРВЫЕ

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

© Стандартинформ.2007

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

ГОСТ Р ИСО 13584-20—2006

Содержание

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

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

3    Термины, определения и сокращения........................................1

3.1    Термины, определенные в ИС010303-11...................................1

3.2    Термины, определенные в ИСОЮЗОЗ-44...................................2

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

3.4    Сокращения.....................................................3

4    Основные понятия и допущения............................................3

4.1    Статические и динамические данные......................................3

4.2    Синтаксис выражений...............................................3

4.3    Семантика выражений...............................................3

4.4    Уровни абстракции при моделировании выражений............................4

4.5    Моделирование переменной...........................................4

4.6    Отображаемостъ на языке SQL.........................................5

5    IS013584_genertc_expressions_scfiema.......................................5

5.1    Введение.......................................................5

5.2    Определения объектов IS013584_generic_expressions_schema.....................6

5.3    Определения функций IS013584_generic_expressions_schema.....................9

6    IS013584_expressions_schema...........................................11

6.1    Введение......................................................11

6.2    Определения общих объектов IS013584_expressions_schema.....................12

6.3    IS013584_expressions_schema: определения объектов для числовых выражений........13

6.4    Определения объектов булевых выражений................................25

6.5    Определения объектов строковых выражений...............................33

6.6    Функции для определения свойств выражения...............................37

Приложение А (обязательное) Сокращенные наименования объектов...................44

Приложение В (обязательное) Регистрация информационного объекта...................45

Приложение С (справочное) Диаграммы на языке EXPRESS-G........................46

Приложение D (справочное) Использование схемы ISOI 3584_expressions_schema...........56

Приложение Е (справочное) Конкретизация схем.................................59

Приложение F (справочное) Статический анализ выражений.........................63

Приложение G (справочное) Сведения о соответствии национальных стандартов

Российской Федерации ссылочным международным стандартам.............64

in

ГОСТ Р ИСО 13584-20—2006

Введение

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

Каждая часть комплекса устанавливает требования, относящиеся к одной из тематических групп: концептуальные описания, логические ресурсы, ресурсы реализации, методология описания, аттестационное тестирование, протокол обмена представлениями и стандартизованное содержимое. Описания тематических групп приведены в ИСО 13584-1. Настоящий стандарт устанавливает требования, относящиеся к тематической группе логических ресурсов.

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

IV

ГОСТ Р ИСО 13584-20—2006

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Системы автоматизации производства и их интеграция БИБЛИОТЕКА ДЕТАЛЕЙ Часть 20

Логический ресурс. Логическая модель выражений

Industrial automation systems and integration. Parts library.

Part 20. Logical resource. Log teal model of expressions

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

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

Настоящий стандарт устанавливает:

•    EXPRESS-схему для обобщенных выражений:

•    EXPRESS-схему для выражений, которая моделирует подмножество допустимых выражений на языке EXPRESS, требования к которому установлены в ИСО 10303-11, соответствующее целому, вещественному, булевому и строковому типам данных, в этой схеме используются ресурсы, определенные в схеме обобщенных выражений.

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

•    обмен выражениями, которые содержат как константы, таки переменные:

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

•    константы, которые обеспечивают семантическую корректность выражения:

•    вычисление переменных или функций, используемых в выражении:

•    функцию, которая проверяет, может ли выражение быть отображено на языке запросов SQL.

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

•    присвоение значений переменных в пределах некоторого контекста:

•    переключающий механизм, который вычисляет значение выражения в заданном контексте.

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

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

ИСО/МЭК 9075:1992 Информационные технологии. Языки баз данных. SQL

ИСО 10303-11:1994 Системы автоматизации производства и их интеграция. Представление данных об изделии иобмвн этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS

ИСО 10303-44:1994 Системыавтоматизации производства и ихинтвграция. Представление данных обизделии иобмвн этими данными. Часть44. Интегрированные обобщенные ресурсы. Конфигурация структуры изделия

3    Термины, определения и сокращения

3.1    Термины, определенные в ИС0 10303-11

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

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

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

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

1

ГОСТ Р ИСО 13584-20—2006

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

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

3.2 Термины, определенные в ИС010303-44

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

3.2.1    узел-предок (ancestor node): Любой узел, к которому можно прийти из данного узла путем последовательного обхода его связей е обратном направлении. Для заданного узла его уэлами-предка-ми являются все узлы-родители, все узлы-родители этих узлов-родителей и т.д.

3.2.2    подчиненный узел (child node): Узел, на который непосредственно указывает связь.

3.2.3    узел-потомок (descendant node): Любой узел, к которому можно прийти из данного узла путем последовательного обхода его связей. Для заданного узла узлами-потомками являются все подчиненные узлы, все подчиненные узлы этих подчиненных узлов и т.д.

3.2.4    ориентированный ациклический граф (directed acyclic graph): Набор узлов и связей, в котором ни один узел не является узлом-предком (или узлом-потомком) по отношению к самому себе.

3.2.5    связь (link): Однонаправленное отношение одного узла с другим внутри ориентированного ациклического графа.

3.2.6    узел (node): Элемент ориентированного ациклического графа, соединенный с другим подобным элементом посредством связей.

3.2.7    узел-родитель (parent node): Узел, из которого исходит связь.

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

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

3.3.1    арность оператора (arity of an operator): Максимальное число операндов, которые должны быть связаны с оператором.

3.3.2    бинарный оператор (binary operator): Оператор, арность которого равна двум.

3.3.3    среда (environment): Связь между синтаксисом и семантикой.

Примечание — В контексте нестоящего стандарте объект environment привязывает к объекту generlc.varlable (синтаксису) соответствующее ему значение (семантику), представленное объектом variable.semantlca.

3.3.4    оценка (evaluation): Вычисление значения, представленного в виде выражения.

3.3.5    выражение (expression): Набор переменных и/или констант, которые объединяются операторами.

Примечания

1    Выражение определяет функцию, чьими аргументами являются переменные, встречающиеся в выражении.

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

3.3.6    тип данных выражения (expression data type): Область, в которой должны находиться значения результата выражения.

Примечание — В настоящем стандарте контроль типа и синтез типа проводят только для схемы IS013584_expressiona_ecbema. Контроль типа обеспечивается структурой и правилами этой EXPRESS-схвмы. Синтез типа выполняется EXPRESS-функцией TYPEOF, которая определяет, принадлежит ли объект ехргеввЮп к numeric_expreesion. Воо1еап_ехргввв1оп или etrlng.expreaeion, а также функцией le_int. которая определяет, относится ли значение numeric_expre»sion к типу INTEGER.

3.3.7    интерпретация (interpretation): Функция, которая возвращает семантику, связанную с каждой переменной.

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

3.3.8    оператор большой арности (multiple arity operator): Оператор, арность которого больше

двух.

3.3.9    оператор (operator): Функция, которая соединяет одно или несколько значений, называемых операндами, чтобы выработать значение, называемое результатом.

2

ГОСТ Р ИСО 13584-20—2006

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

3.3.10    семантика (semantics): Смысл заданного понятия.

Пример — Семантикой переменнойявляется смысл, выраженный посредством этой переменной.

Примечание — 8 контексте настоящего стандарта семантика представлена объектом variable.eemantlce. Типом этого объекта является ABSTRACT SUPERTYPE, который может быть использован для передачи конкретных смыслов и значений.

3.3.11    синтаксическое представление (syntactic representation): Последовательность символов. которая представляет заданное понятие.

Примечания

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

2    8 контекста настоящего стандарта синтаксическое представление представляет собой имя экземпляра объекта (типе данных).

3.3.12    контроль типа (typecontrol): Операция, которая позволяет определить, правильноилинет данное выражение отнесено к определенному типу.

Примечания

1    выражение отнесено к определенному типу правильно, если тип данных каждого операнда каждого оператора этого выражения соответствует требуемому типу данных.

2    8 настоящем стандарте контроль типе обеспечивается ограничениями EXPRESS-схемы.

3.3.13    синтез типа (type synthesis): Определение типа данных выражения.

Примечание—В схеме IS013584_expresslons_schema тип данных каждой константы, переменной или результата оператора передается объектом, который ее представляет, поэтому тип данных выражения expression может быть выведен из результата EXPRESS-функции TYPEOF. примененной к узлу, который представляет это выражение.

3.3.14    унарный оператор (unary operator): Оператор, арностькоторого равна единице.

3.3.15    переменная (variable): Представление значения, которое должно принадлежать «определенному типу данных.

3.4 Сокращения

8 настоящем стандарте используется следующее сокращение, установленное в ИСО/МЭК 9075:1992:

SQL — Structured Query Language (структурированный язык запросов).

4 Основные понятия и допущения

4.1    Статические и динамическиеданные

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

Настоящий стандарт устанавливает форму однозначного представления и обмена машин-ко-интерпретируемыми выражениями.

4.2    Синтаксис выражений

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

8 настоящем стандарте константы, переменные и операторы представлены как типы данных объектов. Правила, которым должны подчиняться эти объекты, моделируются в EXPRESS-схеме. которая определяет типы данных объектов.

ГОСТ Р ИСО 13584-20—2006

4.3    Семантика выражений

4.3.1    Семантика выражений

Выражения состоят из операторов и операндов. Семантика выражения определяется:

•    диапазоном функции, выполняемой каждым оператором:

•    функцией интерпретации, которая связывает соответствующее значение с каждым операндом;

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

В настоящем стандарте функция интерпретации моделируется определением подтипа объекта variable.semantics. Функция оценки в настоящем стандарте не рассматривается.

4.3.2    Период обмена и период оценки

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

1)    В период обмена выражение представлено своей структурой. Соответствующий ориентированный ациклический граф моделируется и обменивается. При этом не требуется, чтобы переменные были ограничены какими-либо значениями, но их семантика известна. На этом уровне могут быть выполнены различные виды статического анализа (ацикличность графа, проверка типов, отображаемость на языке SQL).

2)    В период оценки выражению может быть присвоено значение. На этом этапе все переменные, встречающиесяв выражении, должны получитькакое-либоэначение. Динамическая оценка выражения, тестирование и отладка могут быть выполнены на этом уровне.

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

4.4    Уровни абстракции при моделировании выражений

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

4.4.1    Конкретизация IS013584_generic_expressions_schema

IS013584_expressions_8chema является конкретизацией схемы 1S013584_generic_expresslons_ schema. Операторы, используемые в IS013584_expressions_schema. принадлежат к подмножеству операторов, определенных в ИСО 10303-11. Их диапазон и функция оценки должны соответствовать спецификации, установленной в ИС010303-11.

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

В приложении Е рассмотрены детали процесса конкретизации и приведен метод создания других возможных конкретизаций IS013584_generic_expressions_schema.

4.4.2    Конкретизация IS013584_expressions_schema

IS013584_expressions_schema может быть конкретизирована, чтобы соответствовать требованиям. которые не ограничиваются операторами с числовыми, строковыми и булевыми значениями, определенными в руководстве по языку EXPRESS в ИС0 10303-11.

Конкретизация IS013584_expressions_schema заключается либо в расширении схемы за счет добавления определений новых объектов, которые выражают семантику функций, возвращая целое, вещественное, булево илистроковое значение, либо вопределенииновыхподтипоеуаг1аЫе_ветапКс8.

Объекты, которые выражают семантику функций, должны быть определены как подтипы соответствующего объекта defined_function. Действительно, функция, возвращающая целое, вещественное, булево или строковое значение, соответственно должна быть определена как подтип lnteger_defined_fimctlon, real_defined_function boolean_defined_function и string_deflned_function.

Такая конкретизация совместима со строгой проверкой типа данных, чтоследует из правил схемы iS013584_expressions_schema.

В приложении Е установлены детали процесса конкретизации и приведена методика конкретизации IS013584_expressions_schema.

4.5    Моделирование переменной

Переменная имеет три свойства:

4

ГОСТ Р ИСО 13584-20—2006

•    представляет собой символ (синтаксический), который может быть использован для построения выражения;

•    ассоциируется с типом данных, который определяет область ее значений:

•    ассоциируется с семантикой, которая определяет ее смысл и. следовательно, ее значение в период оценки.

4.5.1    Синтаксическое представление

6 настоящем стандарте переменная является экземпляром объекта generic.variable. Экземпляр такого типа данных связывается с идентификатором, определяющим индивидуальность экземпляра, который вводит в действие символ соответствующей переменной, когдаона ислользуетсяввыражении.

4.5.2    Область значений переменной

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

4.5.3    Семантика переменной

8 IS013584_generic_expressions_schema должны входить переменные, связанные с variable.semantics. Этот объектопределен как ABSTRACT SUPERTYPE и должен быть переопределен через подтип при использовании конкретной семантики. Описание подтипа объекта variable_semantics должно содержать описание контекста, е котором эта переменная должна использоваться. Это описание должно сопровождаться описанием функции интерпретации, которая связывает значение с этой переменной.

Притер — Запись на языке EXPRESS SELF.а является примером varlable_aemantlce. Такая переменная может быть использована только в контексте некоторого зкземпляра некоторого класса, в котором появляется ее синтаксическое представление, в рамках зтоео контексте функция интерлретвции является функцией, которая связывает с этой переменной значение атрибута «в» зтоео экземпляра.

в приложении D приведены различные методы, которые могут быть использованы для определения подтипов объекта variab!e_semantlcs. соответствующих некоторым конкретным требованиям. Это обеспечивает конкретизацию определения функции интерпретации через объект variable.semantics.

4.6 Отображаемость на языке SQL

8 языках программирования выражения обычно используются для доступа к базам данных. Язык SQL включает только небольшое числооператоровиограничиваетиспользование выражений до заданной категории выражений. Для того чтобы сделать понятным различие между выражениями, которые являются SQL-отображаемыми, и остальными выражениями, специально введенный булев атрибут указывает, является или нет выражение отображаемым на языке SQL.

5 IS013584_generic_expressions_schema

8 данном разделе определены требования к схеме lS013584_generic_expressions_schema. Приведенное ниже описание на языке EXPRESS представляет собой блок IS013584_generic_expressions_ schema.

EXPRESS-специФикаиия

’)

SCHEMA IS013584_generic_expressions_sche та;

5.1 введение

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

Пример — В параметрической модели фигуры вещественное значение может быть представлено как выражение, операндами котороео являются элементы ееометрическово представления, нвлри-мер distance (point_i. polnt_2). Геометрический элемент может быть определен геометрическим олервтором, например centre_of (clrcle_1).

5

ГОСТ Р ИСО 13584-20—2006

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

Схема IS013584_generic_expressions_schema предоставляет следующие возможности:

-    обобщенные константы, соответствующие значениям обрабатываемого типа данных;

. обобщенные переменные, обозначающие значения, интерпретируемые из контекста;

•    унарные выражения для унарных операторов;

•    бинарные выражения для бинарных операторов;

-    выражения большой арности для операторов большой арности.

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

5.2 Определения объектов IS013584_generic_expressions_ schema

5.2.1    Объект generic.expression

Объект generic.expression является информационной моделью обобщенного выражения. Он представляет собой ABSTRACT SUPERTYPE (абстрактный супертип) всех возможных выражений. Для того чтобы обеспечить ацикличность выражений, его разбивают на подтипы в соответствии сего арностью. Если подтип generic_expre8sion не является подтипом simple_generic_expresslon либо unary_generic_expression. либо binary_generlc_expression. либо multiple_arlty_generic_expres-sion. то он не должен содержать ни одной переменной.

EXPRESS-спецификация

*)

ENTITY generic_expression

ABSTRACT SUPERTYPE OF(ONEOF(simple_generic_expression.

unary_generic_expressk>n. binary _generic_expression, multipie_arity generic.expression));

WHERE

WR1; is_acydic(SELF);

END_ENTITY;

(*

Формальное утверждение

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

Неформальное утверждение

IP1 — либо объект generic.expression не должен содержать ни одной переменной generic, variable, либо он должен быть подтипом simple_generic_expression. unary_generic_expresslon. либо binary.generic.expression. nn6omultiple_arity_generlc_expression.

Примечание — Это неформальное утверждение обеспечивает то. что набор переменных, вычисленных функцией ueed_varlable (см. 5.3.2). включает в себя все переменные, имеющиеся в generlc.expreeslon.

5.2.2    Объект simpte_generic_expression

Объект simple_generic_expression является обобщенным выражением, которое олицетворяет либо обобщенную переменную, либо обобщенный литерал.

EXPRESS-спецификация

*)

ENTITY simple.generic.expression

ABSTRACT SUPERTYPE OF (ONEOF(generic_litera1. generic.variable))

SUBTYPE OF (generic.expression);

END.ENTITY:

(*

5.2.3    Объект genericjiteral

Объект genericjiteral является абстрактной константой, которая может быть включена в обобщенное выражение.

6

ГОСТ Р ИСО 13584-20—2006

EXPRESS-спецификация

*>

ENTITY genericjiteral

ABSTRACT SUPERTYPE

SUBTYPE OF (simpte_generic_expresston);

ENO_ENTITY;

5.2.4 Объект generic.variable

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

Примечание — real_numerle_variable. Integer_numeric_varieble. boolean_numerlc_variable и string_numerlc_variable являются примерами подтипов объекта generlc_vartable. Эти подтипы определены а разделе б.

EXPRESS-слеииФикаиия

•>

ENTITY generic variable

ABSTRACT SUPERTYPE

SUBTYPE OF (simple_generic_expression);

INVERSE

interpretation:

environment FOR syntactic_representation;

END_ENT!TY;

Г

Определение атрибута

interpretation — объект environment (среда), который позволяет связывать значение с переменной.

5.2.5 06beKTvariable_semantics

Объект variable_semantlcs используется для представления смысла generic.variable. Он относится к абстрактному супертипу ABSTRACT SUPERTYPE, для которого должны быть определены подтипы при использовании variable_semantics Объект variable_semantics должен определять контекст, в рамках которого переменная должна использоваться вместе с функцией интерпретации, связывающей значение с этой переменной.

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

•    двух экземпляров real_varlable;

•    двух зкземпляров self_property_aemantlca. являющегося подтипом vartable_aemantics, которые относятся к свойству «а» и свойству «й». соответственно;

•    выражения boolean_expresalon между двумя объектами real_varlable, которое указывает, что первый объект больше, чем второй.

EXPRESS-спеииФикаиия

*>

ENTITY variable_semantics ABSTRACT SUPERTYPE: END_ENTITY;

ГОСТ Р ИСО 13584-20—2006

5.2.6 Объект environment

Объект environment обеспечивает связь между синтаксисом и семантикой переменной. Он представляет собой функцию интерпретации, которая связывает значение с generic_varlable

EXPRESS-специФикаиия

*)

ENTITY environment;

syntacticjepresentation: generic_variable; semantics: variabte_semanUcs;

END_ENTITY;

Г

Определения атрибутов

syntactic.representation — объект generic.variable. который обозначает значение переменной; semantics — смысл переменной, который включает в себя механизм для доступа кее значению.

5.2.7 Объект unary_generlc_expresslon

Объект unary_generlc_expresslon является абстрактным супертипом A8STRACT SUPERTYPE для всех унарных операторов.

EXPRESS-спецификация

•)

ENTITY unary_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression);

operand; generic_expression: END_ENTITY;

(*

Определение атрибута

operand — обобщенное выражение, которое представляет собой операнд унарного оператора.

5.2.8 Объект binary_generic_expression

Объект binary_generlc_expression является абстрактным супертипом ABSTRACT SUPERTYPE для всех бинарных операторов.

EXPRESS-спецификация

ENTITY binary_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression);

operands: LIST [2:2] OF generic_expression; END_ENTITY;

(*

Определение атрибута

operands — список из двух обобщенных выражений, которые представляют собой два операнда бинарного оператора.

5.2.9 Объект multiple_arity_generlc_expression

Объект multiple_arlty_generic_expression является абстрактным супертипом ABSTRACT SUPERTYPE для всех операторов большой арности.

EXPRESS-спецификация

*)

ENTITY multiple arity_generic_expression ABSTRACT SUPERTYPE

8

ГОСТ Р ИСО 13584-20—2006

SUBTYPE OF(generic_expression);

operands: LIST (2:?] OF generic_expression; END_ENTITY;

Определение атрибута

operands — список обобщенных выражений, которые представляют собой операнды оператора большой арности.

5.3 Определения функций IS013584_generic_expressions_schema

8 данном подразделе определены функции схемы IS013584_generic_expresslons_schema.

5.3.1 Функция is.acyctlc

Функция is_acycllc проверяет наличие цикла в рассматриваемом графе выражения. В ней определены двефункции. Первая (1в_асусИс)имеетв качестве аргумента объект generic_expression. который должен быть проверен. Затем эта функция вызывает вторую (acyclic) с двумя аргументами: generic.expresslon и пустой набор. Этот набор должен быть модифицирован в результате выполнения функции таким образом, чтобы он содержал набор всех узлов, уже прослеженных по цепочке рекурсивных вызовов вниз до данного узла.

Функция ls_acyctlc возвращает значение TRUE (истина), если представленная аргументом агд структура является ориентированным ациклическим графом, в противном случае она возвращает значение FALSE (ложь).

Примечание — В приложении F определена роль такой структуры а статическом анализе (например, контроль типа, свор переменных и т.д.>и в динамическом анализе (например, оценка) выражения

EXPRESS-специФикаиия

•>

FUNCTION is_acyclic (arg: generic_expression): BOOLEAN; RETURN (acydic (arg. [)));

END_FUNCTION; - is_acyclic

FUNCTION acyclic(arg1: generic_expression:

arg2: SET OF generic^expression): BOOLEAN:

LOCAL

result: BOOLEAN:

END_LOCAL:

IF ('IS013584J3ENERIC EXPRESSIONS_SCHEMA.SIMPLE_GENERIC_EXPRESSION‘ IN TYPEOF (arg1))

THEN

RETURN (TRUE);

ENDJF:

IFargl INarg2 THEN

RETURN (FALSE);

ENDJF;

IF 'IS013584_GENERIC_EXPRESSI0NS SCHEMA.UNARY GENERIC_EXPRESSION' IN TYPEOF (arg1)

THEN

RETURN

(acyclic(arg1\unary _generic_expression.operand.arg2+(arg1]));

ENDJF:

9

ГОСТ Р ИСО 13584-20—2006

IF'IS013584_GENERIC_EXPRESSI0NS_SCHEMA.BINARY GENERIC_EXPRESSION'

IN TYPEOF (argl)

THEN

RETURN

(acyclic(arg1Vbinary_generic_expression.operands[1],arg2+[arg1])

AND

acyclic(arg1\binary generic_expression.operands[2).arg2*[arg1]));

ENDJF;

IF

4S013584J3ENERIC EXPRESSIONS SCHEMA.MULTIPLE_ARITY GENERIC_EXPRESSION’ IN TYPEOF (arglj"

THEN

result := TRUE;

REPEAT i:= 1 TO

SIZEOF (arg1\multiple_arity_generic_expression.operands); result := result AND

acyclic(arg1\multiple_arity_generic_expression,operands[i). arg2+(arg1j); END_REPEAT;

RETURN (result);

ENDJF:

END_FUNCTION; - acyclic (*

5.3.2 Функция used.variables

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

Примечание — Эта функций не используется а схеме lS013584_generic_expreesions_8Chema. Она является ресурсом, предназначенным для использования всхемвх. которые используют iS013584_generic_expre»-alona_echema или ее возможные конкретизации. Например, зтв функция используется в некоторых стандартах комплекса ИСО 13584 для записи ограничений на переменные, встречающиеся в выражениях.

EXPRESS-спвииФикаиия

*)

FUNCTION usedj/ariabfes (arg; generic_expression): SET OF generic_variable;

LOCAL

result: SET OF generic_variable := Q;

END_LOCAL;

IF*IS013584_GENERIC_EXPRESSIONS_SCHEMA.GENERIC VARIABLE IN TYPEOF (arg)

THEN

RETURN ((argl);

END_IF;

IF'IS013584_GENERIC_EXPRESSI0NS_SCHEMA.UNARY_GENERIC_EXPRESSI0N' IN TYPEOF (arg)

THEN

RETURN (used_variables (arg\unary_generic_expression.operand));

ENDJF.

10

ГОСТ Р ИСО 13584-20—2006

IF'IS013584_GENERIC_EXPRESSIONS_SCHEMA.BINARY_GENER!C_EXPRESSION'

IN TYPEOF (arg))

THEN

RETURN(used_variables(arg\binary_generic_express»on.operands{1))

♦ used_variables (arg\binary_generic_expression.op6rands(2)));

ENDJF:

IF

'IS013584_GENERIC_EXPRESSI0NS_SCHEMA.MULTIPLE_ARITY_GENERIC_EXPRESSI0N' IN TYPEOF (arg)

THEN

REPEAT i := 1 TO

SlZEOF(arg\multiple_arity_generic_expression.operands); result := result ♦ used_variabies(

arg\multiple_arity_generic expression.operandsfi));

END_REPEAT;

RETURN (result);

ENDJF;

RETURN ([]);    - e этом случае подтип не должен содержать

- никаких переменных (см. IP1 в generic_expression)

END_FUNCTION; - used_variab!es

END_SCHEMA; - IS013584_generic_expressions_schema

6 lS013584_expressions_schema

8 данном разделе установлены требования KlS013564_expression8_schema. Следующее описание на языке EXPRESS представляет блок 1S013584_expresslons_schema и устанавливает необходимые внешние ссылки.

EXPRESS-спецификация

•>

SCHEMA IS013584_expressions_schema:

REFERENCE FROM IS013584_generic_expressions_schema( generic_expression. sim ple_generic_express ion. generic_variable. genericjiteral. unary _generic_expression, binary_generic_expression, multiple_arity_generic_expression);

6.1 введение

IS013584_expresslons_schema обеспечивает моделирование числовых, булевых и строковых выражений, построенных из операторов и функций языка EXPRESS. Имена операторовифункций — по ИС0 10303-11. Они имеют ту же семантику, что и соответствующие элементы в ИС0 10303-11.

Основная структура — по1$013584_депег1с_ехрге881опв_8сЬета.Оналредставляетсобойори-актированный ациклический граф, узлами которого являются операторы, литеральные значения и переменные. а связи представляют собой взаимосвязь операторов со своими аргументами, которые сами являются выражениями.

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

11

ГОСТ Р ИСО 13584-20—2006

следующие абстрактные объекты: numeric_defined_function. integer_defined_function. real_defined_function. string_deflned_function и boolean_defined_function. Значение, передаваемое любым из этих объектов, должно соответствовать типу данных значения, связанного с этим объектом. Предполагается. 4Togeneric_expression. которое не является подтипом одного из этих объектов, имеет значение, тип данных которого не является одним из типов, которые моделируются 1S013584_expressions_schema.

IS013584_expressions_schema содержит информацию о том. может или нет выражение быть отображено на языке SOL. определение которого приведено в ИСО/МЭК 9075. Чтобы дать возможность включить в выражение либо generic.expresslon, либо функцию, определенную в приложении, которая может быть отображена на языке SQL. IS013584_expressions_schema содержит абстрактный объект SQL_mappable_defined_fu notion Объект generic_expresslon. который является подтипом этого объекта, должен быть отображаемым на языке SQL. Предполагается, что объект generic.expression. который не является подтипом этого объекта, имеет структуру, которая не может быть отображена на языке SQL.

Выражения определяются введением подтипаобъектадепеНс_ехргеев1опиэ18013584_депег1с_ expresslons.schema. Все константы, переменные и операторы, определенные в IS013584_expres-sions.schema. являются подтипами соответствующих объектов IS013584_generic_expresslons_ schema. Это соответствие определяется арностью каждого оператора.

6.2 Определения общих объектов IS013584_expressions_schema

6.2.1    Объект expression

Объект expression являетсячастным случаем объекта generic.expression, ограниченным числовой. булевой или строковой областью значений.

EXPRESS-спеииФикааия

*)

ENTITY expression

ABSTRACT SUPERTYPE OF (ONEOF {numeric_expression,

boolean_expression. string_expression))

SUBTYPE OF (generic_expression);

END_ENTITY;

<*

6.2.1.1    Объект variable обозначает значение, интерпретированное из некоторого контекста.

EXPRESS-спеииФикаиия

*>

ENTITY variable

ABSTRACT SUPERTYPE OF (ONEOF (numericj/ariable. boolean_vartable. string_variable)}

SUBTYPE OF(generic_variabIe);

END_ENTITY;

(*

6.2.1.2 Объект deflned.function является функцией (строго определенного типа), которая предназначена для создания на ее основе подтипов в информационных моделях, в которых используется IS013584_expressions_schema.

EXPRESS-спецификация

ENTITY defined_function

ABSTRACT SUPERTYPE OF ((ONEOF (numeric_defined_function.

striog_defined_function.

booiean_defined_function)

12

ГОСТ Р ИСО 13584-20—2006

END_ENTITY;

)

AN DO R SQL_m appable_defined_fu notion):

6.2.1.3 Объект SQL_mappable_deflned_function является функцией, которая предназначена для создания на ее основе подтипов в информационных моделях, в которых используется IS013564_expressions_schema. для указания того, что некоторое выражение g©neric_expression является отображаемым на языке SQL.

EXPRESS-спецификаиия

’)

ENTITY SQL_mappable_defined function ABSTRACT SUPERTYPE SUBTYPE OF (defined_function);

END.ENTITY;

Г

6.3 IS013584_expresslons_schema: определения объектов для числовых выражений

6.3.1 Объект numerlc_expres8ion

Объект numeric.expression представляет собой выражение, диапазоном которого является тип данных NUMBER, определенный в 8.1.1 ИС0 10303-11.

EXPRESS-спеииФикаиия

•>

ENTITY numeric_expression

ABSTRACT SUPERTYPE OF (ONEOF (simple_nufneric_expression, unary_numeric_expression, binary _numeric_expression, multiple_arity_numeric_expression. length_function, valuejunction, numenc_defined_function)}

SUBTYPE OF (expression);

DERIVE

isjnt: BOOLEAN := isJnt_expr(SELF): sql_mappable: BOOLEAN := is SQL_mappable (SELF);

END_ENTITY;

Г

Определения атрибутов

is_lot — булев атрибут, который показывает, имеет ли оценка выражения целое значение или нет:

sql.mappable — булев атрибут, который показывает, является ли выражение отображаемым на языке SQL.

6.3.2 Объектв1тр1е_питег1с_ехргевв1оп

Объект slmp!e_numeric_expression представляет собой либо числовой литерал, либо числовую переменную.

EXPRESS-специФикаиия

*>

ENTITY simpte_numeric_expression

ABSTRACT SUPERTYPE OF (ONEOF (literal_number. numeric_variable)) SUBTYPE OF (numeric_expression. simple_generic_expression); END.ENTITY;

13

ГОСТ Р ИСО 13584-20—2006

6.3.3 Объект literal.number

Объект llteral.number представляет собой литерал языка EXPRESS числового типа (NUMBER). Объект literal.number может быть либо целым литералом, либо вещественным литералом.

Примечание - Областью значений типа данных NUMBER языка EXPRESS являются числовые значения.

EXPRESS-спецификация

*)

ENTITY literal_number

ABSTRACT SUPERTYPE OF (ONEOF (intjiteral. realjiteral)) SUBTYPE OF <simple_numeric_express*on. genencjiteral);

the_value: NUMBER:

END_ENTITY:

Г

Определение атрибута

the.value — значение литерала NUMBER.

6.3.4 Объект intjiteral

Объект intjiteral представляет собой литерал языка EXPRESS типа INTEGER.

Примечание — Литерал языка EXPRESS типа INTEGER представляет собой целое число VALUE, которое состоит из одной или более цифр.

EXPRESS-спецификация

*)

ENTITY Intjiteral SUBTYPE OF (literal_number);

SELF\literal_number.the_value: INTEGER;

END_ENTITY;

(*

Определение атрибута

the.value — значение литерала INTEGER.

Объект realjiteral

Объект real Jiteral представляет собой литерал языка EXPRESS типа REAL.

Примечание — Литерал языка EXPRESS типа REAL представляет собой целое число VALUE, которое состоит из мантиссы и необязательной экспоненты: мантисса должна содержать десятичную точку.

EXPRESS-спвоиФикация

*)

ENTITY realjiteral SUBTYPE OF (literal jiumber);

SELRIiteral_number.the_value: REAL; END_ENTITY;

Г

Определение атрибута

the.value — значение литерала REAL.

6.3.6 Объект numerlc.variable

Объект numeric.varlable является переменной, которая представляет собой значение числа. EXPRESS-спецификация

ENTITY numeric variable

14

ГОСТ Р ИСО 13584-20—2006

SUPERTYPE OF (ONEOF (int_numeric_variable.

reaLnumenc_variable))

SUBTYPE OF (simple_numeric_expression, variable);

WHERE

WR1: ('IS013584 EXPRESSIONS_SCHEMA.INT_NUMERIC_VARIABLE'

IN TYPEOF (SELF)) OR

(’IS013584 EXPRESSIONS_SCHEMA.REAL_NUMERIC VARIABLE’

IN TYPEOF (SELF));

END_ENTITY;

Г

Формальное утверждение

WR1 — объект numerlc.variabie может быть только целой или вещественной переменной.

6.3.7    Объект int_numerlc_variable

Объект lnt_numerlc_varlable является переменной. которая представляет собой значение целого числа.

EXPRESS-слецификация

•>

ENTITY int_numeric_variable SUBTYPE OF (numeric_variable);

END_ENTITY;

(*

6.3.8    Объект real_numerlc_variable

Объект real_numeric_variable является переменной, которая представляет собой значение вещественного числа.

EXPRESS-спеииФикаиия

*)

ENTITY real_numeric_variable SUBTYPE OF (numeric_variable);

END_ENTITY;

Г

6.3.9    Объект unary_numeric_expreeslon

Объект unary_numeric_expreseion является унарным оператором, диапазоном которого является тип данных NUMBER по ИСО 10303-11.

EXPRESS-слецификация

’)

ENTITY unary_numeric_expression

ABSTRACT SUPERTYPE OF (ONEOF (unaryJuncbon_call))

SUBTYPE OF (numeric_expression. unary_genenc_expression);

SELF\unary_generic_expression.operand: numeric.expression;

END_ENTITY;

Г

Определение атрибута

operand — числовое выражение, которое представляет собой параметр унарногооператора.

6.3.10    Объект binary_numerlc_expresslon

Объект blnary_numeric_expreesion является бинарным оператором, диапазоном которого является тип данных NUMBER по ИС0 10303-11.

EXPRESS-спеииФикаиия

*>

ENTITY binary _numenc_expression

15

ГОСТ Р ИСО 13584-20—2006

ABSTRACT SUPERTYPE OF {ONEOF (minus.expression.

div_express»on.

mod_expression,

slash_expression,

power_expression,

binary_function_call))

SUBTYPE OF {numeric_expression, binary _genenc_expression);

SELF\binary_genenc_expression.operands: LIST (2:2] OF

numeric_expression;

END_ENTITY;

(*

Определение атрибута

operands — список, содержащий два параметра бинарного оператора.

6.3.11 Объект multlple_arity_numeric_expression

Объект multiple_arity_numeric_expresslon является оператором большой арности, диапазоном которого является тип данных NUMBER по ИС010303-11.

EXPRESS-спешФикаиия

*)

ENTITY multiple_arity_numeric_expression ABSTRACT SUPERTYPE OF (ONEOF (plus.expresston.

mutt_expression, mu!tiple_arity_function_call)) SUBTYPE OF (numeric_expression. multiple_arity_generic_expression); SELRmuUiple_arity_generic_expression.operands: LIST [2:?] OF

numeric_express»on

END_ENTITY;

(*

Определение атрибута

operands — список, содержащий параметры оператора большой арности. Длинаэтогосписка равна арности оператора.

6.3.12 Объект length.function

Объект length.function включает в себя семантику функции LENGTH по ИС0 10303-11.

Примечание — Функция LENGTH возвращает число символов а строке. Ее параметром является объект etrlng.expresaion. содержащий значение строкового типа данных. Результатом выполнения функции является возвращенное значение, которое представляет собой число символов в строке: онодолжнобыть больше или равно нулю.

EXPRESS-спешФикаиия

*)

ENTITY length_funct>on

SUBTYPE OF (numeric_expression. unary_generic_expression);

SELRunary_generic_expression. opera nd:string_expression; END_ENTITY;

(*

Определение атрибута

SELRunary_generic_expresslon.operand — строка, длина которой вычисляется с помощью функции length.function.

6.3.13 Объект value.functlon

Объект value.function включает в себя семантику функции VALUE по ИС010303-11. Если значение. представленное объектом string_expresslon. который соответствует унаследованному атрибуту operand, является целым числом, должен быть использован подтип lnt_value_functlon.

16

ГОСТ Р ИСО 13584-20—2006

Примечание — Функций VALUE возвращает числовое представление строки. Ее параметром является объект etrlng_expreeelon. содержащий значение строкового типа данных. Результатом выполнений функции является число, соответствующее представлению строки.

EXPRESS-спвцификаиия

’)

ENTITY value_function SUPERTYPE OF (int_value_function)

SUBTYPE OF (numeric_expression. unary_generic_expression);

SELF\unary_generic_expression.operand:stnng_expression;

END_ENTtTY;

<*

Определение атрибута

SELRunary.generic.expression.operand — строковое выражение, значение которого вычисляется функцией value.functlon.

6.3.14 Объект int_value_functlon

Объект lnt_value_function включает в себя семантику функции VALUE по ИС0 10303-11 и констатирует. что объект strlng.expression. который соответствует унаследованному атрибуту operand, представляет собой целое число.

Примечание — Функция INTEGER VALUE возвращает целочисленное представление строки. Ев параметром является объект etrlng_expreeslon. содержащий значение строкового типа данных. Результатом выполнения функции является целое число, соответствующее представлению строки.

EXPRESS-слеииФикаиия

’)

ENTITY int_value_function SUPERTYPE OF (value_function):

END_ENTITY;

Г

Не<3>ормальное утверждение

IP1 — объект string_expression. который соответствует атрибуту operand, должен быть выражен строкой, представляющей собой целое число.

6.3.15 Объект numerlc_defined_function

Объект numeric_defined_function является функцией, областью значений которой является тип данных NUMBER по ИС010303-11.

EXPRESS-слеииФикаиия

*)

ENTITY numenc_defined_funclk)n

ABSTRACT SUPERTYPE OF (ONEOF (integer_defined_function.

real_defioed_funclion))

SUBTYPE OF (numeric_expression. definedjunction);

END_ENT!TY;

<*

6.3.16 Объект pius.expresslon

Объект plus.expression включаете себя семантикуоператора Vno ИС010303-11. относящуюся к типу данных NUMBER.

Примечание — Объект р!ив_ехргевв1оп является выражением, которое вычисляет сумму всех своих операндов. В (SOl3584_expreselone_echema все такие операнды должны быть выражены числами, относящимися к области числового типа данных.

17

ГОСТ Р ИСО 13584-20—2006

EXPRESS-спецификация

ENTITY plus_expression

SUBTYPE OF {multi ple_arityjrumeric_expression); END.ENTITY;

(*

6.3.17 Объект mlnue.expresslon

Объект minue.expression включает e себя семантику оператора no ИС0 10303-11. относящуюся к типу данных NUMBER.

Примечание — М1пиа_ехргевв1оп является выражением, которое вычисляет резкость своих операндов. В ISOl3584_expressions_ecttema все такие операнды должны быть выражены числами, относящимися к области числового типа данных.

EXPRESS-спецификация

ENTITY minus_expression

SUBTYPE OF {binary_numeric_express»on);

END_ENTITY;

Г

6.3.18 Объект mult_expression

Объект mult.expression включает в себя семантику оператора' ' no ИС010303*11. относящуюся к типу данных NUMBER.

Примечание — Объект тиК_ехргевв1оп является выражением, которое вычисляет произведение всех своих операндов. 8 ISOl3584_expreeelon«_scheme все такие операнды должны быть выражены числами, относящимися к области числового типа данных.

EXPRESS-спецификация

ENTITY mult_expression

SUBTYPE OF {multiple_arity_numeric_expression); END_ENTITY;

(*

6.3.19 Объект div_expre83lon

Объект dlv_expres8lon включает а себя семантику оператора языка EXPRESS ‘DIV no ИС0 10303-11. относящуюся к типу данных NUMBER.

Примечание — Объект dlv.expreaelon является выражением, которое вычисляет целое частное своих операндов. В IS013584_expreaetone_echema все такие операнды должны быть выражены числами, относящимися кобласти числового типе данных. Результатом является целое число.

EXPRESS-спецификация

ENTITY div_expression

SUBTYPE OF (binary_numeric_express*on);

END_ENTITY:

Г

18

Неформальное утверждение

IP1 — оценкой SELF\binary_generic_expre3slon.operands(2] не должен быть 0.

ГОСТ Р ИСО 13584-20—2006

6.3.20 Объект mod.expression

Объект mod_expresslon включает в себя семантику оператора языка EXPRESS 'MOO' по ИС0 10303-11. относящуюся к типу данных NUMBER.

Примечание — Объект mod.expreaelon является выражением, которое вычисляет значение первого аргумента по модулю значения второго аргумента. Егооперанды должны быть выражены числами, относящимися к области числового типе данных. Результатом является целое число.

EXPRESS-спецификация

•>

ENTITY mod_expression

SUBTYPE OF (binary numeric_expression);

ENO_ENTITY;

6.3.21 Объект slash.expression

Объект slaeh.expression включает в себя семантику оператора языка EXPRESS У по ИС0 10303-11. относящуюся ктипу данных NUMBER.

Примечание — Объект elaeh_expreseion является выражением, которое вычисляет вещественный результат деления первого аргумента на второй. Его операнды должны быть выражены числами, относящимися к области числового типа данных. Результатом является число.

EXPRESS-специФикаиия

’)

ENTITY slash_expression

SUBTYPE OF (binary_numeric expression);

ENO.ENTITY;

Г

НегЬормальное утверждение

IP1 — оценкой SELF\binary_generic_expresslon.operands(2) не должен быть 0.

6.3.22 Объект power.expression

Объект power_expression включает в себя семантику оператора языка EXPRESS V по ИС0 10303-11. относящуюся ктипу данных NUMBER.

Примечание — Объект power_expreeeion является выражением, которое вычисляет возведение первого аргумента в степень, определяемую значением второго операнда. Его операнды должны быть выражены числами. относящимися к области числового типа данных. Результатом является число.

EXPRESS-спецификация

•>

ENTITY power_expression

SUBTYPE OF (binary_numeric_expression);

END_ENTITY;

6.3.23 Объект unary_functlon_call

Объект unary_function_call является унарным оператором, относящимся ктипу данных NUMBER по ИС0 10303-11.

EXPRESS-специФикаиия

’)

ENTITY unary_funcUon_call

19

ГОСТ Р ИСО 13584-20—2006

ABSTRACT SUPERTYPE OF {ONEOF (abs Junction,

minusjunction.

sinjunction.

cosjunction.

tanjunction,

asinjunction.

acosjunction.

exp Junction,

log Junction.

Iog2_function,

Iog10_function.

square_rootJunction))

SUBTYPE OF (unary„numeric expression);

END_ENTITY;

(*

6.3.24 Объект binary Junction_call

Объект binaryJunction_call является бинарным оператором, относящимся к типу данных NUMBER по ИС0 10303-11.

EXPRESS-спецификация

*)

ENTITY binary Junction_call

ABSTRACT SUPERTYPE OF (ONEOF (atan Junction))

SUBTYPE OF (binary_numeric_expression);

END_ENTITY;

(*

6.3.25 Объект multiple_arityJunction_call

Объект multipte_arityJunction_call является оператором большой арности, относящимся к типу данных NUMBER по ИС0 10303-11.

EXPRESS-спецификация

*)

ENTITY multiple_arityJunction_call

ABSTRACT SUPERTYPE OF (ONEOF (maximum Junction.

minimum Junction))

SUBTYPE OF (multiple_arity_numeric_expression); END_ENTITY;

Г

6.3.26 Объект abs Junction

Объект abs Junction включает в себя семантику функции 'ABS' по ИСО 10303-11. относящуюся к типу данных NUMBER по ИС010303-11.

Примечание — Функция ABS возвращает абсолютное значение числа. Ее параметром является объект numeric_expreesion. содержащий значение числового типа данных. Результатом выполнения функции является абсолютное значение параметра, возвращаемый типдвнных идентичен типу данных параметра.

EXPRESS-спецификация

*)

ENTITY abs Junction

SUBTYPE OF (unary Junction call);

END_ENTITY;

(*

20

ГОСТ Р ИСО 13584-20—2006

6.3.27 Объект minus.function

Объект minus.function включает в себя семантику унарного оператора языка EXPRESS по ИС0 10303-11. относящуюся к типу данных NUMBER ло ИС010303-11.

Примечание — Функция MINUS возвращает инвертированное значение числе. Ее параметром является объект numerlc.expreeelon. содержащий значение числового типа данных. Результатом выполнения функции является инвертированное значение параметра. Возвращаемый тип данных идентичен типу данных параметра.

EXPRESS-слеииФикаиия

•>

ENTITY minus_function SUBTYPE OF (unary_function_ca1l); END_ENTITY:

Г

6.3.28 Объект sln.function

Объект sin.function включает в себя семантику функции языка EXPRESS 'SIN' по ИС0 10303-11.

Примечание — Функция SIN возвращает значение синуса угла. Ее параметром является объект numeric.expreealon. содержащий значение числового типа данных, представляющее собой угол, выраженный в радианах Результатом выполнения функции является синус параметра (-1.0 & результат & 1.0).

EXPRESS-спецификаиия

•>

ENTITY sin_function

SUBTYPE OF (unary_function_call);

END_ENTITY;

(*

6.3.29 Объект cos.functlon

Объект cos.function включает всебя семантикуфункции языка EXPRESS 'COS'no ИС010303-11.

Примечание — Функция COS возвращает значение косинуса угла. Ее параметром является объект numeric.expreeelon. содержащий значение числового типа данных, представляющее собой угол, выраженный е радианах. Результатом выполнения функции является косинус параметра (-1.0 s результат & 1.0).

EXPRESS-спецификаиия

•>

ENTITY cos_function SUBTYPE OF (unary_function_ca1l);

ENO.ENTITY;

{*

6.3.30 Объект tan.function

Объект tan_function включает всебя семантику функции языка EXPRESS TAN' по ИС010303-11.

Примечание — Функция TAN возвращает значение тангенса утла. Ее параметром является объект numerlc.expreselon. содержащий значение числового типа данных, представляющее собой угол, выраженный в радианах. Результатом выполнения функции является тангенс параметра.

EXPRESS-спецификаиия

’)

ENTITY tan_function SUBTYPE OF (unary_function_ca1l):

21

ГОСТ Р ИСО 13584-20—2006

END.ENTITY;

(*

6.3.31 Объект asln.function

Объект asin.functlon включает в себя семантику функции языка EXPRESS ’ASIN' по ИС0 10303-11.

Примечание — Функция ASIN возвращает угол, соответствующий заданному значению синуса. Ее параметром является объект numeric.expreeelon. содержащий значение числового типа данных, представляющее собой синус угла, выраженного в радианах. Результатом выполнения функции является угол, выраженный в радианах (-к/2 s результат s к/2). синус которого задан параметром.

EXPRESS-спешФикаиия

*)

ENTITY asin_funct*on

SUBTYPE OF (unary_function_call);

END_ENT1TY:

C

6.3.32 Объект acos.function

Объект acos_function включает в себя семантику функции языка EXPRESS 'ACOS' no ИС0 10303-11.

Примечание — Функция ACOS возвращает угол, соответствующий заданному значению косинуса. Ее параметром является объект numeric.expreeelon. содержащий значение числового типа данных, представляющее собой косинус угле, выраженного в радианах. Результатом выполнения функции является угол, выраженный в радианах (-я/2 s результат й я/2). косинус которого задан параметром.

EXPRESS-спецификация

ENTITY acos_function

SUBTYPE OF (unary_function call):

END_ENTITY;

(*

6.3.33 Объект exp.functlon

Объектехр_1ипсИопвключает в себя семантику функции языка EXPRESS'EXP'noHC010303-11.

Примечание — Функция ЕХР возвращает значение е (основание системы натуральных логарифмов), возведенное в степень, заданную значением параметра. Ее параметром является объект numerle.expreeeion. содержащий значение числового типа данных, представляющее значение параметра. Результатом выполнения функции является значение е, возведенное в степень, заданную значением параметра.

EXPRESS-спешФикаиия

*)

ENTITY exp_function

SUBTYPE OF (unary_function_call);

END_ENTITY;

(*

6.3.34 Объект iog.function

Объект log.functlon включает всебя семантику функции языка EXPRESS 'LOG'noHC0 10303-11.

Примечание — Функция LOG возвращает натуральный логарифм числе. Ее параметром является объект numerlc.expreaelon. содержащий значение числового типа данных, представляющее собой значение параметра. которое должно быть больше нуля. Результатом выполнения функции является вещественное число, которое является натуральным логарифмом значения параметра.

22

ГОСТ Р ИСО 13584-20—2006

EXPRESS-спецификация

•>

ENTITY log_function SUBTYPE OF (unary _function_ca1l);

ENO.ENTITY;

{*

6.3.35 Объект log2_function

Объект Iog2_function включает e себя семантику функции языка EXPRESS 'LOG2' no ИС0 10303*11.

Примечание — Функция LOG2 возвращает логарифм числа по основанию 2. Ее параметром является объект numeric_expreesion. содержащий значение числового типа данных, представляющее собой значение параметра, которое должно быть больше нуля. Результатом выполнения функции является вещественное число, которое является логарифмом по основанию 2 значения параметра.

EXPRESS-спецификация

’)

ENTITY Iog2_fu notion SUBTYPE OF (unary_function_ca1l);

END_ENTITY;

(*

6.3.36 Объект Iog10_function

Объект Iog10_functlon включает в себя семантику функции языка EXPRESS 'LOG10' по ИС0 10303*11.

Примечание — Функция LOG10 возвращает десятичный логарифм числа. Ее параметром является объект numeric.expreeelon. содержащий значение числового типа данных, представляющее собой значение параметра, которое должно быть больше нуля. Результатом выполнения функции является вещественное число, которое является десятичным логарифмом значения параметра.

EXPRESS-спецификация

•>

ENTITY log10_fu notion SUBTYPE OF (unary _function_ca1l):

END_ENT!TY;

(*

6.3.37 Объект square_root_functlon

Объект square_root_function включает в себя семантику функции языка EXPRESS 'SORT по ИС0 10303-11.

Примечание — Функция SORT (квадратный корень} возвращает неотрицательное значение квадратного корня числа. Ее параметром является объект numerlc.expreesion. содержащий значение числового типа данных. представляющее собой значение параметра, которое должно быть больше нуля. Результатом выполнения функции является неотрицательное вещественное число, которое является квадратным корнем значения параметра.

EXPRESS-спеииФикаиия

•>

ENTITY square_root_function SUBTYPE OF (unary_function_call); END_ENTITY;

23

ГОСТ Р ИСО 13584-20—2006

6.3.38 Объект atan.functlon

Объект atan.function включает в себя семантику функции языка EXPRESS 'ATAN' по ИС010303-11.

Примечание - Функция ATAN возвращает угол, соответствующий заданному значению тангенсе, представленного параметрами. Ее параметрами являются два объекта numeric.expreeelon. представляющие собой значение SELFlblnary_generic_expreeeion[1)/SELF/blnary_generlc_expreselon[2]. Результатом выполнения функции является угол, выраженный в радианах (-х/2 & результат £ х/2). тангенс которого задан параметрами. Если значением второго выражения, соответствующего SELF\binary_generlc_expreeelon{2) является 0. то результат равен -п/2 или п/2 в зависимости от знака SELF\blnary_generlc_expreseion[1).

EXPRESS-спвцификация

*)

ENTITY a?an_function SUBTYPE OF (binary funclion_ca1l);

END_ENTITY:

(‘

6.3.39 Объект maximum.functlon

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

EXPRESS-спецификация

ENTITY maximum_function

SUBTYPE OF (muTtiple_arity_function_call);

END_ENTITY;

(*

6.3.40 Объект minlrmim.function

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

EXPRESS-спешФикаиия

ENTITY minimum_function

SUBTYPE OF (muttiple_arity function_call);

END_ENTITY;

(*

6.3.41 Объект integer_defined_function

Объект integer_deflned_functlon представляет собой любую функцию, областью значений которой является тип данных INTEGER по ИС0 10303-11.

EXPRESS-спешФикаиия

*)

ENTITY integer_defined_function ABSTRACT SUPERTYPE SUBTYPE OF (numeric_defined_function): END.ENTITY:

(*

Неформальное утверждение

IP1 — подтипом объекта lnteger_deflned_functlon может быть либо объект generic.expression. либо такой подтип, который не содержит какой-либо объект generic_varlable

24

ГОСТ Р ИСО 13584-20—2006

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

6.3.42 Объект real_d«fined_functlon

Объект real_defined_function представляет собой любую функцию, областью значений которой является тип данных REAL по ИС0 10303-11.

EXPRESS-спецификация

•>

ENTITY real_defined Junction ABSTRACT SUPERTYPE SUBTYPE OF (numeric_defined Junction); END_ENTITY;

НегЬормальное утверждение

IP1 — подтипом объекта real_defined_functlon может быть либо объект generic_expresslon. либо такой подтип, который не содержит какой-либо объект generlc.variable.

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

6.4 Определения объектов булевых выражений

Объект boolean.expression представляет собой выражение, областью значений которого является тип данных BOOLEAN по ИС010303-11.

EXPRESS-спецификация

•>

ENTITY boolean_expression

ABSTRACT SUPERTYPE OF (ONEOF (simple_boolean_expression,

unary_boolean_expressiont binary _bootean_express*on. multiple_arity_boolean_expression. companson_expression, intervaJ_expression. bootean_defined Junction))

SUBTYPE OF (expression);

END_ENTITY;

Г

6.4.1 Объект simple_boolean_expresslon

Объект simple_boolean_expression представляет собой унарный оператор, областью значений которого является тип данных BOOLEAN по ИС0 10303-11.

EXPRESS-спецификация

•>

ENTITY simple_boolean_expression

ABSTRACT SUPERTYPE OF (ONEOF (boolean.literal.

bootean_variabie))

SUBTYPE OF (boolean_expression, simple_generic_expression); END_ENTITY;

(*

25

ГОСТ Р ИСО 13584-20—2006

6.4.2 Объект boolean Jlteral

Объект boolean .literal представляет собой литерал типа BOOLEAN языка EXPRESS.

Примечание — Областью значений типа данных 8оо!еап языка EXPRESS является набор, содержащий два литерала TRUE (истина) и FALSE (ложь).

EXPRESS-спешФикаиия

*)

ENTITY booleanjiteral

SUBTYPE OF (simple.boolean.expression. genericjiteral);

the value: BOOLEAN;

END.ENTITY;

Г

Определение атрибута

the value — значение литерала BOOLEAN.

6.4.3 Объект boolean.variable

Объект boolean.variable представляет собой переменную, которая обозначает булево значение. EXPRESS-спецификация

*)

ENTITY boolean.variable

SUBTYPE OF (simple.boolean.expression. variable);

END.ENTITY:

(*

6.4.4 Объект unary.boolean.expression

Объект unary.boolean.expression представляет собой унарный оператор, областью значений которого является тип данных BOOLEAN по ИС0 10303-11.

EXPRESS-спешФикаиия

*)

ENTITY unary.boolean.expression

ABSTRACT SUPERTYPE OF (ONEOF (not.expression. odd.function))

SUBTYPE OF (boolean.expression. unary .generic.expresston);

END.ENTITY;

(*

6.4.5 Объект not.expression

Объект not.expression включает в себя семантику отрицания 'NOT. применяемого к оператору булееого типа данных по ИС010303-11.

Примечание — Для оператора NOT требуется один булвеыйопервндиегорезультатомявляется булево значение.

EXPRESS-спецификация

*)

ENTITY not.expression

SUBTYPE OF (unary.boolean.expression);

SELFVunary.generic.expression.operand: boolean.expression;

END.ENTITY;

(*

Определение атрибута

SELFVunary.generic.expression.operand — выражение boolean.expression. которое представляет собой операнд оператора 'NOT'.

26

ГОСТ Р ИСО 13584-20—2006

6.4.6 Объект odd.function

Объект odd.function включает в себя семантику оператора языка EXPRESS 'ООО' по ИС0 10303*11.

Примечание — Функций ООО возвращает значение TRUE или FALSE в зависимости от того, является число нечетным или четным. Ее параметром является числовое выражение, значение которого принадлежит к целому типу данных. В качестве результата функция возвращает значение TRUE, если значение параметра по модулю 2 равно 1. и FALSE — в противном случае.

EXPRESS-спеиигЬикаиия

’)

ENTITY oddjunction

SUBTYPE OF (unary_boolean_6xpressk)n);

SELFVunary genenc_expression.operand: numeric_express»on; WHERE

WR1: is Jnt_expr(SELF\numer>c_expression):

END.ENTITY;

(*

Определение атрибута

SELF\unary_generlc_expresslon.operand — выражение numeric.expresslon. которое представляет собой операнд функции 'ODD'.

Формальное утверждение

WR1 — операнд представляет собой выражение numerlc.expression. областью значений которого является тип данных INTEGER языка EXPRESS.

6.4.7 Объект binary_boolean_expression

Объект binary_boolean_expresslon представляет собой бинарный оператор, областью значений которого является тип данных BOOLEAN языка EXPRESS по ИС0 10303-11.

EXPRESS-спеииФикаиия

•>

ENTITY binary_boolean_expression

ABSTRACT SUPERTYPE OF (ONEOF (xor_expression. equals_expression))

SUBTYPE OF (boolean_expression. binary generic_expression);

END_ENTITY;

(*

6.4.8    Объект muttIple_artty_boolean_expresslon

Объект multiple_arity_booiean_expression представляет собой оператор большой арности, областью значений которого является тип данных BOOLEAN языка EXPRESS по ИС0 10303-11.

EXPRESS-спецификация

*>

ENTITY multiple_arity_boolean_expression

ABSTRACT SUPERTYPE OF (ONEOF (and_expression, or_expression))

SUBTYPE OF (boolean_expression. rnultjpte_arity_g6neric_expresston); SELRmultiple_arity_generic_expression.operands:

LIST (2:?] OF boolean_expression;

END_ENTITY;

Г

Определение атрибута

operands — экземпляры объекта boolean_expression. которые представляют собой параметры оператора большой арности.

6.4.9    Объектхог_ехргезв1оп

Объект xor.expression включает в себя семантику оператора 'XOR' по ИС010303-11.

27

ГОСТ Р ИСО 13584-20—2006

Примечание — Для оператора XOR требуются два булевых операнда и он вычисляет булево значение, которое является исключающей дизъюнкцией двух операндов.

EXPRESS-спецификация

*)

ENTITY xor_expression

SUBTYPE OF (binary_boolean_express»on);

SELF\btnary_generic_expression.operands:

LIST [2:2] OF boolean_expression;

END_ENTITY;

(*

Определение атрибута

operands — два операнда boolean.expression оператора XOR. которые должны представлять собой булевы выражения.

6.4.10 Объект equale.expression

Объект equals.expresslon включает в себя семантику оператора равенства экземпляров ’ по ИС0 10303-11, областью значений которого являются объекты типа данных generic.expression.

Примечание — Оператор равенства экземпляров сравнивает значения двух экземпляров типа generlc.expreselon. и результатом сравнения является булево значение. В контексте схемы lSO_l3$84_expre»eione_echema дев значения экземпляров типа generlc.expreeelon являются сравнимыми, если их типы данных совпадают либо если один тип данных является подтипом второго.

EXPRESS-спецификация

ENTITY equals_expression

SUBTYPE OF (binary_boolean_expresston);

END_ENTITY;

(*

6.4.11 Объект and.expression

Объект and.expression включает в себя семантику оператора 'AND' по ИСО 10303-11 и использует свойство ассоциативности для работы с большой арностью.

Примечание — Для оператора AND требуются, по крайней мере, два булевых выражения и он вычисляет булево значение, которое является конъюнкцией двух операндов.

EXPRESS-спецификация

*)

ENTITY and_expression

SUBTYPE OF (multiple_arity_boolean_expression); END_ENTITY;

(*

6.4.12 Объект or.expresslon

Объект or_expresslon включаете себя семантику оператора 'OR'по ИСО 10303-11 и использует свойство ассоциативности для работы с большой арностью.

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

EXPRESS-спвшФикация

*)

ENTITY or_expression

28

ГОСТ Р ИСО 13584-20—2006

SUBTYPE OF (multi ple.arity_boo!ean_expression); ENO_ENTITY;

6.4.13    Объект comparison.expression

Объект comparieon.expression включает в себя семантику операторов сравнения различных значений по ИСО 10303-11. которые ограничены типами данных NUMBER. BOOLEAN и STRING языка EXPRESS. Оба операнда должны иметь один и тот же тип данных.

EXPRESS-спеииФикаиия

*>

ENTITY comparison.expression

ABSTRACT SUPERTYPE OF (ONEOF (comparison.equal,

comparison.greater,

comparison_greater_equal.

comparisonjess.

comparison Jess.equal,

comparison_not_equal.

like.expression))

SUBTYPE OF (boolean.expression. binary _generic_expression);

SELRbinary_generic_expression.operands: LIST (2:2) OF expression;

WHERE

WR1: ((' IS013584_EXPRESS10NS_SCHEMA.NUMERIC_EXPRESSI0N'

IN TYPEOF (SELFVbinary_generic_expression.operands(1]))

AND

'IS013584_EXPRESSI0NS_SCHEMA.NUMERIC_EXPRESSI0N'

IN TYPEOF (SELF\binary_generic expression.operart<js[2)))

OR

((‘ IS013584_EXPRESSIONS_SCHEMA.BOOLEAN_EXPRESSION'

IN TYPEOF (SELF\binary_generic_expression.operarKis[1)))

AND

{• IS013584_EXPRESSI0NS_SCHEMA.B00LEAN_EXPRESSI0N'

IN TYPEOF (SELF\binary_generic_expression.operands[2])))

OR

((' IS013584_EXPRESSIONS_SCHEMA.STRING_EXPRESSION'

IN TYPEOF (SELF\binary_generic_expression.operands{1)))

AND

{' IS013584_EXPRESSI0NS_SCHEMA.STRING_EXPRESSI0N'

IN TYPEOF (SELRbinary.generic expression.operands(2])));

END.ENTITY;

(*

Определение атрибута

operands — список объектов generic.ex press Ions. содержащий выражения, подлежащие сравнению.

Формальное утверждение

WR1 — операнды comparison.expression должны быть совместимыми по типу.

6.4.14    Объект comparlson.equal

Объект comparison.equal включает в себя семантику оператора равенства значений (-') по ИС010303-11. ограниченного типами данных NUMBER. BOOLEAN и STRING языка EXPRESS. Оба операнда должны иметь один и тот же тип данных.

EXPRESS-слецификация

•>

29

ГОСТ Р ИСО 13584-20—2006

ENTITY comparison_equal SUBTYPE OF (companson_expression);

END_ENTITY;

(‘

Примечание — Объект comparleon_equal имеет значение TRUE, если оба операнда имеют одно и то же значение.

6.4.15 Comparlson_greater

Объект comparison.greater включает в себя семантику оператора ’>' (больше чем) по ИС010303-11. ограниченного типами данных NUMBER. BOOLEAN и STRING языка EXPRESS. Оба операнда должны иметь один и тот же тип данных.

Примечание — Объект comparleon.greater имеет значение TRUE, если значение первого операнда больше, чем значение второго операнда. Соответствующими порядками старшинства являются:

•    математическое упорядочение вещественных чисел:

- FALSE < TRUE;

•    лексикографический порядок в строках.

EXPRESS-спецификация

*)

ENTITY comparison_greater SUBTYPE OF (c©mparison_expression); END_ENTITY;

Г

6.4.16 Объект comparison_greater_equai

Объект comparison_greater_equal включает в себя семантику оператора '>=’ (больше или равно) по ИСО 10303-11. ограниченного типами данных NUMBER, BOOLEAN и STRING языка EXPRESS. Оба операнда должны иметь один и тот же тип данных.

Примечание — Объект comparieon_greater_equal имеет значение TRUE, если значение первого операнда больше или равно значению второго операнда. Соответствующими порядками старшинства являются:

-    математическое упорядочение вещественных чисел;

-    FALSE < TRUE;

-    лексикографический порядок в строках.

EXPRESS-спеииФикаиия

*)

ENTITY comparison_greater_equal SUBTYPE OF (oomparison_expression); END_ENTITY;

(*

6.4.17 Объект comparison Jess

Объект comparison Jess включаете себя семантику оператора *<* (меньше чем) по ИС010303-11, ограниченного типами данных NUMBER. BOOLEAN и STRING языка EXPRESS. Оба операнда должны иметь один и тот же тип данных.

Примечание — Объект comparison Jeee имеет значение TRUE, если первый операнд имеет меньшее значение, чем второй операнд. Соответствующими порядками старшинства являются:

•    математическое упорядочение вещественных чисел:

- FALSE < TRUE:

•    лексикографический порядок а строках.

EXPRESS-спвшФикация

ENTITY comparisonjess

30

ГОСТ Р ИСО 13584-20—2006

SUBTYPE OF (comparison.expression); ENO_ENTITY;

6.4.18 Объект comparlsonjess.equal

Объект compari3on_less_equal включает в себя семантику оператора языка EXPRESS'<='(меньше или равно) по ИСО 10303-11. ограниченного типами данных NUMBER. BOOLEAN и STRING языка EXPRESS. Оба операнда должны иметь один и тот же тип данных.

Примечание — Объект eompart»on_lese_equel имеет значение TRUE, если значение первого операнда меньше или равно значению второго операнда. Соответствующими порядками старшинства являются:

•    математическое упорядочение вещественных чисел:

- FALSE < TRUE:

•    лексикографический порядок в строках.

EXPRESS-спецификация

•>

ENTITY comparison_less_equal SUBTYPE OF (comparison.expression); END.ENTITY;

Г

6.4.19 Объект comparison_not_equal

Объект comparison_not_equal включает в себя семантику оператора '< >' (значения не равны) по ИС0 10303-11. ограниченного типами данных NUMBER. BOOLEAN и STRING языка EXPRESS. Оба операнда должны иметь один и тот же тип данных.

Примечание — Объектсотраг180п_пот_едиа1имеетэначение TRUE, если первый операнд имеет значение. отличающееся от значения второго операнда. Соответствующими порядками старшинства являются:

•    математическое упорядочение вещественных чисел;

-FALSE «TRUE:

•    лексикографический порядок в строках.

EXPRESS-спецификация

’)

ENTITY comparison.not.equal SUBTYPE OF (comparison.expression);

ENO_ENTITY;

(*

6.4.20 Объект like.expresslon

Объект like.expresslon включает в себя семантику оператора соответствия строк LIKE по ИСО 10303-11. Первый операнд является целевой строкой; второй операнд — образцовой строкой. Специальные символы (часто называемые безразличными символами (wild cards)) вобразцовой строке определены в ИС0 10303-11.

EXPRESS-спецификация

’)

ENTITY like.expression

SUBTYPE OF (comparison expression);

WHERE

WR1: (’IS013584_EXPRESSI0NS_SCHEMA.STRING_EXPRESSI0N' IN TYPEOF (SELRcomparison expression.operands(l))) AND ('IS013584_EXPRESSI0NS_SCHEMA.STRING_EXPRESSI0N' IN TYPEOF (SELF\comparison_expression.operands(2)));

31

ГОСТ Р ИСО 13584-20—2006

END.ENTITY;

(*

Формальное утверждение

WR1 — слисок операндов должен содержать два выражения generlc.expresslon, которые являются выражениями типа string_expression.

6.4.21 Объект interval.expresslon

Объект intervai.expression включает в себя семантику выражения интервала по ИСО 10303-11, ограниченного типами данных NUMBER. BOOLEAN и STRING языка EXPRESS. Оба операнда должны иметь один и тот же тип данных.

Примечание — Выражение intervat.expreseion проверяет, находится или нет значение в пределах заданного интервале. Оно принимает значение TRUE, если IntervaMow <■ Intervaljtem <« lnterval_hlgh. Соответствующими порядками старшинства являются:

- математическое упорядочение вещественных чисел:

• лексикографический порядок в строках.

EXPRESS-спецификация

ENTITY interval_expression

SUBTYPE OF (boolean_expression. multiple_arity_generic_expression);

DERIVE

interval Jow: generic_expression

: = SELRmultiple_arity_generic_expression.operands[1]; intervalJtem:generic_expression

: = SELRfnullipl6_arity_generic_expression.operai>ds(21: interval Jr igh:gen6ric_expression

: = SELRmultipl6_arity_genefic_expfession.op6fands[3];

WHERE

WR1:('IS013584_EXPRESSI0NS_SCHEMA.EXPRESSI0N'

IN TYPEOF (interval Jow))

AND {'IS013584_EXPRESSI0NS_SCHEMA.EXPRESSI0N'

IN TYPEOF (intervaljtem))

AND ('IS013584_EXPRESSIONS_SCHEMA.EXPRESSION'

IN TYPEOF (interval_high));

WR2: ({'IS013584_EXPRESSI0NS_SCHEMA.STRING_EXPRESSI0N'

IN TYPEOF (SELF.intervalJow))

AND ('IS013584_EXPRESSI0NS_SCHEMA.STRING_EXPRESSI0N'

IN TYPEOF (SELF.interval_high))

AND('IS013584_EXPRESSI0NS_SCHEMA.STRING_EXPRESSI0N'

IN TYPEOF (SELF.intervalJtem)))

OR

{(,IS013584_EXPRESSI0NS_SCHEMA.STRING_EXPRESSI0N'

IN TYPEOF (SELF.interval low))

AND(4S013584_EXPRESSI0NS_SCHEMA.NUMERIC_EXPRESSI0N'

IN TYPEOF (SELF.intervalJtem))

AND (4S013584_EXPRESSIONS_SCHEMANUMERIC_EXPRESSION'

IN TYPEOF (SELF.interval_high)));

END_ENTITY;

(*

Определения атрибутов

Interval Jow — операнд. задающий нижнюю границу (bound_1) интервального выражения (пункт 12.2.4 ИС0 10303-11);

Interval.high—операнд, задающий верхнюю границу (bound_2) интервального выражения (пункт 12.2.4 ИС0 10303-11);

intervaljtem — операнд intervaljtem интервального выражения (пункт 12.2.4 ИС0 10303-11).

32

ГОСТ Р ИСО 13584-20—2006

Формальные утверждения

WR1 — операнды должны иметь тип данных expression.

WR2 — типы сравниваемых в Interval.expresslon выражений должны быть выражены в сравнимых выражениях.

6.4.22 Объект bootean_defined_function

Объект boo!ean_defined_functlon представляет собой любой оператор, определенный в прикладной программе, областью значений которого является тип данных BOOLEAN по ИС0 10303-11.

EXPRESS-спеииФикация

')

ENTITY boolean_defined Junction ABSTRACT SUPERTYPE

SUBTYPE OF (defined_function. boolean expression); ENO_ENTITY;

Неформальное утверждение

IP1 — подтипом объекта boolean_defined_functlon может быть либо объект generic.expression. либо такой объект, который не содержит ни одного объекта generic.variable.

6.5 Определения объектов строковых выражений

Объект string.expresslon представляет собой выражение, областью значений которого является тип данных STRING языка EXPRESS по ИС0 10303-11.

EXPRESS-спецификаиия

’)

ENTITY string_expression

ABSTRACT SUPERTYPE OF (ONEOF (simple_string_express*on.

index.expression.

substring_expression.

concat_expressk>n.

formatjunction.

slring_defined_function))

SUBTYPE OF (expression);

END_ENT!TY;

Г

6.5.1    Объект slmple_strlng_expression

Объект simple_str1ng_expression представляет собой унарный оператор, областью значений которого является тип данных STRING языка EXPRESS по ИС0 10303-11.

EXPRESS-спецификаиия

*)

ENTITY simpte_string_expression

ABSTRACT SUPERTYPE OF (ONEOF (stringjiteral.

string_variable))

SUBTYPE OF (string_expression. simple_generic expression);

ENO_ENTITY;

Г

6.5.2    Объект stringjiteral

Объект stringjiteral представляет собой литерал типа STRING языка EXPRESS.

Примечание — Областью значений типа данных STRING языка EXPRESS являются последовательности символов.

33

ГОСТ Р ИСО 13584-20—2006

EXPRESS-спецификация

ENTITY string_literal

SUBTYPE OF7simple_stiing_expfession. genericjiteral);

the_value: STRING;

END_ENTITY;

(*

Определение атрибута

the_value — значение литерала STRING.

6.5.3 Объект string.varlable

Объект string.variable представляет собой переменную, которая обозначает значение типа STRING.

EXPRESS-спецификация

*)

ENTITY string_variable

SUBTYPE OF (simpl6_string_expression. variable);

END.ENTITY;

(*

6.5.4 Объект Index.expresslon

Объект index.expression включает в себя семантику оператора индексирования строки (Q) по ИС0 10303-11.

Применение — У строкового операторе lndex_expresslon есть два операнде: строковое значение (представленное атрибутом operand) индексируется значением индекса {представленного атрибутом Index). Результирующее строковое значение представляет собой символ, расположенный на позиции, определяемой значением атрибута Index.

EXPRESS-спецификация

*)

ENTITY index_expression

SUBTYPE OF (string_expression, binary_generic_expression);

DERIVE

operand: generic_expression:=

SELF\binafy_generic_expression.operands[1);

index :gene ric_expression:=

SELF\binary_generic_expression.operands[2);

WHERE

WR1: ('IS013584_EXPRESSI0NS_SCHEMA.STRING_EXPRESSI0N'

IN TYPEOF(operand))

AND('IS013584_EXPRESSI0NS_SCHEMA.NUMERIC_EXPRESSI0N'

IN TYPEOF(index));

WR2: isjnt_expr (index);

END.ENTITY;

(*

Определения атрибутов

operand — объект strlng.expresslon, который представляет литерал STRING;

index — целочисленное выражение numeric.expression, которое показывает значение индекса.

Формальные утверждения

WR1 — первый операнд должен быть объектом string.expression. а второй операнд — объектом mimeric_expression.

WR2 — позиция, определяемая операндом Index, должна иметь целое значение.

34

ГОСТ Р ИСО 13584-20—2006

Неформальное утверждение

IP1 — операнд index должен иметь значение типа INTEGER, которые больше нуля и меньше или равно длине строки, заданной операндом STRING.

6.5.5 Объект substrlng.expression

Объект substring.expression включает в себя семантику оператора индексирования подстроки «:]) по ИС0 10303-11.

Примечание — У строкового оператора eubetring.expreesion есть три операнда: строковое значение {представленное атрибутом operand) индексируется значением индекса (предстаепенного атрибутами Indexl и Index2). Оператор subetring_expreeslon вычисляет строковое значение длиной {Index2 — Indexl ♦ 1). В результате строковое значение эквивалентно последовательности символов, расположенных с позиции Indexl по позицию Index2.

EXPRESS-слвцификация

•>

ENTITY substring_expression

SUBTYPE OF (string_expression. multiple_arity_generic_expression);

DERIVE

operand:generic_expression:=

SELRmuttiple_arity_generic_expression.operands[1]; indexl :generic_expression:=

SELRmultiple_anty_generic_expression.operands{2};

index2:generic_expression:=

SELRmultiple_arily_generic_expression.operands(3);

WHERE

WR1: (1S013584_EXPRESSIONS_SCHEMA.STRING EXPRESSION*

IN TYPEOF(operand))

AND('IS013584_EXPRESSI0NS_SCHEMA.NUMERIC_EXPRESSI0N*

IN TYPEOF(index1»

AND (*ISOI3584_EXPRESSIONS SCHEMA.NUMER»C_EXPRESSION*

IN TYPEOF{index2));

WR2: SI2EOF (SELRmultiple_arity_generic_expression.opera r»ds}=3; WR3: is_int_expr (indexl);

WR4: is Jnt_expr (index2);

END_ENTITY;

Г

Определения атрибутов

operand — объект string_expression, из которого выделяется подстрока;

indexl — объект numerlc_expres8ion, который показывает нижнюю границу подстроки в operand;

Index2 — объект numerlc.expression, который показывает верхнюю границу подстроки в operand.

Формальные утверждения

WR1 — операнд должен быть объектом string_expression. indexl и Index2 должны быть объектами numeric.expression.

WR2 — список операндов объекта substring.expression должен содержать три элемента.

WR3 — операнд Indexl должен иметь значение типа INTEGER.

WR3 — операнд index2 должен иметь значение типа INTEGER.

Неформальные утверждения

IP1 — операнды indexl и index2 должны иметь значения типа INTEGER, которые больше нуля и меньше или равны длине строки, заданной операндом STRING.

IP2 — значение Indexl должно быть меньше или равно значению index2.

6.5.6 Объект concat.expression

Объект concat.expression включает в себя семантику оператора конкатенации (+) по ИС0 10303-11, относящуюся к типу данных STRING.

35

ГОСТ Р ИСО 13584-20—2006

Примечание — У операторе concat_expree$tor> есть, по крайней мере, два операнда типа atrine_expreaalon. Он вычисляет строковое значение, являющееся результатом конкатенации всех элементов списка SELFlmulOple_arlty_generlc_expresslon.operande. Конкатенация этих элементов осуществляется в порядке их расположения в списке.

EXPRESS-спвцификация

*)

ENTITY concat_expression

SUBTYPE OF {string_expression, multipte_anty_generic_expresston); SELF\multiple_arity_generic_expression.operands:

LIST [2: ?) OF string_expression;

END_ENTITY;

(‘

Определение атрибута

SELF\multiple_arUy_generic_expresslon.operands — выражения типа strlng.expression, которые подлежат конкатенации.

6.5.7 Объект format.functlon

Объект format.function включает в себя семантику функции FORMAT по ИС010303-11.

Примечание — Функция format.functlon возвращает отформатированное строковое представление числа. Ее параметрами являются: numeric.expreaeion. соответствующее операнду value_to_format. которое выражается в виде вещественного или целого числа, и etring.expreesion. соответствующее операнду format.etrlng. которое выражается в виде строки, содержащей команды форматирования. Результатом функции является строковое представление значения операнда vaiue_to_format. соответствующее значению операнда format_etrlng. Строка форматирования содержит специальные символы, которые указывают, какой формат должен быть у результата. Различные способы описания строки форматирования установлены а ИСО 10303-11.

EXPRESS-спвцификация

*)

ENTITY format_function

SUBTYPE OF (string_expression. binary_generic_expression);

OERIVE

value_to_format: generic_expression:=

SELF\binary_generic_expression.operands{1); format_stnng:generic_ expressions

SELFVbinary_generic_expression.operands[2);

WHERE

WR1: ({'IS013584_EXPRESSI0NS_SCHEMA.NUMERIC_EXPRESSI0N')

IN TYPEOF(value_to_format)>

AND{('IS013584_EXPRESSI0NS_SCHEMA.STRING_EXPRESSI0N')

IN TYPEOF(format_string));

END_ENTITY;

Г

Определения атрибутов

value_to_format — объект numeric_expression, который должен быть отформатирован; format.strlng — команды форматирования, которые определяют вид результата.

Формальное утверждение

WR1 — операнд value_to_format должен принадлежать к типу numerlc.expresslon. а операнд format.string — к типу strlng.expression.

6.5.8 Объект string_deflned_function

Объект string_deflned_functlon представляет собой любой оператор, определенный в прикладной программе, областью значений которого является тип данных STRING по ИС0 10303-11.

EXPRESS-спеииФикаиия

*)

ENTITY string_defined_function

36

ГОСТ Р ИСО 13584-20—2006

ABSTRACT SUPERTYPE

SUBTYPE OF (defined Junction. string_expression);

END_ENTITY;

Неформальное утверждение

IP1 — подтип объекта string_defined_function может быть либо объектом gener1c_expres8lon. либо он не должен содержать ни одного объекта generic_varlable

6.6 Функции для определения свойств выражения

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

6.6.1 Функция isjnt.expr

Функция ie_lnt_expr проверяет, является ли результатом синтаксически правильного выражения целочисленное значение или нет.

EXPRESS-слецификация

•>

FUNCTION isjnt_expr(arg: numeric_expression): BOOLEAN;

LOCAL

i: INTEGER;

END_LOCAL;

IF 'IS013584_EXPRESSI0NS_SCHEMA.INTJ_ITERAL' IN TYPEOF(arg)

THEN

RETURN (TRUE);

ENOJF:

IF ‘IS013584 EXPRESSIONS_SCHEMA.REAL_LITERAL' IN TYPEOF(arg)

THEN

RETURN {FALSE);

ENDJF;

IF'IS013584 EXPRESSIONS SCHEMA.INT_NUMERIC_VARIABLE‘ IN TYPEOF(arg) THEN

RETURN (TRUE);

ENOJF;

IF ‘IS013584_EXPRESSI0NS_SCHEMA.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN

RETURN {FALSE);

ENDJF;

IF 'IS013584_EXPRESSI0NS_SCHEMA.ABS_FUNCTI0N' IN TYPEOF(arg)

THEN

RETURN {»sJnl_expr{arg\unary_numeric_expression.operand));

END IF;

IF 'IS013584_EXPRESSIONS_SCHEMA.MINUS_FUNCTION' IN TYPEOF{arg)

THEN

RETURN {»s Jnt_expr(arg\unary_numeric expression.operand));

ENDJF;

IF ('IS013584_EXPRESSI0NS SCHEMA.SIN_FUNCTION' IN TYPEOF (arg))

OR ('IS013584_EXPRESSI0NS_SCHEMA.C0S_FUNCTI0N' IN TYPEOF(arg)) 0R(‘IS013584_EXPRESSI0NS_SCHEMA.TAN_FUNCTI0N' IN TYPEOF(arg))

OR ('IS013584_EXPRESSI0NS_SCHEMA.ASIN_FUNCTI0N' IN TYPEOF(arg)) OR('IS013584_EXPRESSIONS_SCHEMA.ACOS_FUNCTION' INTYPEOF{arg)) OR ('IS013584_EXPRESSI0NS SCHEMA.ATAN_FUNCTION' IN TYPEOF(arg)) 0R('IS013584_EXPRESSI0NS_SCHEMA.EXP_FUNCTI0N, IN TYPEOF(arg))

OR (US013584_EXPRESSIONS_SCHEMA.LOG_FUNCTION' IN TYPEOF(arg))

37

ГОСТ Р ИСО 13584-20—2006

OR 0ISO13584_EXPRESSIONS_SCHEMA.LOG2_FUNCTION’ IN TYPEOF(arg)) OR (,ISO13584_EXPRESSIONS_SCHEMA.LOG10_FUNCTlON1 IN TYPEOF(arg)) OR {'IS013584_EXPRESSI0NS_SCHEMA.SQUARE_R00T_FUNCTI0N'

IN TYPEOF (arg))

THEN

RETURN (FALSE);

ENDJF;

IF (4S013584_EXPRESSIONS_SCHEMA.PLUS_EXPRESSION’ IN TYPEOF(arg))

OR ('IS013584_EXPRESSIONS_SCHEMA.MULT_EXPRESSION'

INTYPEOF(arg))

OR (*IS013584_EXPRESSI0NS_SCHEMA.MAXIMUM_FUNCTI0N'

INTYPEOF(arg))

OR ('IS013584_EXPRESSI0NS SCHEMA.MINIMUM_FUNCTION'

INTYPEOF(arg))

THEN

REPEAT i;=1 TOSIZEOF{

arg\multiple_arityjujm6ric_expression.operands);

IF NOT

isjnt_expr(arg\rr»ultiple_arity_numeric_expfession.operands(i])

THEN

RETURN (FALSE):

ENDJF;

END_REPEAT;

RETURN (TRUE);

ENDJF;

IF ('IS013584_EXPRESSI0NS_SCHEMA.MINUS_EXPRESSI0N' IN TYPEOF(arg))

OR ('IS013584_EXPRESSI0NS_SCHEMA.P0WER_EXPRESSI0N'

IN TYPEOF(arg))

THEN

RETURN (isJnt_expr(arg\binary_nurrveric_expression.operands(1))

AND is int_expr(arg\binary numeric expresston.operands(2}));

ENDJF;

IF {'IS013584_EXPRESSI0NS_SCHEMA.DIV_EXPRESSI0N' IN TYPEOF(arg))

OR ('ISO13584_EXPRESSIONS_SCHEMA.MOD_EXPRESSI0N' IN TYPEOF(arg)) THEN

RETURN (TRUE); (’всегда выдает результат типа INTEGER*)

ENDJF;

IF’IS013584 EXPRESSIONS SCHEMA.SLASH_EXPRESSION' IN TYPEOF(arg)

THEN

RETURN (FALSE);    ('всегда выдает результат типа REAL*)

ENDJF;

IF 'IS013584_EXPRESSI0NS_SCHEMA.LENGTH_FUNCTI0N' IN TYPEOF(arg)

THEN

RETURN (TRUE);

ENDJF;

IF'IS013584_EXPRESSI0NS_SCHEMA.VALUE_FUNCTI0N'INTYPEOF(arg)

THEN

IF ’IS013584_EXPRESSI0NS_SCHEMA.INT VALUE_FUNCTION'

IN TYPEOF(arg)

THEN

RETURN (TRUE);

ELSE

RETURN (FALSE);

ENDJF;

ENDJF;

IF ’IS013584_EXPRESSIONS SCHEMA.INTEGER_DEFINED_FUNCTION'

INTYPEOF(arg)

THEN

3B

ГОСТ Р ИСО 13584-20—2006

RETURN (TRUE);

ENDJF:

IF‘IS013584_EXPRESSI0NS_SCHEMA.REAL_DEFINED_FUNCTl0N'INTYPE0F(arg)

THEN

RETURN (FALSE);

ENDJF;

IF 'IS013584_EXPRESSI0NS_SCHEMA.800LEAN_DEFINED_FUNCTI0N'

IN TYPEOF(arg)

THEN

RETURN (FALSE);

ENDJF:

IF 'IS013584_EXPRESSI0NS SCHEMA.STRING_DEFlNED_FUNCTION'

IN TYPEOF(arg)

THEN

RETURN (FALSE);

ENDJF;

(* Если встречается другое generic_expression. которое не является подтипом integer jlefmed Junction, то его результат не является целым числом *)

RETURN (FALSE);

END FUNCTION; ~isjnt_expr

Г

6.6.2 Функция is_SQL_mappable

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

EXPRESS-специФикаиия

•>

FUNCTION is_SQL_mappable (arg: expression); BOOLEAN.

LOCAL

i: INTEGER;

END_LOCAL;

IF'IS013584_EXPRESSI0NS_SCHEMA.SIMPLE_NUMERIC_EXPRESSI0N'

IN TYPEOF(arg)

THEN

RETURN (TRUE);

ENDJF;

IF'IS013584_EXPRESSI0NS_SCHEMA.SQL_MAPPABLE_DEFINED_FUNCTI0N'

INTYPEOF(arg)

THEN

RETURN (TRUE);

ENDJF;

IF ,IS013584_EXPRESSIONS_SCHEMA.MINUS_FUNCTION' IN TYPEOF(arg)

THEN

RETURN (is_SQL_mappabte(arg\unary numeric_expression.operand));

ENDJF;

IF (TS013584_EXPRESSI0NS_SCHEMA.ABS FUNCTION'INTYPEOF(arg))

0R('IS013584_EXPRESSI0NS_SCHEMA.SIN_FUNCTI0N'INTYPE0F(arg)) OR (US013584_EXPRESSIONS_SCHEMA.COS_FUNCTION' IN TYPEOF(arg)) 0R('IS013584_EXPRESSI0NS_SCHEMA.TAN_FUNCTI0N' IN TYPEOF(arg)) 0R('IS013584_EXPRESSI0NS_SCHEMA.ASIN_FUNCTI0N' IN TYPEOF(arg)) ORCIS013584_EXPRESSIONS_SCHEMA.ACOS_FUNCTION' INTYPEOF(arg)) 0RC1S013584 EXPRESSIONS_SCHEMA.ATAN_FUNCTION'INTYPEOF(arg)) OR ('IS013584_EXPRESSIONS_SCHEMA.EXP FUNCTION' IN TYPEOF(arg))

39

ГОСТ Р ИСО 13584-20—2006

OR ('ISO13584_EXPRESSIONS_SCHEMA.L0G_FUNCTION' IN TYPEOF(arg))

OR ('ISO13584_EXPRESSIONS_SCHEMA.L0G2_FUNCTI0N' IN TYPEOF(arg))

OR ('ISO13584_EXPRESSIONS_SCHEMA.LOG10_FUNCTION' IN TYPEOF(arg)) OR {'ISO13584_EXPRESSIONS_SCHEMA.SQUARE_RO0T FUNCTION'

IN TYPEOF(arg))

OR {'IS013584_EXPRESSI0NS_SCHEMA.VALUE_FUNCTI0N* IN TYPEOF(arg)) OR ('IS013584_EXPRESSlONS_SCHEMA.LENGTH_FUNCTION'

IN TYPEOF(arg))

THEN

RETURN (FALSE);

ENDJF;

IF ('IS013584_EXPRESSIONS_SCHEMA.PLUS_EXPRESSION‘ IN TYPEOF(arg))

OR ('IS013584_EXPRESSI0NS_SCHEMA.MULT_EXPRESSI0N' IN TYPEOF(arg)) OR ('IS013584_EXPRESSI0NS_SCHEMA.MAXIMUM_FUNCTI0N'

INTYPEOF(arg))

OR {'IS0135e4_EXPRESSI0NS_SCHEMA.MINIMUM_FUNCTI0N'

IN TYPEOF(arg))

THEN

REPEAT i:=1 TO SIZEOF{

arg\muttiple_arity_numeric_expression.operands);

IF NOT is_SQLjnappable(

arg\multiple_arity_numertc_expression.operands(i))

THEN

RETURN (FALSE);

ENDJF;

END_REPEAT;

RETURN (TRUE);

ENDJF;

IF ('IS013584_EXPRESSIONS_SCHEMA.MINUS_EXPRESSION' IN TYPEOF(arg)) 0R('IS013584_EXPRESSI0NS_SCHEMA.SLASH_EXPRESSI0N' IN

TYPEOF(arg))

THEN

RETURN (is_SQL_mappable(

arg\binary_numeric_expression.operands[1))

ANDis_SQLjnappable(arg\binaryj>umeric_express»on.operands{2)));

ENDJF;

IF ('IS013584_EXPRESSIONS_SCHEMA.DIV_EXPRESSION' IN TYPEOF(arg))

OR ('IS013584_EXPRESSI0NS_SCHEMA.M0D_EXPRESSI0N' IN TYPEOF(arg)) OR ('IS0135e4_EXPRESSI0NS_SCHEMA.P0WER_EXPRESSI0N'

IN TYPEOF(arg))

THEN

RETURN (FALSE);    (* операторы, не поддерживаемые в языке SOL *)

ENDJF;

IF 'IS013584_EXPRESSIONS SCHEMA.SlMPLE_BOOLEAN EXPRESSION'

INTYPEOF(arg)

THEN

RETURN (TRUE);

ENDJF;

IF 'IS013584_EXPRESSIONS_SCHEMA.NOT_EXPRESSION' IN TYPEOF(arg)

THEN

RETURN (is SQL jnappable (arg\UNARY GENERIC_EXPRESSION.OPERAND)); ENDJF;

IF ('IS013584_EXPRESSI0NS SCHEMA.ODD_FUNCTION' IN TYPEOF(arg)) 0R('IS013584_EXPRESSI0NS_SCHEMA.X0R_EXPRESSI0N'

INTYPEOF(arg))

THEN

RETURN (FALSE);

40

ГОСТ Р ИСО 13584-20—2006

ENDJF:

IF (4S013584_EXPRESSI0NS_SCHEMA.AND_EXPRESSI0N’ IN TYPEOF(arg))

0R(,IS013584_EXPRESSI0NS_SCHEMA.0R_EXPRESSI0N'INTYPEOF(arg))

THEN

REPEAT i:= 1 TO SI2EOF (

arg\MULTIPLE_ARITY_BOOLEAN_EXPRESSION.OPERANDS);

IF NOT is_SQL_mappable (

arg\MULTIPLE_ARITY BOOLEAN_EXPRESSION.OPERANOSIi])

THEN

RETURN (FALSE);

END_IF;

END_REPEAT;

RETURN (TRUE);

ENDJF;

IF 'IS013584_EXPRESSI0NS SCHEMA.EQUALS_EXPRESSION* IN TYPEOF(arg)

THEN

RETURN (is_SQL_mappable (

arg\BINARY_GENERIC_EXPRESSION.OPERANDS[1])

AND is_SQL_mappable<

arg\BINARY_GENERIC_EXPRESSION.OPERANDS(2]));

ENDJF:

IF ('ISO13584_EXPRESSIONS_SCHEMA.C0MPARISON_EQUAL' IN TYPEOF(arg)) 0R('IS013584_EXPRESSI0NS SCHEMA.COMPARISONJ3REATER'

INTYPEOF(arg))

OR (US013584_EXPRESSIONS_SCHEMA. COMPARISON J3REATER_EQUAL'

INTYPEOF(arg))

OR (,ISO13584_EXPRESSIONS_SCHEMA.C0MPARISON_LESS‘

INTYPEOF(arg))

0R('ISO13584_EXPRESSIONS_SCHEMA.COMPARISON_LESS_EQUAL'

INTYPEOF(arg))

OR CIS013584_EXPRESSIONS_SCHEMA.COMPARISON_NOT_EQUAL'

IN TYPEOF(arg))

0R{'IS013584_EXPRESSI0NS SCHEMA.LIKE_EXPRESSION'

IN TYPEOF(arg))

THEN

RETURN (is_SQ L_ma ppable (arg\COMPARISON_EXPRESSION.OPERANDS(1))

AND is SQL_mappabte (arg\COMPARISON_EXPRESSlON.OPERANDS(2]));

ENDJF;

IF •|S013584_EXPRESSI0NS_SCHEMA.INTERVAL_EXPRESSI0N’ IN TYPEOF(arg)

THEN

RETURN (is_SQL_mappabte(arg\inte rval_expression.interval Jow) ANDis_SQL_mappable(arg\jnterval_expression.mtervalJiigh)

AND is_SQL_mappable{arg\interval expresston.intervaljtem));

ENDJF:

IF ('ISO13584_EXPRESSIONS_SCHEMA.NUMERIC_DEFINED_FUNCTI0N'

IN TYPEOF(arg))

0R('IS013584_EXPRESSI0NS_SCHEMA.800LEAN_DEFINED_FUNCTЮN,

INTYPEOF(arg))

0R('IS013584_EXPRESSI0NS SCHEMA.STRING_DEFINED_FUNCTION'

INTYPEOF(arg))

THEN

RETURN (FALSE);

ENDJF;

(* Предполагается, что все определенные функции не являются отображаемыми на языке SOL *) IF'IS013584_EXPRESSI0NS_SCHEMA.SIMPLE_STRING_EXPRESSI0N'

IN TYPEOF(arg)

THEN

RETURN (TRUE):

41

ГОСТ Р ИСО 13584-20—2006

ENDJF;

IF {'IS013584_EXPRESSI0NS_SCHEMA.INDEX_EXPRESSI0N' IN TYPEOF(arg))

OR ('IS013584_EXPRESSI0NS_SCHEMA.SU8STRING_EXPRESSI0N'

INTYPEOF(arg))

OR (’IS013584_EXPRESSI0NS_SCHEMA.C0NCAT_EXPRESSI0N'

INTYPEOF(arg))

OR (’IS013584_EXPRESSI0NS_SCHEMA.F0RMAT_FUNCTI0N'

IN TYPEOF(arg))

THEN

RETURN (FALSE);

ENDJF;

(* Если встречается другое generic_expression. которое не является подтипом SQL_mappab!e_defined function, то оно не является отображаемым на языке SQL *)

RETURN (FALSE);

END_FUNCTION; - is_SQL_mappabte

Г

6.6.3 Функция usedjunctions

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

Примечание- Эта функция является ресурсом для схем, использующих IS013584_expreaslons_ scheme или ее возможные конкретизации. Например, онв используется в некоторых частях комплекса стандартов ИСО 13584 для записи ограничений на функции, встречающиеся в выражениях.

EXPRESS-спецификация

*)

FUNCTION usedjunctions (arg; expression): SET OF defined Junction;

LOCAL

result: SET OF defined Junction ;= Q;

ENDJ.OCAL;

IF CIS013584 EXPRESSIONS_SCHEMA.DEFINED_FUNCTION‘ IN TYPEOF(arg))

THEN

RETURN ((arg));

ENDJF;

IF4S013584 EXPRESSIONS SCHEMA.UNARY NUMERIC_EXPRESSION' IN TYPEOF (arg)

THEN

RETURN (usedjunctions (arg\unary_numeric_expression.operand));

ENDJF;

IF'IS013584_EXPRESSI0NS_SCHEMA.BINARY_NUMERIC_EXPRESSI0N' IN TYPEOF (arg)

THEN

RETURN (usedjunctions (arg\binary_numeric_expression.operands[1))

+ usedjunctions (arg\binary_numeric_expression.operands[2])));

ENDJF;

IF,IS013584_EXPRESSl0NS_SCHEMA.MULTIPLE_ARtTY_NUMERIC_EXPRESSI0N'IN TYPEOF (arg)

THEN

REPEAT i := 1 TO SIZEOF (

arg\multiple_arity_numeric_expression.operands); result ;= result ♦ usedjunctions (

arg\multiple_arity_numeric_expression.operandsfij);

END REPEAT;

RETURN (result);

ENDJF;

42

ГОСТ Р ИСО 13584-20—2006

IF 'IS013584_EXPRESSI0NS_SCHEMA.UNARY GENERIC.EXPRESSION'

INTYPEOF(arg)

THEN

RETURN (usedjunctions (arg\unary_generic_expression.operand));

ENDJF;

IF'IS013584_EXPRESSIONS_SCHEMA.BINARY_BOOLEAN_EXPRESSION'

IN TYPEOF (arg)

THEN

RETURN (usedjunctions (arg\binary_generic_expression.operands[1))

♦ usedjunctions {

arg\binary_generic_expression.operands{2}));

ENDJF;

IF'IS013584_EXPRESSIONS_SCHEMA.MULTIPLE_ARITY_BOOLEAN_EXPRESSION'

IN TYPEOF (arg)

THEN

REPEAT i:= 1 TO

SIZEOF (arg\mu!tiple_arityJ3oolean_expression.operands); resultresult ♦ used Junctions (

arg\multip!e_arity_Boolean_expresston.operands{i]):

END_REPEAT;

RETURN (result):

ENDJF;

IF4S013584 EXPRESSIONS SCHEMA.COMPARISON EXPRESSION'

THEN

IN TYPEOF (arg)

RETURN (usedjunctions (arg\comparison_expression.operands(1])

+ usedjunctions (arg\comparison_expression.operands(2]));

ENDJF;

IF 'IS013584_EXPRESSI0NS_SCHEMA.INTERVAL_EXPRESSI0N' IN TYPEOF (arg) THEN

RETURN (usedJunctions(arg\interval_expression.interval_low)

+ usedjunctions(arg\interval_expression.interval_high)

+ used functions(argVinterval_expression.interval Jtem));

ENDJF:

IF ,IS013584_EXPRESSI0NS_SCHEMA.INDEX_EXPRESSI0N' IN TYPEOF (arg) THEN

RETURN (usedjunctions (arg\index_expression.operand)

♦ usedjunctions (arg\index_expression.index));

ENDJF:

IF 'IS013584_EXPRESSIONS_SCHEMA.SUBSTRING_EXPRESSION' IN TYPEOF (arg) THEN

RETURN (usedjunctions (arg\substring_expression.operand)

+ usedjunctions (arg\substring_expression.index1)

+ usedjunctions (arg\substring_expression.index2));

ENDJF;

IF •|S013584_EXPRESSI0NS_SCHEMA.C0NCAT_EXPRESSI0N' IN TYPEOF (arg) THEN

REPEAT i := 1 TO SIZEOF (arg\concat_expression.operands); resultresult + usedjunctions (

arg\concat_expression.opera nds(ij);

END.REPEAT;

RETURN (result);

ENDJF;

IF'IS013584_EXPRESSI0NS_SCHEMA. FORMAT FUNCTION'IN TYPEOF (arg) THEN

RETURN {usedjunctions (arg\formatJunction.value JoJomnat) + usedjunctions (arg\formatJunction.format_stiing)); ENDJF;

43

ГОСТ Р ИСО 13584-20—2006

IF,IS013584_EXPRESSI0NS_SCHEMA.LIKE_EXPRESSI0N’ IN TYPEOF(arg) THEN

RETURN (used_functions (argUik6_expression.operands[1])

♦ used_funcUons (arg\like_expression.operands[2]));

ENDJF;

RETURN ([]);

END_FUNCTlON: - used_functions

END_SCHEMA: - IS013584 expressions_schema

(*

Приложение A (обязательное)

Сокращенные наименования объектов

Сокращенные наименования объектов, установленных а настоящем стандарте, приведены в таблице А.1. Требования к использованию сокращенных наименований указаны а методах реализации, приведенных в стандартах комплекса ИСО 10303.

Таблице А.1 —Сокращенные наименования объектов

Наименование объекта

Сокращенное наименование

ABS.FUNCTION

ABSFNC

ACOS.FUNCTlON

ACSFNC

AND.EXPRESSlON

ANOEXP

ASIN.FUNCTION

ASNFNC

ATAN_FUNCTlON

ATNFNC

BINARY_BOOLEAN_EXPRESSION

BNBLEX

В IN ARY _F U NC T ION _C A LL

BNFNCL

BINARY_GENERlC_EXPRESSION

BNGNEX

BINARY NUMERIC EXPRESSION

BNNMEX

BOOLEAN_DEFINEO_FUNCTlON

BLOFFN

BOOLEAN EXPRESSION

BLNEXP

BOOLEAN_LITERAL

8LNLTR

BOOLEAN VARtABLE

BLNVRB

COMPARISON _ EQUAL

CMPEQL

COMPARlSON.EXPRESSlON

CMPEXP

COMPARISON .GREATER

CMPGRT

COMPARlSON_GREATER_EOUAL

CMGREO

COMPARISON .LESS

CMPLSS

COMPARISON .LESS.EQUAL

CMLSEQ

COMPARISON_NOT_EOUAL

CMNTEQ

CONCAT_£XPRESSlON

CNCEXP

COS FUNCTION

CSFNC

OEFINEO.FUNCTION

OFNFNC

01V EXPRESSION

OVEXP

ENVIRONMENT

ENVRNM

EQUALS EXPRESSION

EOLEXP

EXPRESSION

EXPRSS

44

ГОСТ Р ИСО 13584-20—2006

Окончание таблицы А.1

Наименование объекта

Сокращенное наименование

EXP.FUNCTION

EXPFNC

FORMAT FUNCTION

FRMFNC

GENERlC.EXPRESSlON

GNREXP

GENERIC_LITERAL

GNRLTR

GENERIC.VARIABLE

GNRVRB

SOUARE_ROOT_FUNCTION

SORTFN

STRING_DEFINEO_FUNCTlON

STDFFN

STRING.EXPRESSION

STREXP

STRING.LITERAL

STRLTR

STRING.VARIABLE

STRVRB

SUBSTRING EXPRESSION

SBSEXP

TAN.FUNCTION

TNFNC

UNARY BOOLEAN EXPRESSION

UNSLEX

UNARY_FUNCTlON_CALL

UNFNCL

UNARY GENERIC EXPRESSION

UNGNEX

UNARY_NUMERlC_EXPRESSlON

UNNMEX

VALUE_FUNCTlON

VLFNC

VARIA8LE

VRBL

VARIA8LE.SEMANTICS

VRBSMN

XOR.EXPRESSION

XREXP

Приложение В (обязательное)

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

В.1 Обозначение документа

Для обеспечения однозначного обозначения информационного объекта а открытой системе настоящему стандарту присвоен следующий идентификатор объекта:

{ISO standard 13584 part (20) veraion(l)}

Значение этого обозначения установлено а ИСО 8824-1 и описано а ИСО 13584-1.

В.2 Обозначение схем

В.2.1 Обозначение ISO_eenerlc_expresalons_schema

Схеме ISO_genertc_expresslons_schema (разделе) присвоен следующий идентификатор объекта:

(ISO standard 13584 pert{20}version(l}ot>Ject(1)lSOl3584-genenc-expressions-scheme(1)}

В.2.2 Обозначение ISO_generic_expresslons_schema

Схеме !SO_expresslons_schema (раздел 5) присвоен следующий идентификатор объекта:

(ISO standard 13584 part(20}version(l)ot>ject(1)lSOl3584-expreseions-schema(2)}

45

ГОСТ Р ИСО 13584-20—2006

Приложение С (справочное)

Диаграммы на языка EXPRESS-G

Рисунки С.1 — С.13 соответствуют текстам не языке EXPRESS, приведенным в разделах 4 и S. 8 диаграммах использована графическая нотация EXPRESS-G для языка EXPRESS. Язык EXPRESS-G определен в приложении А ИС010303-11.

Рисунок С.1 — IS013584_generlc_expreeeiona_schema — EXPRESS-G диаграмма 1 из 1

46

ГОСТ Р ИСО 13584*20—2006

Рисунок С.2 — ISOI 3584_expreeelone_echema — EXPRESS-6 диаграмме 1 из 12. Строковая типизация выражений

Рисунок С.З — iS013584_expreee)one_achema — EXPRESS-0 диаграмма 2 из 12.

Переменные

47

ГОСТ Р ИСО 13584-20—2006

Рисунок С.4 — IS013$84_expreesion6_echema — EXPRESS-6 диаграмма 3 из 12.

Числовые выражения

46

ГОСТ Р ИСО 13584*20—2006

10.1, (ABS) binary^booleanexpression

^~7.2, (ABS) simple_boolean_expression (RT) operands L{2:2)

(4.24101)0-

(4.2,(Ч)У> (ВТ) operands L[2:?]

11,1, CABS) multiplearybooieanexpression

12.1» (ABS) comparisonexpression

(ABS) boolean defined function

:tion^^

•|

I/    1S013584_

generic expressions schema, unary jfencricjjxjKcssion

I/    IS013584_    M

generic expressions schema. mukiple_arity_generic_ expression

I

CRT) operands

I

(ABS)

(ABS)

unary_boolean_e\prcssion

imerval^expression

not expression

1

•(DER) interval item

•(DER) interval low

“(DER)

intcrval_high

odd function

(RT) operand

I

IS013584_

gene ric_expressions.schema. generic_cxprexsion

I

3,2. (ABS) numeric cxprcssion^^

Рисунок C.5 — IS013584_expreaslons_echema — EXPRESS-G диаграмма 4 из 12.

Булевы выражений

49

ГОСТ Р ИСО 13584-20—2006

Рисунок С.6 — ISOI 3584_expreeaions_echema — EXPRESS-G диаграмма S из 12.

Строковые выражения

50

ГОСТ Р ИСО 13584*20—2006

Рисунок С.7 — IS013S84_expressions_9Chema — EXPRESS-G диаграмме 6 иа 12.

defined function

S1

ГОСТ Р ИСО 13584-20—2006

Рисунок С.8 — ISOI 3$84_expree8lone_echema — EXPRESS-G диаграмма 7 из 12. Подтипы elmple_genertc_expreeeion

S2

ГОСТ Р ИСО 13584*20—2006

I-------------------1

Рисунок С.9 — IS013584_expre«elons_echema — EXPRESS-6 диаграмма 8 из 12. бинарные числовые выражений

S3

ГОСТ Р ИСО 13584-20—2006

Рисунок С.10 — IS013584_6xpreselon»_»ehema — EXPRESS-G диаграмме 9 из 12. Большая арность

Рисунок С. 11 — IS013584_expreeelone_schema — EXPRESS-G диаграмма 10 из 12.

Бинарные булавы выражения

54

ГОСТ Р ИСО 13584*20—2006

Рисунок С. 12 — IS013584_expreselon»_echema — EXPRESS-0 диаграмма 11 из 12. Булавы выражения большой арности

Рисунок С.13 — iS013584_expreeeions_echeme — EXPRESS-G диаграмма 12 из 12. Выражения сравнения

SS

ГОСТ Р ИСО 13584-20—2006

Приложение О {справочное)

Использование схемы IS013584_expressions_schema

0.1 Введение

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

В настоящем приложении рассмотрены возможные варианты использования и применения этих обобщенных ресурсов.

IS013584_expreaelona_echema кодирует выражения, которые могут быть построены из комбинации операторов простых выражений (взятых из языка EXPRESS), конствнт и переменных.

Для каждого изэтихэлементов(опервторов. конствнт и переменных) семантика должна быть задана для каждого использования выражения.

Семантика операторов устанавливается в соответствии с тем. как она определена для каждого оператора в руководстве по языку EXPRESS.

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

0.2 Функция интерпретации и семантика переменной

Семантика операторов и конствнт определена в настоящем стандарте.

Константы имеют простую семантику, поскольку они интерпретируются значением, которое они представляют.

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

При использовании IS013584_expreasione_echema для каждой переменной должно быть определено следующее:

•    какое понятие обозначает переменная:

- в каком контексте это понятие может быть использовано;

•    каков механизм {функция интерпретации), который ограничивает значение этой переменной.

в настоящем стандарте понятие, которое обозначает переменная (ее семантика), представлено объектом variable.semantlca. Поэтому три указанные выше позиции должны быть звданы определением подтипа типа данных этого абстрактного объекта.

0.3 Представление функции интерпретации в настоящем стандарте

Как указано в 0.2. переменные должны иметь функцию интерпретации для того, чтобы задать их семантику. В комплексе стандартов ИСО 13S84 эта цель достигается путем комбинации трех объектов: variable, environment и variable_aemantlca. Объект variable определяет синтаксическое представление семантического понятия, которое представлено объектом varlabie.eemantlce. Объект environment связывает эти два объекта, чтобы точно ассоциировать одну семантику с данной переменной.

Не рисунке 0.1 приведена схема определения этих объектов.

Рисунок 0.1 — Связь синтаксиса и семантики переменной

0.4 Использование объекта variabie_aemantlca для определения семантики новых переменных Предполагается, что понятие, которое должно быть представлено переменной, уже существует в виде объекта модели данных. Поэтому на уровне модели данных возможны следующие два подхода, чтобы связать это понятие с переменной:

56

ГОСТ Р ИСО 13584-20—2006

•    при первом подходе используется отдельный подтип объекта varlable.eemantlce. который представляет этот объект посредством атрибута(ов);

•    при втором подходе определяется общий подтип для объекта varieble.eemantlce и типе данных этого объекта.

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

Иллюстрация этих двух подходов приведена в 0.4.1 и 0.4.2.

D.4.1 Использование отдельного подтипе объекта variab!e_eemantice

Данный подход к определению семантики заключается во введении подтипа объекта variable.semantiee. который представляет собой понятие, которое обозначает переменная, посредством втрибута(ов).

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

Пример — Определение переменной SELF:

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

В ИСО 13554-24. в котором моделирование семейств деталей осуществляется на основе объектно-ориентированного подхода, показана необходимость представления переменных SELF, чтобы допустить использование выражений, включающих этот вид переменных. На рисунке D.2 приведена EXPRESS-G диаграмма, демонстрирующая способ представления этой семантики на основе простого наследования объекта variable semantics.

Рисунок D.2 — Установление семантики определением подтипа объекта varlable.eemantice

Примечание — Объект property_BSU определен в ИСО 13584-42. Он позволяет идентифицировать одно отдельное свойство.

Объект eelf.property.verleble.eemantice определен как подтип объекта varlable.eemantica. Он имеет атрибут, называемый the_prope/ty. который идентифицирует отдельное свойство вложенного класса (представленного объектом property.BSU). Поэтому этот объект несет в себе семантику М)в_ргоре/Ту экземпляра SELF.

Заметим, что в документации на объект self_property_varleble_semantlee определено, что:

•    соответствующая переменная должна использоваться в контексте экземпляре класса PLib.

•    переменная обозначает значение релевантного свойства экземпляра этого класса.

D.4.2 Множественное наследование объекта varlable.eemantlce и другого объекта

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

Беря за основу концепцию совместного использования, можно определить семантику переменной квк совместное использование объекте varleble.eemantlca (чтобы показать, что мы имеем дело с семантикой переменной) и любого другого объекта. который мы хотим представить через эту переменную.

S7

ГОСТ Р ИСО 13584-20—2006

Пример — Определение объекте variable_semantlcs. связанного с объектом material_property_ representation, описанным а ИСО 10303-45.

Путем определения подтипов конструкций ресурсов из material_property_repreaentatlon_schema. установленной в ИСО 10303-45. значение объекта materlal.property может быть связано с выражением numeric.expres-alon. которое определяет зависимость между значением этого material.property и другими property .definitions, на которые ссылается их matertal.property.representatlon.

Способ реализации вышеуказанного представлен на рисунке D.3

Правило WHERE (где) в объекте materlal_properiy_representatlon_and_funetion необходимо обеспечить, чтобы выражение funcllonal.apecification numeric.expreasion включало в качестве переменных только те переменные. которые связаны через объект environment с materlal.property.semantics. и для которых все эти materlal.property.aemantice соответствуют набору свойств, моделирующих среду (т.е. на каждую из этих materlal.property.aemantics ссылается SELF.dependent_envlronment.elemente(i].deflnltlon через некоторый индекс i).

used representat ion

Рисунок О.З — Конкретизация семантики путем определения подтипа объекта variables.semantics

и другого объекта

58

ГОСТ Р ИСО 13584-20—2006

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

Отметим, что этот подход не требует использования дополнительного атрибута у объекта materiai.property.aemanties- Механизм наследования распространяет все атрибуты объекта material.property (т.е. идентификацию свойства).

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

D.4.3 Определение понятия, не представленного в модели

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

На рисунке D.4 показано, как могут быть определены две переменные, которые представляют координаты ж и у в некотором отдельном двумерном пространстве. Такие переменные могут быть включены в любое числовое выражение, которое определяет точную (математическую) форму конкретного объекта curve.

Рисунок 0.4 — Пример определения понятия, не представленного в модели: координаты

Приложение Е (справочное)

Конкретизация схем

Е.1 Введение

Определения схем lS013584_generic_expreaalons_9chema и ISOi3584_expreaalona_achema являются обобщенными ресурсами, так как они могут быть конкретизированы без оказания какого-либо воздействия на уже определенные ресурсы. Эти схемы были олределеныдлятого.чтобыони могли быть конкретизированы или расширены для введения и моделирования выражений любого вида. Целью настоящего приложения является показать, как может быть выполнена конкретизация этих двух схем.

Е.2 Конкретизация схемы IS013584_generlc_expreasione_echem8

IS013S84_generic_expre»aiona_Bchema определяет структуру выражения любого вида без введения какого-либо конкретного типа данных.

Конкретизация iSOl3S84_generic_exprea»ione_echema требует введения конкретного(ых) типа(ов) данных. Такой тип данных должен быть введен путем определения подтипе существующих EXPRESS-pecypcoa и может указываться квкисточник новыми операторами, которые манипулируют этим нововведенным типом данных.

S9

ГОСТ Р ИСО 13584-20—2006

Промер — В схене IS013584_expresslons_schema в качества конкретных толов данных определены только Integer, real. Boolean и string. Поэтому только эти толы связаны с олереторвмо. которые вычисляют значения.

При введении нового тиле денных в процесс конкретизации вовлекаются следующие объекты языка EXPRESS:

•    generlc_expreeelon.

•    generic_variable.

•    varlable.aemantlce.

•    genericjiteral.

•    unery_generlc_expreeelon.

•    binary_generlc_expreeeion:

•    multlpie_arlty_generlc_expreesion.

E.3 Конкретизаций схемы IS013584_expreeelone_schema

Конкретизация схемы ISOl3584_expreeaion»_echema представляет возможность расширения набора операторов теми, которые либо объединяют значения, принадлежащие к базовым типам данных этой схемы (т.е. NUMBER. REAL. INTEGER. BOOLEAN и STRING), либо производят значения, принадлежащие к этим базовым типам данных (например, расстояние междудвумя точками).

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

Следующие EXPRESS-объекты были специально введены, чтобы поддерживать такой процесс конкретизации.

•    boolean.deflnedjunctlon.

•    lnteger_deflned Junction;

•    numerlc_deltned Junction,

•    real_defined_function.

•    itrlng_deflned Junction,

•    SQL_mappable_dellned Junction.

E.4 Методология для конкретизации настоящего стандарта

8 данном разделе установлена последовательность действий для определения различных конкретизаций схем, установленных в настоящем стандарте.

Е.4.1 Идентифицировать конкретный тип данных, который должен быть обработан выражением. Если должны использоваться только типы данных INTEGER. REAL. BOOLEAN и STRING, следует конкретизировать схему ISOl3584_expreesions_echema. в противном случае следует конкретизировать схему IS013584_gener(c_expree-elone_echema.

E.4.2 Идентифицировать семантические понятия, которые должны соответствовать определенным выражениям. Определить требуемые подтипы объекта varl8bie_sem antics (см. приложение О).

Е.4.3 Конкретизация схемы ISOl 3584_generlc_expreeelone_schema

Е.4.3.1 Определить корень всех выражений нового типа данных путем определения подтипа объекта generlc.expreseton (или numerlc_expreee!on. Boolean.expreselon. либо etrlng_expreeelon соответственно).

Е.4.3.2 Определить переменные этих выражений путем определения подтипа объекта generic.varlable. который связан через объект environment с семантикой, определенной по Ё.4.2.

Е.4.3.3 Определить константы этих выражений путем определения подтипа объекта genericjiteral

Е.4.3,4 Определить операторы, которые объединяют переменные и константы нового типе данных, путем определения подтипов объектов unary_generlc_expreeeion. binary_generlc_expresslon и multlple_arlty_gene-rlc.expreesion в соответствии с их арностью. Присоединить правила, которые обеспечивают семантическую прочность и корректность этих операторов.

Е.4.4 Интеграция со схемой IS013584_expreeelone_echema

£.4.4.1 Если существует какой-либо оператор, который производит значения нового типа данных из выражений expreeelon (например, комплексное число, определяемое двумя вещественными числами), то:

•    снабдить ссылками схему IS013584_expreesione_schema.

•    определить этот оператор как общий тип данных корневого объекта, определенного по Е.4.3.1. и один из следующих объектов: unary_generte_expreesion. binary _generlc_expreselon или multiple_arlty_generic_expre»-elon. в соответствии с арностью этого оператора. Добавить правила, которые обеспечивают семантическую корректность этого оператора.

Е.4.4.2 Если существует какой-либо оператор на новом типе данных, который генерирует значения одного из базовых типов двнныхсхемы IS013S84_expreeaione_echema. то для каждого оператора или функции, возвращающих типы данных INTEGER. REAL. 800LEAN или STRING, необходимо ввести подтип соответствующего объекта

60

ГОСТ Р ИСО 13584*20—2006

deflned.function. чтобы определить соответствующую функцию и один из объектов unary_generlc_expreaelon. binary _generlc_expresaion или muMlple_arity_generic_expres8ion в соответствии с арностью этого операторе. Этот процесс обеспечивает следующее:

•    любое выражение, согласующееся с конкретизированной схемой, является семантически корректным;

•    все функции, определенные настоящим стандартом как ресурсы (например. te_lnt_expr. used.variables. lt_SQL_mappabie и т. д.) согласуются со своими абстрактными описаниями.

Примечание — При конкретизации схемы IS013584_expreselone_echema действия по Е.4.3 не проводят.

Е.5 Пример конкретизации схемы IS013584_generlc_expreeslone_schema

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

Рассмотрим конкретизацию схемы IS013584_generic_expreaelons_echema для обработки выражений, оперирующих с комплексными числами. Эти выражения получают путем определения подтипа схемы IS013$84_generlc_expreeeion»_echema.

В следующих EXPRESS-спецификациях показана суть такой схемы. При этом будут использоваться лишь несколько выражений:

Шаг 1 — заданным типом данных являются комплексные числа.

Шаг 2 — семантическое понятие, которое должно быть определено комплексными выражениями.

Предположим, что необходимо связать эти выражения с парой координат двумерных объектов carteaian.polnt (по ИСО 10303-42).

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

EXPRESS-спвцификаиия

ENTITY poaitlon_vanable_aemanucs

SUBTYPE OF (vanable_eemanbcs. cartesian_polnt);

WHERE

SELF\geometric_representation item.dimension=2; END_ENTITY;

C

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

Предполагается, что в данном примере не нужны выражения polnt_expre*elone.

Шаг 3—определение comptex.expreealon путем конкретизации схемы IS013584_generlc_expreselone_ schema.

EXPRESS-спецификация

*>

ENTITY complex_expreeelon SUBTYPE OF (generic.expreeeton)

ASTRACT SUPERTYPE OF (ONEOF (    simple_complex_expression.

unary _complex_expresslon. binary _complex_expres8lon. multipie_arity_complex_expreseion));

ENO.ENTITY:

ENTITY stmple_complex_expre&sion

A8STRACT SUPERTYPi (OF ONEOF(    complex.variable.

complexjileral))

SUBTYPE OF (complex_expresslon. aiinpie_geneoc_expreaalon);

ENO.ENTITY;

ENTITY complex_variabte:

SUBTYPE OF (simple.complex.expreasion. generlc_variable);

ENO.ENTITY:

ENTITY compkexjiteral

61

ГОСТ Р ИСО 13584-20—2006

SUBTYPE OF (slmple.complex.expression. gener»c_literal);

real.part. imag.part: REAL;

END.ENTITY;

ENTITY unery.complex.expreseion

END.ENTITY;

ENTITY blnary.complex.expreeeion

END.ENTITY;

ENTITY multiple.anty.complex.expresslon END.ENTITY;

ENTITY poeition.carteeien.conatructor

SUBTYPE OF (complex.expreeeion, bmary.genenc.expression);

x. у: REAL END.ENTITY;

ENTITY poeition.polar.constructor

SUBTYPE OF (complex.expreesion. bmary.genenc.expression);

ro. theta. REAL;

END ENTITY;

Г

Шаг 4 — Специализация схемы IS013584_generlc_expreseione_schema задается определением следующих объектов:

EXPRESS-спешФикаиия

'I

ENTITY real.part.defined.function

SUBTYPE OF (real.deflned.function. unary .generic.expreseion): the.complex: comptex.expresston;

END.ENTITY;

ENTITY Imaginery_part_defined_funct»on SUBTYPE OF (real.deflned.function. unary.generlc.expreeeion) the.complex: complex.expreesion;

END~ENTlTY:

ENTITY angle.defined.functlon

SUBTYPE OF (real.deflned.function, unary.generlc.expreeeion) END.ENTITY:

ENTITY moduie.defined.functton

SUBTYPE OF (real.deflned.function, unary.generic.expreeston); END ENTITY;

Г

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

Е.6 Пример специализвции схемы iS013584_expreselone_sehema

Данный пример соответствует случаю, когда шаг 3. приведенный в Е.5. опущен.

Необходимо ввести оператор, который вычисляет расстояние между двумя точками в декартовом пространстве. Зта функция возвращает вещественное число. Объект, соответствующий этой функции, получают путем конкретизации. Вводят подтип функции real.deflned.function. Определяют следующий объект:

62

ГОСТ Р ИСО 13584-20—2006

EXPRESS-спецификация

*>

ENTITY Dietance.function SUBTYPE OF(real_deflned_lunction);

pt1. pt2: point.

END ENTITY:

C

Приложение F (справочное)

Статический анализ выражений

F.1 Введение

В данном приложении рассматриваются выражения в контексте настоящего стандарта. Могут быть выделены две возможные точки зрения в соответствии с введенными понятиями и предположениями, сделанными а разделе 4: период обмена и период оценки.

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

В данном приложении рассматривается анализ выражений, который может быть выполнен а период обмена, и даются некоторые пояснения по этим процессам.

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

На уровне выражений можно вычислить тип данных выражения.

F.2 Функция la_acycilc_functlon

Напомним, что:

•    ориентированный граф представляет собой набор узлов, соединенных некоторыми однонаправленными связями:

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

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

Функция le.acycllc проверяет, соответствует ли выражение этому условию.

Заметим, что дерево является частным случаем ориентированного ациклического графе.

F.3 Функции ueed_variabiee Huaed.functlons

Функции ueed.variablee и ueed_(unctlons являются функциями, которые в качестве результата возвращают все объекты, представляющие переменные или функции, встречающиеся в данном выражении.

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

F.4 Функция l»_SQL_mappable

Функция le_SOL_mappable проверяет, является ли денное выражение отображаемым на языке SOL для без данных с запросами.

Эт8 функция осуществляет обход ориентированного ациклического графа, который представляет собой выражение, для оценки и синтеза типа данных и возвращает значение TRUE, если выражение является отображаемым.

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

F.S Контроль типам синтез типа

Контроль типа является процессом, который позволяет проверить корректность типе выражения.

Синтез типа является процессом, который позволяет синтезировать тип денных выражения.

В lSOl3$84_expreeaions_echema. определенной в настоящем стандарте, контроль типа обеспечивается ограничениями этой схемы. Синтез типа является результатом применения EXPRESS-функции TYPEOF к объекту, который является носителем типа данных.

63

ГОСТ Р ИСО 13584-20—2006

Приложение G (справочное)

Сведения о соответствии национальных стандартов Российской Федерации ссылочным международным стандартам

Таблице G.1

Обозначение ссылочного международного стандарта

Обозначение и наименование соответствующего национальною стандарта

ИСО/МЭК 9075:1992

ГОСТ Р ИСО/МЭК 9075—93 Информационная технология. Язык Саз данных SOL с расширением целостности

ИСО 10303-11:1994

ГОСТ Р ИСО 10303-11—2000 Системы автоматизации производства и их интеграций. Представление денных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS

ИСО 10303-44:1994

ГОСТ Р ИСО 10303-44—2002 Системы аатомагизеции производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 44. Интегрированные обобщенные ресурсы. Конфигурация структуры изделия

64

ГОСТ Р ИСО 13584*20—2006

УДК 331.103.25 (006.34):004.65:006.354    ОКС 25.040.40    П87    ОКСТУ 4002

Ключевые слова: библиотека деталей, логический ресурс, логическая модель выражений. EXPRESS-схемы. схема выражений, схема обобщенных выражений, объекты, функции, выражения

65

Редактор ГА. Леонова Технический редактор ДА. Гусева Корректор В.И. Воронцова Компьютерная верстка Л.Н. Золотаревой

Сдано а набор 26.02.2007. Подписано в печать 05.04.2007. Формат 60 > 84^. Бумага офсетная Гарнитура Ариап. Печать офсетная. Уел. печ. п. 7.90. Уч.-иад. л. 7.10. Тираж 200 эо. Эак. ЗОв. С 3904.

ФГУП «СТАНДАРТИНФОРМ». 123996 Москаа. Гранатный пер.. 4.     

Набрано во ФГУП «СТАНДАРТИНФОРМ* на ПЭВМ.

Отпечатано а филиале ФГУП «СТАНДАРТИНФОРМ» — тип. «Московский печатни*». 105062 Москаа. Ляпин пер.. 6.