ГОСТ Р И С 0 10303-11 — 2009
9.2.1.1 Явный атрибут
Явный атрибут представляет свойство, значение которого должно быть обеспечено реализацией
при создании экземпляра. Каждый явный атрибут определяет отдельное свойство. Объявление явного
атрибута создает один или несколько явныхатрибутов, имеющих указанную областьопределения, и назна
чает каждому из них идентификатор.
Синтаксис:
215expiicit_attr = attribute_decl{ ,., attribute_ded} ’[OPTIONAL] parameter_type
177 attribute_ded = attributeJd | redeclared_attribute.
266 parameterjype = generalized.,types | named_types |simple_types.
П р и м е ч а н и е — Синтаксис объекта redeclared_attribute обеспечивает повторное определение
атрибута, установленное в 9.2.3.4.
Правила и ограничения:
a) Если явный атрибут не объявлен как OPTIONAL, то каждый экземпляр объектного типа данных
должен иметь значение для данного атрибута.
П р и м е ч а н и е — Если типом данных явного атрибута является наращиваемый перечисляемый тип
данных, для которого не заданы элементы перечисления, то такой объект не может быть реализован, если
только какое-нибудь расширение перечисляемого типа, содержащее, по крайней мере, один элемент перечис
ления. не будет объявлено. Если типом данных явного атрибута является наращиваемый выбираемый тип
данных, для которого не заданы элементы списка выбора, то такой объект не может быть реализован, если
только какое-нибудь расширение выбираемого типа, содержащее, по крайней мере, один именованный тип. не
будет объявлено.
b
) Ключевое слово OPTIONAL указывает на то. что в конкретном экземпляре объекта данный атрибут
не обязательнодолжен иметь значение. Если атрибут не имеет значения, то считается, что он имеет нео
пределенное (?) значение.
c) Явный атрибут не должен объявляться ни явно, ни косвенно как имеющий тип данных
GENERIC.
П р и м е ч а н и я
1 Данное правило справедливо, несмотря на то. что таков объявление допускается синтаксисом.
2 Ключевое слово OPTIONAL указывает, что данный атрибут всегда является значимым для экземпля
ровданного объектного типа, но при этом для некоторых экземпляров он может не иметь значения, соответ
ствующего роли, определяемой данным атрибутом. Ключевое слово OPTIONAL не указывает на то. что атрибут
является значимым только для некоторых экземпляров объектного типа данных. Ситуация, при которой
атрибут не является значимым для некоторых экземпляров, должным образом моделируется путем опреде
ления подтипов (см. 9.2.3).
3 Необходимо обратить внимание на ссылки на необязательные атрибуты, особенно в правилах,
поскольку такие атрибуты могут не иметь значения. Встроенная функция EXISTS может использоваться для
определения существования значения атрибута, а встроенная функция NVL позволяет обеспечить значение по
умолчанию для вычислений. Если ни одна из данных функций не используется, то могут получиться непред
сказуемые результаты.
Пример — Следующие объявления эквивалентны:
ENTITY point;
х, у. z : REAL:
END ENTITY;
ENTITY point;
x : REAL;
у : REAL;
z : REAL;
END ENTITY;
9.2.1.2 Вычисляемый атрибут
Вычисляемый атрибут представляет свойство, значение которого определяется посредством вычис
ления значения выражения. Вычисляемые атрибуты объявляются после ключевого слова DERIVE. Объяв
ление состоит из идентификатора атрибута, типа его представления и выражения, котороедолжно исполь
зоваться для вычисления значения атрибута.
30