ГОСТ Р 53556.5—2013
должна произойти сразу после завершение блока оператора, и прежде чем делаютсядругие вычисления.
Единичное значение и выражение значения массива могут быть ссылочными параметрами. Если оценен
ное массивом выражение будет использоваться, то связанный формальный параметр должен быть масси
вом той же самой длины.
Чтобы вычислить значение выражения вызова кода операции, ссылающегося на код операции на
определенном уровне, значения фактических выражений параметра должны быть вычислены в порядке их
появления в списке выражения. Исходное значение базового кода операции должно быть вычислено со
гласно правиламдля определенного кода операции. Если уровень формального параметра ниже, чем уро
вень кода операции, то применяют следующие правила:
- в коде операции заходят в
k-rato.
фактические переменные, связанные с
rvar
формальными парамет
рами. обновляются только в первый раз, когда выполняется код операции;
- в коде операции заходят в
a-rate.
фактические переменные, связанныес
ivar
формальными парамет
рами обновляются только в первый раз, когда выполняется код операции. Фактические переменные, свя
занные с
ksig
формальными параметрами, обновляются только в первый раз. когда этот код операции
выполняется в
к
цикле кода операции.
П р и м е ч а н и е — Переменные, объявленные в рамках определяемого пользователем кода операции,
оцениваются статически. То есть, они сохраняют свои значения от вызова до вызова. Значения переменных в
рамках определяемого пользователем кода операции устанавливаются в 0 прежде, чем код операции
вызовут в первый раз. Каждый синтаксически отличный вызов кода операции создает только один контекст кода
операции.
8.67.7 Вызов
ораггау
<ехрг>-> <idont> [<ехрг>] (<exprlist>)
Выражение вызова
ораггау
позволяет динамически делать выбор состояния кода операции из не
скольких.
Идентификатор называют именем кода операции, выражение в скобках называют индексным выра
жением. а выражения в списке параметра называют фактическими параметрами. Недопустимо использо
вать идентификатор, который не является именем базового кода операции и также не является именем,
определенным пользователем кода операции. Недопустимо использовать идентификатор, для которого
ораггау
хранение не выделяется влокальном контексте.Для определяемых пользователем кодов операции
число фактических параметровдолжно быть тем же самым, какчисло формальных параметров в определе
нии кода операции. Для ядра число фактически требуемых параметров изменяется от кода операции до
кода операции.
Индексное выражение должно быть единичным выражением.
Уровень выражения вызова
ораггау
является уровнем кода операции, на который ссылаются. Уровень
индексного выражения не должен быть выше, чем уровень кода операции, на который ссылаются.
Ширина выражения вызова
ораггау
является числом каналов, возвращенных операторами
return
в
пределах блока кода операции.
Контекст выражения вызова
ораггау
ограничивается таким же образом, как описано для выражения
вызова кода операции в 8.67.6. Семантика уровня для выполнения вызова
ораггау
по тем же правилам,
описанным для выражения вызова кода операции в 8.67.6.
Значение выражения вызова
ораггау
определяется таким же образом, как описано для вызова кода
операции в 8.67.6, со следующими исключениями и дополнениями.
Прежде, чем значения фактических выражений параметра вычисляются, вычисляется значение ин
дексного выражения. Это — ошибка времени выполнения, если значение индексного выражения не нахо
дится в диапазоне [0.. л-1], где л является размером выделения в
ораггау
определении для этого
ораггау.
Если индексное выражение не является целым числом, оно округляется к самому близкому целому числу.
Хранение контекста, связанного с именем кода операции и значением индексного выражения, выбирается из
набора контекстов
ораггау
в локальном контексте. В пределах каждого контекста
ораггау
локальные
переменные сохраняют свои значения от вызовадо вызова.
8.67.8 Комбинация векторных и скалярных элементов в математических выражениях
Для каждого математического выражения ширина выражения является максимальной шириной лю
бого из ее подвыражений. У каждого подвыражения, в пределах выражения, должна быть та же самая
ширина, или равна 1.
30