Eager evaluation is the evaluation model 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.

However, in more sophisticated programming languages, the low-level optimisation of forced eager evaluation is found to be disadvantageous over lazy evaluation. This is because it prevents the higher-level optimisations and greater expressiveness that can be obtained under the latter method, which generally allows the implementation of both lazy and eager semantics.