5.1.1 Введение
Класс соответствия реализации анализатора или программы отображения EXPRESS-X показывает, какую часть языка поддерживает данная реализация. Объявления классифицируются с помощью подмножеств языка, как показано в таблице 1.
Таблица 1 - Объявления и подмножества языка EXPRESS-X
Объявление | Подмножество 1 | Подмножество 2 |
Объявление образа | + | - |
Объявление отображения | - | + |
Объявление зависимого отображения | - | + |
Объявление константы | + | + |
Объявление функции | + | + |
Объявление процедуры | + | + |
Объявление правила | + | - |
Разработчик анализатора или программы отображения EXPRESS-X должен установить любые ограничения, которые данная реализация накладывает на число и длину идентификаторов, на диапазон обрабатываемых чисел и на максимальную точность представления действительных чисел. Данные ограничения должны быть задокументированы для тестирования на соответствие.
5.1.2 Классы соответствия анализатора EXPRESS-X
Реализация анализатора EXPRESS-X должна обеспечивать синтаксический анализ любых формальных спецификаций, написанных на языке EXPRESS-X, которые согласуются с классом соответствия, присвоенным данной реализации. Считают, что анализатор EXPRESS-X соответствует конкретному уровню проверки, определенному в 5.1.4, если он может выполнить все проверки формальной спецификации, написанной на языке EXPRESS-X, необходимые для данного уровня (и всех нижележащих уровней).
Анализатор EXPRESS-X, относящийся к классу соответствия 1, должен анализировать все объявления из подмножества языка 1 (см. таблицу 1).
Анализатор EXPRESS-X, относящийся к классу соответствия 2, должен анализировать все объявления из подмножества языка 2 (см. таблицу 1).
Анализатор EXPRESS-X, относящийся к классу соответствия 3, должен анализировать все объявления, определенные в настоящем стандарте.
5.1.3 Классы соответствия программы отображения EXPRESS-X
Реализация программы отображения EXPRESS-X должна обеспечивать отображение любых формальных спецификаций, написанных на языке EXPRESS-X, которые согласуются с классом соответствия, присвоенным данной реализации. Отображение осуществляется по отношению к одному или нескольким наборам исходных данных; определение того, как эти наборы данных становятся доступными для программы отображения, находится вне области применения настоящего стандарта.
Программа отображения EXPRESS-X, относящаяся к классу соответствия 1, должна обеспечивать отображение всех объявлений из подмножества языка 1 (см. таблицу 1).
Программа отображения EXPRESS-X, относящаяся к классу соответствия 2, должна обеспечивать отображение всех объявлений из подмножества языка 2 (см. таблицу 1).
Программа отображения EXPRESS-X, относящаяся к классу соответствия 3, должна обеспечивать отображение всех объявлений, определенных в настоящем стандарте.
5.1.4 Проверка совместимости анализаторов EXPRESS-X
5.1.4.1 Введение
Формальная спецификация, написанная на языке EXPRESS-X, должна быть совместима с заданным уровнем проверки. Формальная спецификация совместима с заданным уровнем в том случае, когда все проверки, определенные для данного уровня, а также для всех нижележащих уровней, могут быть выполнены для данной спецификации.
5.1.4.2 Уровень 1: проверка ссылок
Данный уровень предусматривает проверку формальной спецификации на ее синтаксическую и ссылочную правильность. Формальная спецификация считается синтаксически правильной в том случае, если она соответствует синтаксису, сгенерированному при расширении основного синтаксического правила, представленного в приложении В. Формальная спецификация считается ссылочно правильной в том случае, если все ссылки на элементы языка EXPRESS-X соответствуют правилам области действия и области видимости, определенным в разделе 13.
5.1.4.3 Уровень 2: проверка типов данных
Данный уровень включает проверки уровня 1 и проверку формальной спецификации на ее совместимость по следующим позициям:
- выражения должны подчиняться правилам, определенным в разделе 10 и в ИСО 10303-11, раздел 12;
- назначения должны подчиняться правилам, определенным в ИСО 10303, подраздел 13.3.
5.1.4.4 Уровень 3: проверка значений