Автоматизированное проектирование. Норенков И.П. - 175 стр.

UptoLike

Составители: 

%*#$A&,& +($*,#&($"!)&P !"#$%!#&'&($"!))KH :&:#*%5@!"! 6
За писи вида array[2:8] или list[1:?] в Express-G преобразую тся в
форму A[2:8] или L[1:?], ук азыв аемую около линии атриб ута агрегативного
типа после имени этого атриб ута. Так, первый из вышеприве денных приме-
ров представлен на рис. 6.24.
$38.5.D>./12, 0.A+,D4942, 915.D>./12 -+31. U0"$-$49$/.; &'0 обычно вводится пользователем
для улучшения читаемости модели. G$1'+4#(#; &'0 тип данных, экземплярами которого являются нечисловые (пред-
метные) переменные. I.-$49$/.; &'0 соответствует поименованной совокупности других типов. Описание этих типов
данных начинается со служебного слова type, за которым следует идентификатор типа и его определение. Пример описа-
ния определяемого типа:
type volume = real;
end_type;
entity manual;
name: string;
v1,v2,v3: volume;
end_entity;
Определение нечислового типа начинается со служебных слов enumeration of, после которых в скобках перечисля-
ются элементы множества. Например:
type cоlоr = enumeration of (red, green, blue);
end_type;
Ссылка на значение red теперь возможна в виде red или color.red.
Выделяемый тип соответствует одному из некоторого списка уже введенных типов. Этот список записывается по-
сле служебного слова select. Ссылка на имя выделяемого типа означает, что выбирается один из типов совокупности:
type a_c = select (one, two, three);
end_type;
. . .
proc: a_c; (* proc может быть объектом одного из типов one, two, three*)
Графические изображения определяемых, нечисловых и выделяемых типов данных показаны на рис. 6.25. Внутри
прямоугольников, ограничиваемых пунктирными линиями, записывается имя типа.
*
<3.8-+31 + 345-+31.
Отношения типа целое-часть или функция-вариант реализации, характерные для
представления структур объектов в виде альтернативных (И-ИЛИ) деревьев, в языке EXPRESS выражаются в форме от-
ношений между типами данных. Для этого введены понятия +70$"&'0) (supertype), как более общего типа, и 0#-&'0#(
(subtypes), как подчиненных типов. На рис. 6.26 верхняя сущность относится к супертипу, а три нижних прямоугольника
изображают подтипы, линии связи прямоугольников должны быть утолщенными.
Рассмотрим пример фрагмента И-ИЛИ-дерева, в котором имеется ИЛИ вершина а1 и две подчиненные ей альтер-
нативные вершины 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 е сть И вершина, вместо oneof используется зарезервиро-
ванное слово and (в более общем случае andor), т.е. вторая строчка примера будет
выглядеть так:
supertype of (b1 and b2);
&.+.)$(*),$". !"#$%!#&'&($"!))$* +($*,#&($"!)&*
175
%+,. 6.24. Обозначение атрибута агрегативного
типа в Express-G
%+,. 6.25. Изображения типов
данных в Express-G
%+,. 6.26. Изображение иерархии
типов в Express-G
 5@!"! 6                                      %*#$A&,&    +($*,#&($"!)&P !"#$%!#&'&($"!))KH :&:#*%

      Записи вида array[2:8] или list[1:?] в Express-G преобразуются в
форму A[2:8] или L[1:?], указываемую около линии атрибута агрегативного
типа после имени этого атрибута. Так, первый из вышеприведенных приме- %+,. 6.24. Обозначение атрибута агрегативного
ров представлен на рис. 6.24.                                                         типа в Express-G
      $38.5.D>./12, 0.A+,D4942, 915.D>./12 -+31. U0"$-$49$/.; &'0 обычно вводится пользователем
для улучшения читаемости модели. G$1'+4#(#; &'0 — тип данных, экземплярами которого являются нечисловые (пред-
метные) переменные. I.-$49$/.; &'0 соответствует поименованной совокупности других типов. Описание этих типов
данных начинается со служебного слова type, за которым следует идентификатор типа и его определение. Пример описа-
ния определяемого типа:

      type volume = real;
      end_type;
      entity manual;
      name: string;
      v1,v2,v3: volume;
      end_entity;

      Определение нечислового типа начинается со служебных слов enumeration of, после которых в скобках перечисля-
ются элементы множества. Например:

      type cоlоr = enumeration of (red, green, blue);
      end_type;

      Ссылка на значение red теперь возможна в виде red или color.red.
      Выделяемый тип соответствует одному из некоторого списка уже введенных типов. Этот список записывается по-
сле служебного слова select. Ссылка на имя выделяемого типа означает, что выбирается один из типов совокупности:

      type a_c = select (one, two, three);
      end_type;
      ...
      proc: a_c; (* proc может быть объектом одного из типов one, two, three*)

       Графические изображения определяемых, нечисловых и выделяемых типов данных показаны на рис. 6.25. Внутри
прямоугольников, ограничиваемых пунктирными линиями, записывается имя типа.
       *<3.8-+31 + 345-+31. Отношения типа целое-часть или функция-вариант реализации, характерные для
представления структур объектов в виде альтернативных (И-ИЛИ) деревьев, в языке EXPRESS выражаются в форме от-
ношений между типами данных. Для этого введены понятия +70$"&'0) (supertype), как более общего типа, и 0#-&'0#(
(subtypes), как подчиненных типов. На рис. 6.26 верхняя сущность относится к супертипу, а три нижних прямоугольника
изображают подтипы, линии связи прямоугольников должны быть утолщенными.
       Рассмотрим пример фрагмента И-ИЛИ-дерева, в котором имеется ИЛИ вершина а1 и две подчиненные ей альтер-
нативные вершины 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;
                                                                                    %+,. 6.25. Изображения типов
      end_entity;
                                                                                         данных в Express-G
      entity b2
      subtype of (a1);
      met: string;
      end_entity;
      Используются также следующие правила записи супертипов и подтипов:
      — в случае, если а1 есть И вершина, вместо oneof используется зарезервиро-
ванное слово and (в более общем случае andor), т.е. вторая строчка примера будет
выглядеть так:                                                                   %+,. 6.26. Изображение иерархии
      supertype of (b1 and b2);                                                          типов в Express-G


 &.+.)$(*),$" . !"#$%!#&'&($"!))$*                +($*,#&($"!)&*                                           175