Жажда оценки

редактировать

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

Эффекты нетерпеливого вычисления включают:

  • Код это легко понять с точки зрения порядка выполнения, который потенциально не изменяет свое поведение на основе изменения контекста выполнения.
  • Более простой процесс отладки по сравнению с другими стратегиями оценки благодаря вышеизложенному.
  • Однако ответственность за производительность кода перекладывается на программиста, что требует тщательного процесса оптимизации кода.

Императивного программирования языков, в которых порядок выполнения неявно определяется структурой исходного кода, почти всегда используют активную оценку, чтобы избежать неожиданного поведения, которое может произойти в определенных контекстах из выполнения вне очереди (например, при использовании многопоточного программного обеспечения, одновременное выполнение код и т. д.). Это неожиданное поведение может привести к гонкам данных, нарушениям атомарности и другим потенциально нежелательным и трудно управляемым ошибкам и эффектам.

Многие современные компиляторы способны изменять порядок выполнения для лучшей оптимизации ресурсов процессора и часто могут полностью исключить выполнение ненужных выражений, если можно определить, что результаты выражений не отображается для остальной части программы. Однако это не должно отвлекать поток скомпилированной программы от стратегии оценки, определенной языком программирования, на котором написан скомпилированный код, за заметным исключением потенциальных ошибок, вносимых компилятором. Чтобы избежать этой проблемы, большинство (если не все) современных языков высокого уровня предоставляют конструкции, позволяющие программисту направлять компилятор в отношении его собственных оптимизаций. Например, использование блокировки конструкции на уровне блока в C # позволяет программисту определять блок кода, который должен выполняться в том же порядке, в каком он был определен в исходном коде, эффективно запрещая компилятору выполнение любых операций изменения порядка в этом блоке кода.

Кодировка Чёрча

В Кодировка Чёрча нетерпеливое вычисление операторов соответствует строгому вычислению функций; по этой причине строгую оценку иногда называют «нетерпеливой».

См. Также
Ссылки
Последняя правка сделана 2021-05-18 03:40:16
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте