< programming > A process to discover the dependencies between different data items manipulated by a program. The order of execution in a data driven language is determined solely by the data dependencies. For example, given the equations
1. X = A + B 2. B = 2 + 2 3. A = 3 + 4
a data-flow analysis would find that 2 and 3 must be evaluated before 1. Since there are no data dependencies between 2 and 3, they may be evaluated in any order, including in parallel.
This technique is implemented in hardware in some pipelined processors with multiple functional units . It allows instructions to be executed as soon as their inputs are available, independent of the original program order.
(1996-05-13)