На этом шаге мы рассмотрим порядок выполения операций.
Последовательность выполнения операций определяется тремя факторами:
По приоритету все операции делятся на четыре группы. Операции первого (высшего) приоритета выполняются в первую очередь. Операции четвертого (низшего) приоритета выполняются в последнюю очередь. Операции с равным приоритетом выполняются слева направо, но иногда компилятор для генерации более оптимального кода может переупорядочить операнды. Скобки служат для изменения обычного порядка обработки операций. Подвыражение, заключенное в скобки, сначала вычисляется как отдельный операнд, а затем его результат используется для выполнения операций, обрамляющих скобки. В Object Pascal приоритет операций отражен непосредственно в синтаксисе языка.
| Приоритет | Операции | Категория операций |
|---|---|---|
| Первый (высший) | + - not @ | Унарные операции |
| Второй | * / div mod and as shl shr | Бинарные операции типа умножения |
| Третий | + - xor or | Бинарные операции типа сложения |
| Четвертый (низший) | = <> < > <= >= in is | Бинарные операции отношения |
Операции as и is являются нововведением языка Object Pascal.
Примеры сложных выражений.
А * (((X - Y / Z) * 3 + 5) / (В + С) - D * Е) - 14
(А <> В) and ((I < J) or (J < К)) and (С in D)
На следующем шаге мы дадим классификацию операций.