资料来源 : Free On-Line Dictionary of Computing
eager evaluation
Any {evaluation strategy} where evaluation of some or all
function arguments is started before their value is required.
A typical example is {call-by-value}, where all arguments are
passed evaluated. The opposite of eager evaluation is
{call-by-need} where evaluation of an argument is only started
when it is required.
The term "{speculative evaluation}" is very close in meaning
to eager evaluation but is applied mostly to parallel
architectures whereas eager evaluation is used of both
sequential and parallel evaluators.
Eager evaluation does not specify exactly when argument
evaluation takes place - it might be done fully speculatively
(all {redex}es in the program reduced in parallel) or may be
done by the caller just before the function is entered.
The term "eager evaluation" was invented by Carl Hewitt and
Henry Baker and used in their paper ["The
Incremental Garbage Collection of Processes", Sigplan Notices,
Aug 1977.
{(ftp://ftp.netcom.com/pub/hb/hbaker/Futures.html)}]. It was
named after their "eager beaver" evaluator.
See also {conservative evaluation}, {lenient evaluation},
{strict evaluation}.
(1994-12-22)