Eager evaluation

From Wikipedia, the free encyclopedia

Programming
evaluation

Eager
Lazy
Partial
Remote
Short-circuit
Strategy

Eager evaluation or strict evaluation is the evaluation strategy in most traditional programming languages.

In eager evaluation an expression is evaluated as soon as it gets bound to a variable. This is generally more efficient as a low-level strategy in simple programming languages, as it removes the need to build and manage intermediate data structures representing unevaluated expressions.

The main advantage of eager evaluation is in memory and speed. For example, if the following Basic code was used:

x = 5 + 3 * (1 + 5 ^ 2)
print x
print x + 2

then not only would eager evaluation save space (as it the original expression would be stored as 83, rather than the expression itself), but also the expression would only have to be evaluated once, as opposed to being worked out once for the line "print x" and again for the line "print x + 2". Note that for many lazily-evaluated programming languages this is not actually the case, due to the effects of memoization.

[edit] See also