ГОСТ Р И С 013606-2—2012
8.3.3.3 Операторы равенства
Поддерживаются следующие операторы равенства:
- равенство: =:
- неравенство: <>.
Семантика этих операторов заключается всравнении значений.
8.3.3.4 Операторы отношения
Поддерживаются следующие операторы отношения:
- меньше: <;
- меньше или равно: <=;
- больше: >;
- больше или равно: >=.
Семантика этихоператоров заключается всравнении значений. Их область применения ограничена
значениями сопоставимых типовданных.
8.3.3.5 Булевские операторы
Поддерживаются следующие булевские операторы:
- не: not:
- и: and:
- исключительное или: хог.
- имеет следствием: implies
- принадлежность к множеству: matches, is_in.
Булевские операторы также имеют символьные эквиваленты, показанные выше.
8.3.3.6 Кванторы
Поддерживаются два стандартных кванторных оператора.
- квантор существования: exists.
- квантор всеобщности: for_all.
Данные операторы также имеют обычные символьные эквиваленты, показанные выше.
8.3.4 Операнды
Операнды формулировок утверждений могут быть следующих типов:
- именованная константа — любая константа любого примитивного типа данных, записанная в соот
ветствии с синтаксисом языка dADL для значений:
- ссылка на переменную — любое имя. начинающееся с символа $. например Sbody_weight:
- ссылка на свойство— путь к свойству, т. е. любой путь, заканчивающийся на ,имя_свойства:
- ссылка на объект — путь к узлу объекта, т.е. любой путь, заканчивающийся идентификатором узла.
Если утверждение используется вопределении слота архетипа, то его операнды относятся к архети
пу. заполняющему слот, а не к архетипу, содержащему данный слот.
8.3.5 Переменные
8.3.5.1 Предопределенные переменные
В формулировках утверждений на языке ADL можноуказывать ряд предопределенных переменных,
включая следующие:
- $current_date: Date; возвращает текущую дату при каждом использовании архетипа;
- $current_time: Time: возвращает текущее время при каждом использовании архетипа;
- Scurrent_datetime: Date_Time; возвращает текущие дату и время при каждом использовании архетипа.
8.3.5.2 Переменные, определенные в архетипе
Переменные могут быть также определены внутри архетипа как часть формулировокутверждений в
секции invariant. Принят следующий синтаксис определения переменной:
let$var_name =reference
При этом reference может иметьлюбой тип из перечисленных выше типов операндов. Определения
переменных могут встречаться влюбом месте блока invariant, нодля улучшения читаемости текста их, как
правило, следует приводить вначале.
П р и м е ч а н и е — Следующий пример иллюстрирует использование переменных в блоке invariant:
invariant
let $sys_bp =
/datalat9001]/events(at9002)i’data[at1000yitems[at1100]
let $dia_bp =
l,datalat9001]/events[at9002).,data[at1000yitems[at12001
$sys_bp >= $dia_bp
85