Семинар по ISO 10303. Обзор норм ISO 10303. Внедрение языка EXPRESS. Преобразование ISO 10303-22, страница 12

SDAI определяет операции, которые находятся в распоряжении программы, чтобы получить доступ и обрабатывать данные, структура которых описана с применением норм ISO 10303-11 (EXPRESS). Он определяет таким образом функциональный интерфейс между прикладной программой и двумя различными наборами данных: хранилищем (Repository) и экземпляром схемы. В хранилище располагаются собственно данные, к которым должен быть доступ с помощью SDAI. Оно может быть реализовано как отдельная база данных, множество баз данных, отдельный файл, несколько файлов или любым другим способом. Экземпляр схемы -конкретное машинное изображение схемы EXPRESS. С помощью SDAI можно получить доступ как собственно к данным, так и к их описанию в схеме.

SDAI описывается в ISO 10303-22 в форме, которая независима от определенного языка программирования, чтобы сделать возможным независимость от устаревающих технологий.

Преобразование SDAI для конкретного использования производится в две ступени: привязка к языку и реализация

4.2 Преобразование ISO 10303-22

4.2.1 Привязка к языку

Чтобы иметь возможность конкретно использовать SDAI, он должен быть переведен на язык программирования Это преобразование в определенный программный язык называется привязкой SDAI к определенному языку Привязки к языкам публикуются как самостоятельные части ISO 10303 В настоящее время имеется привязка к языкам программирования C++, С и FORTRAN Они описаны в частях 23 (C++), 24 (С) и 25 (FOK.TRAN) Эти части находятся только .в первой стадии разработки и должно еще пройти известное время, прежде чем они будут опубликованы официально в качестве часта норм ISO и их содержание еще может сильно измениться.

При привязке к языку для конкретного языка специфицируются определенные в ISO 10303-22 операции и функции или подпрограммы, то есть устанавливается, как называются функции или подпрограммы, какие входные и выходные параметры (вид и последовательность) требует каждая отдельная функция и как показываются ошибки. Кроме того, привязка-языка может дополнить функции и подпрограммы соответствующими операциями, как они специфицированы в ISO 10303-22, чтобы достичь эффективной или более удобной реализации этих операций.

Имеется два принципиально различных вида привязки к языку, позднее связывание (Late Binding) и ранее связывание (Early Binding).

Позднее связывание является привязкой,  которая не зависит от схемы EXPRESS, описывающей экземпляры данных, к которым производится доступ с neMonniio'SDAI Схемы EXPRESS связываются с программой только на стадии запуска программы Это-означает, что применяемые программой схемы EXPRESS могут быть без труда расширены без перекомпиляции программы Прикладной программист должен знать во время разработки, только ту часть схемы и entities, которые он сам конкретно применяет, он теоретически даже может оставить на пользователя интерактивный ввод вовремя работы программы, так как эта информация далее передается через параметры функциям SDAI (это называется также: очень поздним связыванием "Very Late Binding") Набор функций SDAI достаточен, чтобы получить доступ к данным любой схемы EXPRESS

Пример

Задано, что в применяемой схеме EXPRESS имеется entity с именем P.OINT и с атрибутом Х типа REAL Чтобы создать экземпляр entity, 'вызов функции может выглядеть следующим образом

CREATE ('POINT, ID);

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

Раннее связывание является привязкой к языку, которая зависит от схемы EXPRESS, которая описывает экземпляры, данных, к которым производится доступ с помощью SDAI. Типы entity применяемой схемы EXPRESS привязываются уже при выполнении операций SDAI. Преимущество раннего связывания состоит в том', что возможно на ранней стадии, то есть при компилировании программы, проверить корректность типов, При позднем же связывании много ошибок-выявляется только на стадии запуска программы. Недостаток раннего связывания в том, что для каждой EXPRESS-схемы должен создаваться новый набор функций SDAI.