Статус документа
Статус документа

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

     12.11 Совместимость типов


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

- типы данных совпадают;

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

- оба типа данных являются типами данных ARRAY с совместимыми базисными типами данных и одинаковыми границами;

- оба типа данных являются типами данных LIST с совместимыми базисными типами данных;

- оба типа данных являются типами данных BAG или SET с совместимыми базисными типами данных.

Пример - Заданы следующие определения:

TYPE natural = REAL;

WHERE SELF >= 0.0;
     END_TYPE;
     TYPE positive = natural;
     WHERE SELF > 0.0;
     END_TYPE;
     TYPE bag_of_natural = BAG OF natural;
     END_TYPE;
     TYPE set_of_up_to_five_positive = SET [ 0 : 5 ] OF positive;

END_TYPE;

При этом совместимыми являются следующие типы данных:

Тип данных

Совместим с типами данных

REAL

INTEGER, REAL, NUMBER, natural, positive

natural

REAL, NUMBER, natural, positive

positive

REAL, NUMBER, natural, positive

bag_of_natural

BAG OF REAL, BAG OF NUMBER, BAG OF natural,
BAG OF positive, SET OF REAL, SET OF NUMBER,
SET OF natural, SET OF positive, bag_of_natural,
set_of_up_to_five_positive


set_of_up_to_five_positive

BAG OF REAL, BAG OF NUMBER, BAG OF natural,
BAG OF positive, SET OF REAL, SET OF NUMBER,
SET OF natural, SET OF positive, bag_of_natural,