Continuation-Based Program Transformation Strategies
Journal of the ACM (JACM)
Deleting Irrelevant Tasks in an Expression-Oriented Multiprocessor System
ACM Transactions on Programming Languages and Systems (TOPLAS)
A note on conditional expressions
Communications of the ACM
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
Inductive methods for proving properties of programs
Communications of the ACM
Introduction to Mathematical Theory of Computation
Introduction to Mathematical Theory of Computation
Explicit parallelism in LISP-like languages
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Performance of a multiprocessor for Applicative programs
PERFORMANCE '80 Proceedings of the 1980 international symposium on Computer performance modelling, measurement and evaluation
The incremental garbage collection of processes
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
The Alpha-Beta Heuristic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
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. We contend that a sequential form of the if-then-else function and a generalization to encompass nondeterminacy may be used as an elegant mechanism for sequencing computations within an eager beaver environment. We illustrate the use of if-then-else for specifying computational sequences by describing three computations: a process control algorithm (the dining philosophers), a nondeterministic function (AMB), and three alternative algorithms for minimax tree search. Finally we discuss the performance of a simulated, eager beaver multiprocessor as it carries out these algorithms.