Demand-driven evaluation on dataflow machine
G. Kahn in his IFIP's 1974 paper gave a straightforward denotational semantics of dataflow graphs by treating the history of an arc as a stream value, and a dataflow operator as a monotonic and continuous function from streams to streams. Operationally, a datadriven evaluation of dataflow graphs does not, in general, compute the total history of output arcs. We describe a program transformation technique whereby a data-driven evaluation of the transformed graph will perform exactly the same computation as a demand-driven evaluation of the original program. More importantly, the transformation technique suggests a simple denotational characterization for demand-driven evaluation. We hope this characterizationwill prove to be useful in designingefficient "lazy" interpreters.