Data-flow analysis is a technique for gathering information about the possible set of values calculated at various points in a computer program. It uses the control-flow graph of the program to determine which parts of the program a value assigned to a variable might propagate to, and it forms the foundation for many compiler optimizations and program verification techniques. A simple way to perform it is to set up data-flow equations for each node of the control-flow graph and solve them by repeatedly computing each node's output from its input until the whole system stabilizes at a fixpoint. This general approach, also known as Kildall's method, was developed by Gary Kildall while teaching at the Naval Postgraduate School. Reaching definitions is the canonical example, and live variable analysis, available expressions and constant propagation are other common analyses.
Connections
Credited To
Source Data-flow analysis (Wikipedia)
In Field
Source Data-flow analysis (Wikipedia)
Uses Design Technique
Source Data-flow analysis (Wikipedia)
Sources
Data-flow analysis (Wikipedia)
In Field: Programming Language Theory, Lead section
Data-flow analysis is a technique for gathering information about the possible set of values calculated at various points in a computer program.
In Group: Compiler and Language Implementation Techniques, Lead section
Data-flow analysis is a technique for gathering information about the possible set of values calculated at various points in a computer program.
Credited To: Gary Kildall, Lead section [credited-to]
This general approach, also known as Kildall's method, was developed by Gary Kildall while teaching at the Naval Postgraduate School.
Uses Design Technique: Iterative Refinement, Lead section
solve them by repeatedly calculating the output from the input locally at each node until the whole system stabilizes, i.e., it reaches a fixpoint
View the SourceReader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.
Sign in to dispute this or suggest a correction.