ГОСТ Р И С 0 10303-11 — 2009
ENTITY Ь SUBTYPE OF (а);
END_ENTITY:
ENTITY с SUBTYPE OF (b);
END_ENTITY:
FUNCTION test (pi: GENERlC:x: p2: GENERIC:x):GENERIC:x;
____
AAA
объявлениессылкассылка
—
ENDFUNCTION;
LOCAL
v_a : a := a(...);
v_b : b := a(...) | |b(..— оператор || определен в 12.10
v_c : c ^ a(.. .)| |b(...) 11c(...);
v_x : b;
END LOCAL;
v_x:= test(v_b. v_a); --неверный v_a, не совместимый с типом b
v_x := test(v_a, v_b); — неверное присваивание, функция вернет тип а
Другие примеры использования меток типов приведены в разделе 15.
9.5.3.5 Общие агрегированные типы данных
Общие агрегированные типы данных образуют часть класса типов данных, называемых обоб
щенными типами данных. Общий агрегированный тип данных представляют обобщение соответству
ющих агрегированных типов данных (ARRAY, BAG. LIST и SET), позволяющее представлять тип
данных элемента схемы обобщенным типом данных. То есть элемент general_list_type в приведен
ном ниже определении синтаксиса является обобщением элемента list type так же. как и для типов
данных ARRAY. BAG и SET.
Синтаксис:
224 general_aggregation_types = general_array_type | general_bag_type |
general_list_type | general_set_type.
225 general_array_type = ARRAY [ bound_spec ] OF [OPTIONAL] [UNIQUE ]
parameter_type.
185 bound_spec = ’[’ b o u n d _ 1 b o u n d _ 2 .
183bound_1 = numeric_expression.
184bound_2 = numeric_expression.
266 parameter_type = generalized_types | named_types | simple_types.
226 general_bag_type = BAG [ bound_spec ] OF parameter_type.
227 generaljistjype = LIST [ bound_spec] OF [ UNIQUE ] parameter_type .
229 general_set_type = SET [ bound_spec ] OF parameter_type.
Общий агрегированный тип данных обобщает соответствующий агрегированный тип следующим
образом:
- обобщенный массив может быть определен без указания значений индексов. При этом в специ
фикации формального параметра не указываются границы массива (элемент синтаксиса bound_spec).
П р и м е ч а н и е — Для определения реальной системы индексирования массива в алгоритмической части
должны использоваться функции HIINDEX и LOINDEX;
- базисным типом данных может быть GENERIC. GENERIC_ENTITY, AGGREGATE или общий
агрегированный типданных при использовании в качестве формального параметра функции или проце
дуры либо GENERIC_ENTITY. AGGREGATE или общий агрегированный тип данных при использовании в
абстрактном объектном типе данных. Это определено в формализованной форме ниже.
Пусть G является общим агрегированным типом данных, a EG — (обобщенным) типом данных
его элементов. Пусть для формального параметра функции или процедуры А является типом данных
соответствующего фактического параметра: пусть для атрибута абстрактного объектного типа данных
А является типом данных повторно объявленного атрибута неабстрактного подтипа и пусть для
любого случая ЕА является типомданных элементов А.
52