В компьютерное программирование, жажда оценки, также известное как строгое вычисление или жадное вычисление, - это стратегия оценки, используемая большинством традиционных языков программирования. При активной оценке выражение выражение вычисляется, как только оно привязано к переменной . Альтернативой энергичному вычислению является ленивое вычисление, где выражения оцениваются только тогда, когда вычисляется зависимое выражение в зависимости от определенной стратегии оценки .
Эффекты нетерпеливого вычисления включают:
Императивного программирования языков, в которых порядок выполнения неявно определяется структурой исходного кода, почти всегда используют активную оценку, чтобы избежать неожиданного поведения, которое может произойти в определенных контекстах из выполнения вне очереди (например, при использовании многопоточного программного обеспечения, одновременное выполнение код и т. д.). Это неожиданное поведение может привести к гонкам данных, нарушениям атомарности и другим потенциально нежелательным и трудно управляемым ошибкам и эффектам.
Многие современные компиляторы способны изменять порядок выполнения для лучшей оптимизации ресурсов процессора и часто могут полностью исключить выполнение ненужных выражений, если можно определить, что результаты выражений не отображается для остальной части программы. Однако это не должно отвлекать поток скомпилированной программы от стратегии оценки, определенной языком программирования, на котором написан скомпилированный код, за заметным исключением потенциальных ошибок, вносимых компилятором. Чтобы избежать этой проблемы, большинство (если не все) современных языков высокого уровня предоставляют конструкции, позволяющие программисту направлять компилятор в отношении его собственных оптимизаций. Например, использование блокировки конструкции на уровне блока в C # позволяет программисту определять блок кода, который должен выполняться в том же порядке, в каком он был определен в исходном коде, эффективно запрещая компилятору выполнение любых операций изменения порядка в этом блоке кода.
В Кодировка Чёрча нетерпеливое вычисление операторов соответствует строгому вычислению функций; по этой причине строгую оценку иногда называют «нетерпеливой».