ГОСТ Р ИСО 13584-20—2006
Пример — В схеме IS013S84_expresslons_schema в качестве конкретных типов данных определе
ны только Integer, real. Boolean и string. Поэтому только эти типы связаны с операторами, которые
вычисляют значения.
При введении нового типа данных в процесс конкретизации вовлекаются следующие объекты языка
EXPRESS:
- generlc_expression:
- generic_variable:
- varlable_semantlcs.
- genericjiteral;
- unary_generic_expreselon:
- b)nary_generlc_expression;
- multiple_arity_gener!c_expres3lon.
E.3 Конкретизация схемы IS013584_expresslons_schema
Конкретизация схемы IS013584_expresslons_schema представляет возможность расширения набора опе
раторов теми, которые либо объединяют значения, принадлежащие к базовым типам данных этой схемы (т.е.
NUMBER. REAL. INTEGER. BOOLEAN и STRING), либо производят значения, принадлежащие к этим базовым
типам данных (например, расстояние междудвумя точками).
Такая специализациядолжна обеспечитьпрочность икорректность результирующих выражений ине должна
влиять на корректность обобщенных ресурсов, представленных как EXPRESS-функции. Кроме того, эти ресурсы
должны быть согласованы с их абстрактными описаниями (например. Is_lnt_expr должно позволить определить,
принадлежит ли тип данных выражения к типуданных INTEGER).
Следующие EXPRESS-обьекты были специально введены, чтобы поддерживать такой процесс конкретиза
ции
- boolean_deflned_functlon.
- lnteger_deflned_functlon;
- numeric_deflned_function;
- real_deflned_functlon;
- strlng_de(lned_functlon;
- SQL_mappable_deflned_functlon.
E.4 Методология для конкретизации настоящего стандарта
В данном разделе установлена последовательность действий для определения различных конкретизаций
схем, установленных в настоящем стандарте.
Е.4.1 Идентифицировать конкретный тип данных, который должен быть обработан выражением. Если дол
жны использоваться только типы данных INTEGER. REAL. BOOLEAN и STRING, следует конкретизировать схему
IS013584_expres9lons_schema, в противном случае следуетконкретизировать схему IS013584_generlc_expres-
sions_schema.
E.4.2 Идентифицировать семантические понятия, которые должны соответствовать определенным выра
жениям Определить требуемые подтипы объекта varlable_semantlcs (см приложение D).
Е.4.3 Конкретизация схемы IS013584_generlc_express!ons_schema
Е.4.3.1 Определить корень всех выражений нового типа данных путем определения подтипа объекта
generlc.expresslon (или numerlc_expresston. Boolean_expresslon. либо strlng_expression соответственно).
Е.4.3.2 Определить переменные этих выражений путем определения подтипа обьекта generlc_varlable,
который связан через объект envlronmentc семантикой, определенной по Е.4.2.
Е.4.3.3 Определить константы этих выражений путем определения подтипа объекта genericjiteral
Е.4.3.4 Определить операторы, которые объединяют переменные и константы нового типа данных, путем
определения подтипов объектов unary_generic_expression. binary_generic_expression и multlple_arlty_gene-
rlc_express(on в соответствии с их арностью. Присоединить правила, которые обеспечивают семантическую про
чность и корректность этих операторов.
Е.4.4 Интеграция со схемой IS013S84_expresslons_schema
Е.4.4.1 Если существует какой-либо оператор, который производит значения нового типа данных из выраже
ний
expression
(например, комплексное число, определяемое двумя вещественными числами), то:
- снабдить ссылками схему ISOI
3584_expressions_9Chema.
- определитьэтотоператоркакобщийтипданных корневого объекта, определенного по Е.4.3.1, иодин из сле
дующих объектов: unary_generlc_expression. binary_generic_expresslon или multlple_arlty_generlc_expres-
slon. 8 соответствии с арностью этого оператора. Добавить правила, которые обеспечивают семантическую кор
ректность этого оператора.
Е.4.4.2 Если существует какой-либо оператор на новом типе данных, который генерирует значения одного из
базовыхтипов данныхсхемы ISOI 3584_expresslons_schema. тодля каждого оператора илифункции, возвращаю
щих типы данных INTEGER. REAL, BOOLEAN или STRING, необходимо ввести подтип соответствующего объекта
60