ГОСТ Р ИСО 13584-42—2012
F.3.10.14Функция вычисления известногоприменимого типаданных (Compute_known_applicable_dataJypes)
Функция compute_known_applicable_data_types вычисляет набор типов данных data_type, являющихся
применимыми в данном классе. Если определение недоступно, то функция возвращает только те применимые
типы данных data_types. которые могут быть вычислены.
Примечание — Если словарное определение dictionary_definition некоторого класса не присутствует
в рассматриваемом контексте обмена (а контекст обмена библиотеки PLIB никогда не предполагается полным),
то суперкласс некоторого класса может быть неизвестен. Следовательно, типы данных data_types,
определенные как применимые в данном суперклассе, не могут быть вычислены функцией
compute_known_applicable_data_ type. Только для получающей системы все словарные определения
dictionary_definition базовых семантиче ских единиц (ВСЕ) являются доступными. Следовательно, для
получающей системы функция compute_known_ applicable_data_types вычисляет всетипы данных data_types.
являющиеся применимыми в классе, таккак на них производится ссылка атрибутом defined_type, или они
импортируются с помощью априорного семантического со отношения a_priori_semantic_relationship.
Пример представления на языке EXPRESS:
*)
FUNCTION computeJ<nown_applicable_dataJypes(d: class_BSU):
SET OF data_type_BSU:
LOCAL
s: SET OF data_type_BSU:= (];
ENDJ.OCAL;
IF SIZEOF(cl.definition) = 0
THEN
RETURN(s);
ELSE
REPEAT i:= 1TO SIZEOF(cl.definition[1]\dass.definedJypes):
s:= s +d.defmition[1]\class.definedJypes[i];
END_REPEAT:
IF (CISO13584JEC61360JTEMJ^LASS_CASE_OF_SCHEMA.‘
+ A_PRIORI_SEMANTIC_RELATIONSHIP)
IN TYPEOF (d.definition[1)))
THEN
s:= s +d.defmition[1l\a_priori_semantic_relationship
.referenced_data_types:
ENDJF;
IF EXISTS(cl.definition[1]\dass.its_superdass)
THEN
s:= s +compute_knov/n_applicable_data_types(
d.definitk>n[ 1]\dass.its_superdass);
ENDJF;
RETURN(s);
ENDJF;
END_FUNCT10N; — compute_known_applicable_dataJypes
(*
F.3.10.15 Функция создания набора из элементов списка (ListJo_set)
Функция list_to_set создает набор из элементов списка с именем I. Тип элементов набора совпадает с типом
элементов в исходном списке.
Пример представления на языке EXPRESS:
*)
FUNCTION Kst_to_set0: LIST [0:?] OF GENERIC:lype_elem):
SET OF GENERIC: type_elem;
LOCAL
s: SET OF GENERIC: type_elem:= [);
ENDJ.OCAL;
REPEAT i:= 1TO SIZEOF(I);
s:= s + Ip]:
END_REPEAT:
122