• Текст документа
  • Статус
Оглавление
Поиск в тексте
Действующий


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


Группа П87

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

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

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

Часть 11

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

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



ОКС 25.040.40
ОКСТУ 4002

Дата введения 2010-07-01

     
     
Предисловие


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

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

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

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

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

4 Настоящий стандарт идентичен международному стандарту ИСО 10303-11:2004* "Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS" (ISO 10303-11:2004 "Industrial automation systems and integration - Product data representation and exchange - Part 11: Description methods. The EXPRESS language reference manual").
________________
* Доступ к международным и зарубежным документам, упомянутым здесь и далее по тексту, можно получить, перейдя по ссылке. - Примечание изготовителя базы данных.

При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов* соответствующие им национальные стандарты Российской Федерации, сведения о которых приведены в дополнительном приложении ДА
_______________
* Таблицу соответствия национальных (межгосударственных) стандартов международным см. по ссылке. - Примечание изготовителя базы данных.

5 ВЗАМЕН ГОСТ Р ИСО 10303-11-2000


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

Введение


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

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

Полный перечень стандартов комплекса ИСО 10303 доступен в Интернете на сайте http://www.tc184-sc4.org/titles/.

Настоящий стандарт определяет элементы языка EXPRESS. Каждый элемент языка представлен в собственном контексте с примерами. Сначала представлены простые элементы, а далее с нарастающей сложностью определяются более сложные конструкции. Настоящая вторая редакция ИСО 10303-11 включает в себя небольшой пересмотр положений первой редакции (ИСО 10303-11:1994), за которой временно сохранен статус действующего стандарта для поддержки основанных на ней реализаций языка EXPRESS и нормативных ссылок в других стандартах комплекса ИСО 10303. Во вторую редакцию включена также Техническая поправка ИСО 10303-11:1994/Кор.1:1999.

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

- BASED_ON;

- END_SUBTYPE_CONSTRAINT;

- EXTENSIBLE;

- GENERIC_ENTITY;

- RENAMED;

- SUBTYPE_CONSTRAINED;

- TOTAL_OVER;

- WITH.

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

Обзор языка

EXPRESS - это название формального языка спецификации информационных требований. Язык EXPRESS применяется для определения информационных требований других стандартов комплекса ИСО 10303. Язык EXPRESS создавался для решения следующих задач:

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

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

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

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

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

Примечания

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

- обработку исключительных ситуаций.

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

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


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

ИСО 10303-1:1994 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 1. Общие представления и основополагающие принципы (ISO 10303-1:1994, Industrial automation systems and integration - Product data representation and exchange - Part 1: Overview and fundamental principles)

ИСО/МЭК 8824-1:2002 Информационные технологии. Взаимосвязь открытых систем. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 1. Спецификация основной нотации (ISO/IEC 8824-1:2002, Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation)

ИСО/МЭК 10646:2003 Информационные технологии. Универсальный многооктетный набор закодированных символов (UCS) [ISO/IEC 10646:2003, Information technology - Universal Multiple-Octet Coded Character Set (UCS)]

3 Термины и определения

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


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

- требование соответствия (conformance requirement);

- контекст (context);

- данные (data);

- язык определения данных (data specification language);

- информация (information);

- информационная модель (information model);

- форма ЗСРП (PICS proforma).

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


В настоящем стандарте применен следующий термин:

графический символ (graphic character).

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

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


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

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

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

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

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

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

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

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

3.3.8 экземпляр объекта (объектного типа данных) [entity (data type) instance]: Именованное значение объектного типа данных. Имя экземпляра объекта используется для ссылок на данный экземпляр.

3.3.9 значение (отдельного) объекта (объектного типа данных) [(single) entity (data type) value]: Элемент данных, представляющий элемент информации в рамках класса, определенного объектным типом данных. Данный элемент принадлежит области определения, установленной данным объектным типом данных.

3.3.10 экземпляр (instance): Именованное значение.

3.3.11 многолепестковый сложный объект (многолепестковый сложный объектный тип данных) [multi-leaf complex entity (data type)]: Сложный объектный тип данных, состоящий из нескольких объектных типов данных, которые не имеют последующих подтипов в рамках данного сложного объектного типа данных.

