ГОСТ Р И С 0 10303-11 — 2009
LOCAL
s : SET OF temp := [];
END LOCAL:
REPEAT i := 1 TO SlZEOF(b);
s := s + temp(b[i].a1. b[i].a2):
END REPEAT:
WHERE
wt
I :
VALUE_UNIQUE(s);
END_RULE:
Неявное объявление.
В объявлении RULE каждый синтаксический элемент population неявно объявлен локальной пере
менной, содержащей множество всех экземпляров именованного объектного типаданных из области опре
деления. Данное множество экземпляров объекта подчиняетсяданному правилу.
Синтаксис:
267 population = entity_ref.
Правило: ссылки на конкретный элемент population могут быть сделаны только в глобальном прави
ле. которое ссылается на соответствующий объектный типданных в заголовке данного правила.
Пример — При наличии следующего объявления:
RULE coincident FOR (point);
неявно объявленная переменная может выглядеть следующим образом:
LOCAL
point : SET OF point:
END_LOCAL;
9.7 Ограничения подтипов
Понятия подтипа и супертипа определены в9.2.3. Понятие ограничений подтипов/супертипов опреде
лено в 9.2.5. Существует возможность определить ограничения, в соответствии с которыми графы подти-
пов/супертипов могут быть реализованы вне объявления объекта. Данная возможность реализуется по
средством объявления SUBTYPE_CONSTRAINT.
Синтаксис:
315 subtype_constraint_decl
= subtype_constraint_head subtype_constraint_body
END_SUBTYPE_CONSTRAINT *?.
316subtype_constraint_head = SUBTYPE_CONSTRAINT subtype_constraint_ID FOR
entity_ref
314 subtype_constraint_body = ( abstract_supertype ] [total_over]
[ supertype_expression
165 abstract_supertype = ABSTRACT SUPERTYPE
326 total_over = TOTAL_OVER 1( ’ entity_ref {entity_ref } ’) ’
320 supertype_expression = supertype_factor{ANDORsupertype_factor}.
321 supertype_factor = supertype_term{ANDsupertype_term}.
323supertypejerm -entity_ref|one_of | ’ (* supertype_expression
263one_of = ONEOF ’ (’ supertype_expression {supertype_expression }
Объявление SUBTYPE_CONSTRAINT используетсядля определения следующих ограничений на
возможную реализацию подтипов/супертипов:
- ограничение, что супертип является абстрактным и должен реализовываться только через свои
подтипы;
- ограничение, что совокупность подтиповданного супертипа обеспечивает полное покрытие; то есть
если полное покрытие задано, то экземпляр любого подтипаданного супертипа должен также быть экзем
пляром. по крайней мере, одного из подтипов, определенных вспецификации TOTAL_OVER;
- ограничение взаимосвязи между некоторыми подтипами.
Каждый из этих видов ограничений более детально рассмотрен в последующих пунктах. Формаль
ный подход копределению потенциальных комбинаций подтип/супертип, которые могутбыть реализованы
при нескольких возможных ограничениях, описанных ниже, представлен в приложении В.
55