Главная Промышленная автоматика.

быть описаны как имеющие тип Boolean (см. разд. 5.1.-Описания типа и разд. 5.4.4. Значения указателей функции).

3.4.5. Операции

Отношения принимают значения true в том случае, когда, соответствующее отношение удовлетворяется для входящих в него выражений; в противном случае они принимают значение false.

Значения знаков логических операций "1 (не), Л (и), V (или), zd (влечет) и ~ (эквивалентно) даются следующей функциональной таблицей:

61 false false true true

62 false true false true

~\b\ true true false false

bl Л Ь2 false false false true

bl V b2 false true true true

61 zd 62 true true false true

61=62 true false false true

3.4.6. Старшинство операций

Операции в пределах одного выражения выполняются, вообще говоря, в последовательности слева направо с учетом следующих добавочных правил:

3.4.6.1. Согласно синтаксису, данному в разд. 3.4.1, выдерживается следующий порядок старшинства:

первый: арифметические выражения согласно

разд. 3.3.5.

второй: =

третий: ~] . . !

четвертый: Л пятый: V -

шестой: zd седьмой: s

3.4.6.2. Применение скобок интерпретируется в смы-, еле, данном в разд. 3.3.5.2.



3.5. Именующие выражения

3.5.1. Синтаксис

(метка):: = (идентификатор) (целое без знака) (идентификатор переключателя) : : = (идентификатор) (указатель переключателя): : = (идентификатор переключателя) [(индексное выражение)] простое именующее выражение): : = (метка)(указатель переключателя) I ((именующее выражение)) (именующее выражение): : = (простое именующее выражение) (условие) (простое именующее выражение) else (именующее выражение)

3.5.2. Примеры

17 . - • ,

р<д " " •

Выбрать [п - 1]

Town [if y<Q then N else iV+1]

if Ab< с then 17 else [if та;<0 then 2 else n]

3.5.3. Семантика

Именующее выражение, является правилом для получения метки оператора (см. гл. 4. Операторы). Принципы вычисления значения по-прежнему полностью аналогичны правилам, приведенным для арифметических выражений (разд. 3.3.3). В общем случае логические выражения, содержащиеся в условиях, выбирают простое именующее выражение. Если это метка, то желаемый результат уже получен, Указатель переключателя отсылает к соответствующему описанию переключателя (см. разд. 5.3. Описания переключателей) и по фактическому числовому значению своего индексного выражения выбирает одно из именующих выражений, перечисленных в описании переключателя, отсчитывая эти выражения слева направо. Так как выбранное таким образом именующее выражение может в свою очередь оказаться указателем переключателя, то вычисление



значения, очевидно, представляет собой рекурсивный процесс.

3.5.4. Индексноевыражение

Вычисление значения индексного выражения аналогично такому же вычислению для переменных с индексами (см. разд. 3.1.4.2). Значение указателя переключателя определено только в том случае, когда индексное выражение принимает одно из положительных значений 1, 2, 3, ..... п, где п -число членов в переключательном списке. I

3.5.5. Целые беззнака в качестве меток

Целые без знака, используемые в качестве меток, обладают тем свойством, что стоящие впереди «ули не изменяют их значения. Например, 00217 обозначает ту же метку, что и 217.

4. ОПЕРАТОРЫ

Единицы действий в языке называются операторами. Обычно они выполняются в той последовательности, в которой написаны. Однако эта последовательность действий может прерываться операторами перехода, которые явно определяют своего преемника, и сокращаться условными операторами, которые могут вызывать пропуск некоторых операторов.

Для того чтобы имелась возможность указать фактический порядок следования операторов в процессе работы, операторы могут снабжаться метками.

Ввиду того что последовательности Операторов могут группироваться в составные операторы и блоки, определение оператора по необходимости должно быть рекурсивным. Кроме того, поскольку описания, о которых говорится в гл. 5, существенно входят в синтаксическую структуру, синтаксическое определение Операторов должно предполагать, что описания уже определены.





0 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22

0.0023