3.3.12 экземпляр многолепесткового сложного объекта (многолепесткового сложного объектного типа данных) [multi-leaf complex entity (data type) instance]: Именованное значение многолепесткового сложного объектного типа данных. Имя экземпляра многолепесткового сложного объекта используется для ссылок на данный экземпляр.

3.3.13 значение многолепесткового сложного объекта (многолепесткового сложного объектного типа данных) [multi-leaf complex entity (data type) value]: Элемент данных, представляющий элемент информации в рамках класса, определяемого многолепестковым сложным объектным типом данных. Данный элемент принадлежит области определения, установленной данным многолепестковым сложным объектным типом данных.

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

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

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

3.3.17 основная схема (primary schema): Схема в группе взаимосвязанных схем, образующая ориентированный граф, возможно, циклический. Основная схема является предметом интереса. В графе могут существовать одна или несколько основных схем, тогда как остальные схемы графа служат только для поддержки основных схем. Основная схема играет особую роль в преобразовании из короткой формы схемы в длинную форму (см. приложение G).

3.3.18 корневая схема (root schema): Схема в группе взаимосвязанных схем, образующая ориентированный граф, возможно, циклический. Корневая схема не является целью в какой-либо спецификации интерфейса, но все другие схемы должны быть достижимы из корневой схемы. Корневая схема может рассматриваться в качестве представителя графа. Корневая схема играет особую роль в преобразовании из короткой формы схемы в длинную форму (см. приложение G).

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

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

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

3.3.22 значение (value): Элемент данных.

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

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

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


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

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

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

Уровень 2 - проверка типов. Данный уровень включает в себя проверку формальной спецификации для подтверждения ее соответствия следующим требованиям:

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

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

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

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

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

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

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

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


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

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

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

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

4.2 Реализации языка EXPRESS

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


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

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

4.2.2 Графический редактор


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

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

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


Для использования настоящего стандарта необходимо знание представленных ниже понятий.

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

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

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

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

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

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

- как реализуются ссылки на имена;

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

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

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

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

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

6 Синтаксис спецификации языка


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

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

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


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

Соглашения об обозначениях и самоопределенная СНВ приведены ниже.

syntax

= { production } .

production

= identifier ' = ' expression ' . ' .

expression

= term {' | ' term } .

term

= factor { factor } .

factor

= identifier | literal | group | option | repetition .

identifier

= character { character } .

literal

= ' " ' character { character } ' " ' .

group

= ' ( ' expression ' ) ' .

option

= ' [ ' expression ' ] ' .

repetition

= ' {' expression ' } ' .


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

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

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

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

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

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

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

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

Примеры

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

Синтаксис:

311 string_type = STRING [ width_spec ] .
341 width_spec = ' ( ' width ' ) ' [ FIXED ] .
340 width = numeric_expression .


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

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

string;

string ( 22 );

string ( 19 ) fixed.


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

6.2 Обозначение специальных символов


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

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

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

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

\s - представляет символ пробела;

\x9, \xA и \xD - представляют символы, расположенные соответственно в позициях 9, 10 и 13 строки 00, плоскости 00, группы 00 из ИСО/МЭК 10646.

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


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

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

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


Пример - Следующие форматы записи эквивалентны:

entity point; x, у, z : real; end_entity;

ENTITY point;

x,
У,

Z : REAL;

END_ENTITY;


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


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

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

Примечания

1 В ИСО/МЭК 6429 [5] установлена семантика символов, расположенных в позициях 09, 0A, 0D из ИСО/МЭК 10646. Для настоящего стандарта семантика, установленная в ИСО/МЭК 6429, не требуется, но она и не противоречит ему.

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

7.1.1 Цифры


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

Синтаксис:

124 digit =

' 0 '

' 1 '

' 2 '

' 3 '

' 4 '

' 5 '

' 6 '

' 7 '

' 8 '

' 9 ' .


7.1.2 Буквы


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

Примечание - В структурах языка EXPRESS могут использоваться буквы верхнего, нижнего или обоих регистров (см. пример в 7).

Синтаксис:

128 letter =

' a '

' b '

' c '

' d '

' e '

' f '

' g '

' h '

' i '

' j '

' k '

' l '

' m '

' n '

' o '

' p '

' q '

' r '

' s '

' t '

