If-then-else as a concurrency inhibitor in eager beaver evaluation of recursive programs
Rex L. Page, M. G. Conant, Dale H. Grit · 1981
Programs described via recursive equations provide many opportunities for concurrent computation. For example, a machine may choose to concurrently initiate the evaluation of all subexpressions within a given expression. This “eager beaver” evaluation strategy has been a highly touted avenue for introducing massive parallelism into computations. However, machines following a strict eager beaver policy will not be acceptable in applications such as process control where certain portions of computations must follow an explicit sequence. In addition, eager beaver evaluation can in some circumstances waste resources on evaluation of expressions that turn out to be irrelevant to the overall goal of a computation. Therefore, programmers need operators for specifying the order of evaluation of subexpressions within a recursive program.