Выражения
Выражения состоят из операций и операндов. Большинство опе- раций в языке Паскаль являются бинарными, то есть содержат два операнда. Остальные операции являются унарными и содержат только один операнд. В бинарных операциях используется обычное алгебраи- ческое представление, например: a+b. В унарных операциях операция всегда предшествует операнду, например: -b.
В более сложных выражениях порядок, в котором выполняются операции, соответствует приоритету операций (см. Таблицу 6.1).
Старшинство операций Таблица 6.1 ---------------------T---------------------T-------------------- ¦ Операция ¦ Приоритет ¦ Вид операции ¦ +--------------------+---------------------+--------------------+ ¦ @, not ¦ первый (высший) ¦ унарная операция ¦ +--------------------+---------------------+--------------------+ ¦ *, /, div, mod, ¦ второй ¦ операция умножения,¦ ¦ and, shl, shr ¦ ¦ деления, сдвига... ¦ +--------------------+---------------------+--------------------+ ¦ +, -, or, xor ¦ третий ¦ операция сложения ¦ +--------------------+---------------------+--------------------+ ¦ =, <>, <, >, ¦ четвертый (низший) ¦ операция отношения ¦ ¦ <=, >=, in ¦ ¦ ¦ L--------------------+---------------------+---------------------
Для определении старшинства операций имеется три основных правила:
1. Во-первых, операнд, находящийся между двумя операциями с различными приоритетами, связывается с операцией, имею- щей более высокий приоритет.
2. Во-вторых, операция, находящаяся между двумя операциями с равными приоритетами, связывается с той операцией, ко- торая находится слева от него.
3. В-третьих, выражение, заключенное в скобки, перед выпол- нением вычисляется, как отдельный операнд.
Операции с равным приоритетом обычно выполняются слева-нап- раво, хотя иногда компилятор при генерации оптимального кода мо- жет переупорядочить операнды.