One important aspect of the object code generated for arithmetic expressions in higher level languages is the amount of temporary storage needed during evaluation. This amount is a function of the sequence in which an expression's subexpression are evaluated. Usually the implementor has the freedom to choose any order of evaluation, provided that operations are executed after the evaluation of their respective operands. This allows for the use of a multitude of possible evaluation sequences. In 1971 the author identified a large class of such evaluation strategies by the newly coined term 'scope conserving'.In this paper we show that this class of strategies will minimize the amount of temporary storage with respect to a very general cost function. The optimizing sequencing strategies for temporary storage derived by Anderson, Colin, Nakata, Redziejowski, Sethi-Ullmann and Chroust are shown to be expressible in the model.
Unfortunately, ACM prohibits us from displaying non-influential references for this paper.
To see the full reference list, please visit http://dl.acm.org/citation.cfm?id=954622.