' u '

' v '

' w '

' x '

' y '

' z ' .


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


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

Синтаксис:

137 special = not_paren_star_quote_special

' ( '

' ) '

' * '

' ' ' ' .

132 not_paren_star_quote_special =

' ! '

' " '

' # '

' $ '

' % '

' & '

' + '

' , '

' - '

' . '

' / '

' : '

' ; '

' < '

' = '

' > '

' ? '

' @ '

' [ '

' \ '

' ] '

' ^ '

' _ '

' ' '

' { '

' | '

' } '

' ~ ' .


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


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

7.1.5 Пустое пространство


Пустое пространство в тексте образуется посредством символов, определенных в 7.1.5.1-7.1.5.3 и 7.1.6. Пустое пространство должно использоваться для разделения лексем в EXPRESS-схемах.

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

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

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

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

Символом новой строки заканчивается каждая строка в формальной спецификации на языке EXPRESS. Обычно символ новой строки трактуется как пробел, но он является значимым символом, если им заканчивается комментарий или анормально заканчивается строковый литерал. В синтаксических структурах языка символ новой строки представляется обозначением \n.

Представление символа новой строки зависит от конкретной реализации.

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

Символы из позиций 09, 0A и 0D должны трактоваться как пустое пространство, кроме случаев, когда они встречаются в строковом литерале. Для представления этих символов в синтаксических структурах языка должно использоваться обозначение \хn, где n является одним из символов 9, А или D.

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


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

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

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

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

Cинтаксис:

145 embedded_remark =

' (* ' [ remark_tag ] { (not_paren_star { not_paren_star } ) |

lparen_then_not_lparen_star | (' * ' { ' * ' } ) |

not_rparen_star_then_rparen | embedded_remark } ' *)'.

147 remark_tag =

' " ' remark_ref { ' . ' remark_ref } ' " ' .

148 remark_ref =

attribute_ref | constant_ref | entity_ref | enumeration_ref |

function_ref | parameter_ref | procedure_ref | rule_label_ref |

rule_ref | schema_ref | subtype_constraint_ref | type_label_ref |

type_ref | variable_ref .

131 not_par en_star =

letter | digit | not_paren_star_special .

128 letter =

' a '

' b '

' c '

' d '

' e '

' f '

' g '

' h '

' i '

' j '

' k '

' l '

' m '

' n '

' o '

' p '

' q '

' r '

' s '

' t '

' u '

' v '

' w '

' x '

' y '

' z ' .

124 digit =

' 0 '

' 1 '

' 2 '

' 3 '

' 4 '

' 5 '

' 6 '

' 7 '

' 8 '

' 9 ' .

133 not_paren_star_special = not_paren_star_quote_special | ' ' ' ' .

132 not_paren_star_ quote_ special =

' ! '

' " '

' # '

' $ '

' % '

' & '

' + '

' , '

' - '

' . '

' / '

' : '

' ; '

' < '

' = '

' > '

' ? '

' @ '

' [ '

' \ '

' ] '

' ^ '

' _ '

' ' '

' { '

' | '

' } '

' ~ ' .

129 lparen_then_not_lparen_star = ' ( ' { ' ( ' } not_lparen_star { not_lparen_star }.

130 not_lparen_star = not_paren_star | ' ) ' .

138 not_rparen_star_then_rparen = not_rparen_star { not_rparen_star } ' ) ' { ' ) ' }.

135 not_rparen_star = not_paren_star | ' ( ' .


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

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


Пример - Следующая строка демонстрирует пример встроенного комментария:

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

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

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

Синтаксис:

149 tail_remark =

'--' [ remark_tag ] { \а | \s | \х9 | \хА | \xD } \n .

147 remark_tag =

' " ' remark_ref { ' . ' remark_ref } ' " ' .

148 remark_ref =

attribute_ref | constant_ref | entity_ref | enumeration_ref |

function_ref | parameter_ref | procedure_ref | rule_label_ref |

rule_ref | schema_ref | subtype_constraint_ref | type_label_ref |

type_ ref | variable_ ref .


Пример - -- это комментарий, заканчивающийся символом "новая строка".

7.1.6.3 Метка комментария

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

Синтаксис:

147 remark_tag =

' " ' remark_ref { ' . ' remark_ref } ' " ' .

