ГОСТ Р ИСО 10303-11 — 2009
Приложение В
(обязательное)
Определение допустимых реализаций объектов
В конкретном графе подтип/супертип может присутствовать большое число сложных и простых объектных
типов данных, которые могут реализовываться в виде своих экземпляров. В данном приложении показано, как
объектные типы данных идентифицируются в объявлении общего графа подтипов/супертипов.
П р и м е ч а н и е — Для иллюстрации дальнейшего изложения рассмотрим множество натуральных чисел
(1. 2. 3 ....). Данное множество может быть структурировано разными способами:
- разделено на четные и нечетные числа: [2. 4. 6. ...J и (1. 3. 5. 7.
- выделены простыв числа: [2, 3, 5, 7,...);
- выделены числа с общим делителем 3: [3. 6. 9. 12, ...]:
- выделены числа с общим делителем 4: [4. 8. 12.16. ...].
В терминах языка EXPRESS натуральные числа могут быть представлены супертипом, а другие множества
чисел — его подтипами. Очевидно, что некоторые из подтипов являются неперекрывающимися множествами
(например, четные и нечетные числа), в то время как другие будут иметь какие-то общие элементы (например,
подтипы «Числа с общим делителем 3» и «Числа с общим делителем 4»),
В.1 Формализованный подход
Любая группа объектных типов данных, связанная отношениями «подтип/супертип». может рассматри
ваться как потенциально реализуемый граф подтипов.’супер типов. В данном формализованном подходе такие
группы объектных типов данных называются частичными сложными объектными типами данных. Частичный
сложный объектный тип данных может содержать единственный объектный тип данных, поскольку отдельный
объектный тип данных является потенциально реализуемым. Частичный сложный объектный тип данных обо
значается именами составляющих его объектных типовданных, разделенных символом ’ & Частичные сложные
объектные типы данных могут комбинироваться для образования новых частичных сложных объектных типов
данных. Частичный сложный объектный тип данных может быть сложным объектным типом данных сложного
объекта, но для того, чтобы в этом удостовериться, необходимо осуществить его полную оценку. Экземпляр
сложного объекта, являющийся предметом рассмотрения в данном приложении, представляет собой экземпляр
сложного объектного типа данных.
Для любого частичного сложного объектного типа данных справедливы следующие тождества:
А&А = А, то есть конкретный объектный тип данных может присутствовать в данном частичном сложном
объектном типе данных только один раз;
А&В н В&А, то есть фуппирование частичных сложных объектных типов данных является коммутативным;
АЩВ&С) = (А&8)&С = A&BScC, то есть группирование частичных сложных объектных типов данных являет
ся ассоциативным; круглые скобки, указывающие на приоритет выполнения вычислений в данном случае не
влияют на результат.
Результирующее множество определяется как математическое множество частичных сложных объектных
типов данных, обозначенное частичными сложными объектными типами данных, разделенными запятыми (’. ’) и
заключенными в квадратные скобки. Пустое результирующее множество обозначается ’ [)’.
Для объединения частичного сложного объектного типа данных и результирующего множества могут быть
использованы два оператора:
А + [81.82) = [81. 82) + А = [А. 81.82). Оператор’ + ’добавляет частичный сложный объектный тип данных к
результирующему множеству в качестве нового элемента данного множества. Один и тот же частичный сложный
объектный тип данных не должен присутствовать в одном результирующем множестве более одного раза;
А&[81,82] = [81. 82J&A = ^A&B^A&B2\. Оператордобавляет частичный сложный объектныйтип данных
ко всем частичным сложным объектным типам данных в результирующем множестве. Следовательно, он являет
ся дистрибутивным для результирующих множеств.
Результирующие множества могут объединяться посредством тех же двух механизмов:
[А1.А2] + [81,82) = [А1.А2,81.82). Может бытьсформировано результирующее множество, содержащее все
элементы двух объединяемых множеств. Данная операция является объединением двух множеств;
[А1, А2)«&[81,82) = [А1&В1. А1&В2. А2&.81. A2&B2J. Результирующее множество может быть сформирова
но путем повторного применения правила дистрибутивности, касающегося оператора ’ & ’, для каждого элемента
первого результирующего множества ко второму результирующему множеству.
127