3.16. Логические выражения

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

A .OR. В .OR. С... X ,AND. Y .AND. Z...

Как только в первом выражении встретится значение TRUE, все выражение считается истинным, тогда как второе выражение считается ложным, как только в нем встретится значение FALSE.

Хороший компилятор прекращает обработку выражения после того, как становится известен результат. Правильно располагая переменные в этих выражениях, можно сэкономить время выполнения. В выражении

A .OR. В .OR. С переменную, которая, вероятнее всего, может быть истинной, следует записать первой. Если С обычно бывает TRUE, А иногда бывает TRUE, а В редко бывает TRUE, то эти переменные следует расположить в следующем порядке:

С .OR. A .OR. В ...

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

Некоторые компиляторы не прекращают вычислений, когда результат уже известен. Например,

ПЛ/1:

IF (А>В) AND (C<D) THEN ...

Для ускорения выполнения это выражение можно переписать следующим образом:

ПЛ/1:

IF (А>В)

THEN IF (C<D) THEN ...

В данном случае не всегда нужно выполнять оба сравнения.

3.15. Условные выражения || Оглавление || 3.17. Индексация


Услуги