148 remark_ ref =

attribute ref | constant_ ref | entity_ ref | enumeration_ ref |

function_ref | parameter_ref | procedure_ref | rule_label_ref |

rule_ref | schema_ref | subtype_constraint_ref | type_label_ref |

type_ref | variable_ref .


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

a) Элемент remark_ref должен соответствовать правилам видимости, определенным в 10.2.

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

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

c) Если ссылка комментария не найдена в соответствии с указанными выше правилами видимости, то комментарий не должен ассоциироваться с каким-либо элементом.

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

e) Если вложенный комментарий и комментарий, в который он вложен, оба ссылаются на один и тот же идентифицированный элемент, то вложенный комментарий должен быть связан с этим элементом дважды: один раз в составе комментария, в который он вложен, и второй раз непосредственно.

Примеры

1 Помеченный комментарий в данном примере ссылается на атрибут attr в области видимости объекта ent:

ENTITY ent;
attr: INTEGER;
END_ENTITY;

(* "ent.attr" Атрибут attr ... *)

2 За ссылкой на схему my_second_schema в помеченном комментарии может следовать любой идентификатор, объявленный непосредственно в области видимости данной схемы, например, имя функции a_complicated_function, как в данном примере:

SCHEMA my_second_schema;

FUNCTION a_complicated_function;

END_FUNCTION;
(* "my_second_schema.a_complicated_function" Данная сложная функция ... *)

END_SCHEMA;


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


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

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


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

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


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

ABSTRACT

AGGREGATE

ALIAS

ARRAY

AS

BAG

BASED_ON

BEGIN

BINARY

BOOLEAN

BY

CASE

CONSTANT

DERIVE

ELSE

END

END_ALIAS

END_CASE

END_CONSTANT

END_ENTITY

END_FUNCTION

END_IF

END_LOCAL

END_PROCEDURE

END_REPEAT

END_RULE

END_SCHEMA

END_SUBTYPE_CONSTRAINT

END_TYPE

ENTITY

ENUMERATION

ESCAPE

EXTENSIBLE

FIXED

FOR

FROM

FUNCTION

GENERIC

GENERIC_ENTITY

IF

INTEGER

INVERSE

LIST

LOCAL

LOGICAL

NUMBER

OF

ONEOF

OPTIONAL

OTHERWISE

PROCEDURE

QUERY

REAL

RENAMED

REFERENCE

REPEAT

RETURN

RULE

SCHEMA

SELECT

SET

SKIP

STRING

SUBTYPE

SUBTYPE_CONSTRAINT

SUPERTYPE

THEN

TO

TOTAL_OVER

TYPE

UNIQUE

UNTIL

USE

VAR

WHERE

WHILE

WITH


7.2.2 Зарезервированные слова, обозначающие операторы


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


Таблица 2 - Зарезервированные слова, обозначающие операторы языка EXPRESS

AND

ANDOR

DIV

IN

LIKE

MOD

NOT

OR

XOR


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


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


Таблица 3 - Зарезервированные слова, обозначающие константы языка EXPRESS

?

SELF

CONST_E

PI

FALSE

TRUE

UNKNOWN


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


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


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

ABS

ACOS

ASIN

ATAN

BLENGTH

COS

EXISTS

EXP

FORMAT

HIBOUND

HIINDEX

LENGTH

LOBOUND

LOG

LOG2

LOG 10

LOINDEX

NVL

ODD

ROLESOF

SIN

SIZEOF

SQRT

TAN

TYPEOF

USEDIN

VALUE

VALUE_IN

VALUE_UNIQUE


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


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


Таблица 5 - Зарезервированные слова, являющиеся именами процедур языка EXPRESS

INSERT

REMOVE


7.3 Знаки


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


Таблица 6 - Знаки языка EXPRESS

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

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

Номер документа: ИСО 10303-11-2009

Вид документа: ГОСТ Р

Принявший орган: Росстандарт

Статус: Действующий

Опубликован: официальное издание

М.: Стандартинформ, 2010 год

Дата принятия: 14 сентября 2009

Дата начала действия: 01 июля 2010
Информация о данном документе содержится в профессиональных справочных системах «Кодекс» и «Техэксперт»
Узнать больше о системах