Открыть сервис

Язык EXPRESS

EXPRESS — это язык программирования, ориентированный на моделирование данных, предназначенный для формального описания информационных моделей и их структур. Он был разработан в рамках международного проекта STEP (Standard for the Exchange of Product Model Data) и стандартизирован как ISO 10303-11. Язык EXPRESS используется для создания нейтральных, не зависящих от конкретных программных систем описаний данных, в первую очередь в области промышленной автоматизации, машиностроения, строительства и других отраслях, где требуется обмен сложной технической информацией.

История

Разработка языка EXPRESS началась в конце 1980-х годов в рамках комитета ISO TC 184/SC 4, занимающегося стандартизацией обмена данными о продукте. Основной целью было создание формального языка, который позволил бы описывать структуры данных в стандарте STEP (ISO 10303). Первая версия стандарта ISO 10303-11 была опубликована в 1994 году. Впоследствии язык неоднократно уточнялся и дополнялся, в частности, в 2004 году вышла вторая редакция стандарта, а в 2021 году — третья, которая включила поддержку новых возможностей, таких как работа с неопределёнными значениями (null) и улучшенную обработку множеств.

Назначение и область применения

Основное назначение EXPRESS — служить средством для формального описания информационных моделей в рамках стандарта STEP. В отличие от языков программирования общего назначения (например, C++ или Java), EXPRESS не предназначен для написания исполняемых программ или алгоритмов. Он используется для:

  • Создания нейтральных схем данных: Описание структуры и ограничений данных, которые могут быть переданы между различными программными системами (CAD, CAM, PDM, ERP и др.).
  • Разработки прикладных протоколов (Application Protocols, AP): В рамках STEP каждый прикладной протокол (например, AP 242 для управляемого проектирования) использует EXPRESS для точного определения своей информационной модели.
  • Генерации кода: На основе схем EXPRESS автоматически генерируются структуры данных для языков программирования (C++, Java, C#) и схемы для баз данных (SQL, XML Schema).
  • Валидации данных: EXPRESS позволяет описывать ограничения целостности (правила), которые могут быть проверены автоматически для обеспечения корректности данных.

Синтаксис и структура

Язык EXPRESS сочетает в себе черты объектно-ориентированного и реляционного подходов. Его синтаксис напоминает синтаксис языков Pascal или Ada, но с рядом специфических особенностей.

Основные элементы

  • Сущности (ENTITY): Основные типы данных, описывающие объекты реального мира (например, «Деталь», «Сборка», «Отверстие»). Сущность может иметь атрибуты (свойства) и наследовать свойства от других сущностей (поддержка наследования).
  • Типы данных (TYPE): Определяют домены значений для атрибутов. Включают простые типы (INTEGER, REAL, STRING, BOOLEAN, LOGICAL), перечисляемые типы (ENUMERATION), выбираемые типы (SELECT) и определённые пользователем типы (DEFINED TYPE).
  • Правила (RULE): Ограничения целостности, которые должны выполняться для экземпляров данных. Правила могут быть глобальными (WHERE) или локальными (UNIQUE, WHERE в сущности).
  • Функции и процедуры (FUNCTION, PROCEDURE): Позволяют определять алгоритмы для вычисления значений атрибутов или проверки правил.
  • Схемы (SCHEMA): Контейнеры для группировки сущностей, типов, правил и других элементов. Одна схема может использовать элементы другой схемы (через механизм REFERENCE).

Пример описания сущности

``express ENTITY Bolt; part_number : STRING; nominal_diameter : REAL; length : REAL; material : OPTIONAL STRING; WHERE nominal_diameter > 0.0; length > 0.0; END_ENTITY; ``

В этом примере определена сущность «Болт» с атрибутами: номер детали (строка), номинальный диаметр (вещественное число), длина (вещественное число) и необязательный материал (строка). Правило WHERE гарантирует, что диаметр и длина являются положительными числами.

Классификация и версии

Язык EXPRESS существует в нескольких вариантах:

  • EXPRESS (базовый): Оригинальная версия, определённая в ISO 10303-11. Поддерживает все основные возможности, включая наследование, правила и функции.
  • EXPRESS-G: Графическая нотация языка EXPRESS. Представляет схемы в виде диаграмм, где сущности отображаются прямоугольниками, а связи — линиями. Удобен для визуального представления сложных моделей.
  • EXPRESS-X: Расширение языка для описания отображений (mappings) между различными схемами EXPRESS. Используется для преобразования данных из одной модели в другую.
  • EXPRESS-V: Вариант, предназначенный для описания версий и изменений данных.

Инструменты и реализация

Для работы с языком EXPRESS существует ряд программных инструментов, как коммерческих, так и с открытым исходным кодом:

  • Редакторы и валидаторы: Программы для создания и проверки синтаксиса схем EXPRESS (например, EDM, Express Engine).
  • Генераторы кода: Инструменты, автоматически создающие код на C++, Java, C# или Python на основе схемы EXPRESS.
  • Средства работы с базами данных: Инструменты для отображения схем EXPRESS на реляционные или объектно-ориентированные базы данных (например, SDAI — Standard Data Access Interface).
  • Библиотеки для чтения/записи данных: Библиотеки, реализующие обмен данными в формате STEP (физический файл STEP, обычно с расширением .stp или .step), который основан на схеме EXPRESS.

Связь с другими стандартами

EXPRESS является неотъемлемой частью семейства стандартов ISO 10303 (STEP). Он также используется в смежных стандартах:

  • ISO 13584 (PLIB): Стандарт для библиотек деталей, использующий EXPRESS для описания структур данных.
  • ISO 15926 (Integration of life-cycle data for process plants): Стандарт для интеграции данных о жизненном цикле промышленных объектов, также основанный на EXPRESS.
  • IFC (Industry Foundation Classes): Стандарт для обмена данными в строительной отрасли, который изначально был разработан на основе EXPRESS, но впоследствии был переведён на XML Schema.

Критика и ограничения

Несмотря на свою мощь и формальную строгость, язык EXPRESS имеет ряд недостатков:

  • Сложность синтаксиса: Синтаксис, основанный на Pascal, может показаться громоздким и устаревшим по сравнению с современными языками моделирования, такими как UML или XML Schema.
  • Ограниченная поддержка в современных системах: Многие современные программные системы (особенно веб-приложения и мобильные платформы) не имеют встроенной поддержки EXPRESS, что требует использования дополнительных инструментов для преобразования данных.
  • Отсутствие поддержки объектно-ориентированного программирования: EXPRESS поддерживает наследование, но не поддерживает полиморфизм и инкапсуляцию в том виде, как это принято в современных объектно-ориентированных языках.
  • Сложность отладки: Ошибки в схемах EXPRESS могут быть трудно обнаружимы, особенно при работе с большими и сложными моделями.

Значение

Язык EXPRESS сыграл ключевую роль в стандартизации обмена данными в промышленности. Он обеспечил создание единого, формального языка для описания сложных технических моделей, что позволило различным программным системам обмениваться информацией без потери смысла. Несмотря на появление более современных альтернатив (например, UML, XML Schema, OWL), EXPRESS остаётся важным инструментом в областях, где требуется высокая точность и формальная строгость описания данных, особенно в аэрокосмической, автомобильной и судостроительной промышленности, где стандарты STEP широко применяются.

Источники

  • ISO 10303-11:2004. Industrial automation systems and integration — Product data representation and exchange — Part 11: Description methods: The EXPRESS language reference manual.
  • ISO 10303-11:2021. Industrial automation systems and integration — Product data representation and exchange — Part 11: Description methods: The EXPRESS language reference manual.
  • Schenck, D., & Wilson, P. (1994). Information Modeling: The EXPRESS Way. Oxford University Press.
  • Kramer, T. (1995). The EXPRESS Language. In: Proceedings of the 1995 ACM SIGMOD International Conference on Management of Data.
  • Рекомендации по применению стандарта STEP в промышленности. (2010). НИЦ CALS-технологий «Прикладная логистика».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →