Вычисления по короткой схеме

Вычисления по короткой схеме (англ. Short-circuit evaluation), также известны как вычисления Маккарти (англ. McCarthy evaluation, в честь американского информатика Джона Маккарти) — это стратегия в некоторых языках программирования, при которой второй логический оператор выполняется или вычисляется только в том случае, если первого логического оператора недостаточно для определения значения выражения. Таким образом, после того, как результат выражения становится очевидным, его вычисление прекращается.

Примеры:

  • если левый операнд AND имеет значение false, то общее значение выражения также false

или

  • если левый операнд OR имеет значение true, то общее значение выражения также true

Более общо, в выражениях вида либо вычисление продолжается слева направо, пока одно из не даст false, или true, соответственно. Наличие или отсутствие вычисления по короткой схеме особенно важно, если члены выражения действия с возможными побочными эффектами (помимо вызова функций это может быть останов программы при делении на нуль или выход за пределы массива). Например, код вида if (n!=0) and (k/n>17)... является корректным только, если язык (или компилятор) гарантирует вычисление по короткой схеме.

В языках программирования с ленивыми вычислениями (Lisp, Perl, Haskell) логические операторы используются по короткой схеме. В других (Ada, Java, Delphi) доступны как операторы по короткой схеме, так и стандартные логические операторы. Для некоторых логических операций, таких как исключающее «или» (XOR), использование короткой схемы невозможно, потому что для определения результата всегда требуются оба операнда.

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.