Generation of optimal code for expressions via factorization
Communications of the ACM
One-Pass compilation of arithmetic expressions for a parallel processor
Communications of the ACM
On compiling algorithms for arithmetic expressions
Communications of the ACM
A Survey of Some Theoretical Aspects of Multiprocessing
ACM Computing Surveys (CSUR)
A note on sub-expression ordering in the execution of arithmetic expressions
Communications of the ACM
On storage optimization of horizontal microprograms
MICRO 7 Conference record of the 7th annual workshop on Microprogramming
A survey of compiler optimization techniques
ACM '73 Proceedings of the ACM annual conference
A higher level language for micro-programming
MICRO 6 Conference record of the 6th annual workshop on Microprogramming
Execution time (and memory) optimization in microprograms
MICRO 7 Supplement to the conference record of the 7th annual workshop on Microprogramming
Scheduling Parallel Processable Tasks for a Uniprocessor
IEEE Transactions on Computers
Hi-index | 48.24 |
An arithmetic expression can often be broken down into its component subexpressions. Depending on the hardware environment in which the expression is to be executed, these subexpressions can be evaluated in serials, in parallel, or in a combination of these modes. This paper shows that expression execution time can be minimized only if consideration is given to the ordering of the subexpressions. In particular, subexpressions should be executed in order of decreasing memory and processor time requirements. This observation is valid for configurations ranging from a uniprocessor with an unbuffered main memory to a multiprocessor with a “cache” buffer memory. If the number of subexpressions which can be executed in parallel exceeds the number of available processors, then execution of some of these subexpressions must be postponed. A procedure is given which combines this requirement with the earlier ordering considerations to provide an optimal execution sequence.