| |||||||
Раздел 3: Язык Express: Супертипы и подтипыОтношения агрегирования (типа целое-часть) или отношения обобщения (функция-вариант реализации), характерные для представления структур объектов в виде альтернативных (И-ИЛИ) деревьев, в языке Express выражаются в форме отношений между типами данных. Для этого введены понятия супертипа (supertype), как более общего типа, и подтипов (subtypes), как подчиненных типов. На рис. 1 верхняя сущность относится к супертипу, а три нижних прямоугольника изображают подтипы, линии связи прямоугольников должны быть утолщенными. Рассмотрим пример фрагмента, в котором имеется ИЛИ вершина a1 и две подчиненные ей альтернативные вершины b1 и b2. Общим атрибутом для b1 и b2 является size типа real, специфичный для b1 атрибут — vol
типа real, а специфичный для b2 атрибут met типа string. Этот фрагмент
может быть описан следующим образом:
ENTITY a1 SUPERTYPE OF (ONEOF (b1,b2)); size: REAL; END_ENTITY; ENTITY b1 SUBTYPE OF (a1); vol: REAL; END_ENTITY; ENTITY b2 SUBTYPE OF (a1); met: STRING; END_ENTITY; Используются также следующие правила записи супертипов и подтипов:
Пример 1
ENTITY device SUPERTYPE OF (ONEOF (transistor, diode)); (* device есть ИЛИ вершина И-ИЛИ-дерева с двумя альтернативами transistor и diode *) END_ENTITY; ENTITY transistor SUBTYPE OF (device); b: REAL; END_ENTITY; ENTITY diode SUBTYPE OF (device); r: REAL; END_ENTITY;
|
СПБГУАП, Санкт-Петербург, 2011 год |