Everything about Data-flow analysis
Method of analyzing variables in software
Data-flow analysis is a technique for gathering information about the possible set of values calculated at various points in a computer program. It forms the foundation for a wide variety of compiler optimizations and program verification techniques. A program's control-flow graph (CFG) is used to determine those parts of a program to which a particular value assigned to a variable might propagate. The information gathered is often used by compilers when optimizing a program. A canonical example of a data-flow analysis is reaching definitions. Other commonly used data-flow analyses include live variable analysis, available expressions, constant propagation, and very busy expressions, each serving a distinct purpose in compiler optimization passes. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Data-flow analysisA 5-minute orientation
- Skim a recent paper: AndroEvolve: automated Android API update with data flow analysis and variable denormalizationInfluential work since 2022
- Pick up a classic book: Advances in ComputersThe most-reprinted book on the subject
- Read the landmark paper: Automated high-dimensional flow cytometric data analysisCited 337 times
- Go sideways: Optimizing compilerA closely related topic
- Go sideways: Static single-assignment formA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🏆 Landmark papers (most cited)
Automated high-dimensional flow cytometric data analysis
A program data flow analysis procedure
Monotone data flow analysis frameworks
Data Flow Analysis in Software Reliability
Information-flow and data-flow analysis of while-programs
Elimination algorithms for data flow analysis
Incremental data-flow analysis algorithms
Heat flow data analysis
🆕 Influential since 2022
AndroEvolve: automated Android API update with data flow analysis and variable denormalization
Diagnostic accuracy of optical flow ratio: an individual patient-data meta-analysis
Ensuring Full Spectrum Flow Cytometry Data Quality for High‐Dimensional Data Analysis
Analysis of Spatiotemporal Data Imputation Methods for Traffic Flow Data in Urban Networks
Static data-flow analysis for software product lines in C
📚 Books worth reading
Advances in ComputersAli R. Hurson, Veljko Milutinovic · 2012- 📕Development of three-dimensional DRAGON grid technologyYao Zheng · 1999
- 📕Five-hole flow angle probe calibration for the NASA Glenn Icing Research TunnelJose C. Gonsalez · 1999
- 📕A new algorithm for five-hole probe calibration, data reduction, and uncertainty analysisBruce A. Reichert · 1994
- 📕Large-scale parallel viscous flow computations using an unstructured multigrid algorithmDimitri Mavriplis · 1999
Principles of program analysisFlemming Nielson, Hanne Riis Nielson · 1999- 📕Architecture-independent environment for developing engineering software on MIMD computersKarim A. Valimohamed · 1990
Modeling of Physiological FlowsDavide Ambrosi · 2012
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Optimizing compiler An optimizing compiler is a compiler designed to generate code that is optimized in aspects such as minimizing program execution time, memory usage, storage…
- Static single-assignment form In compiler design, static single assignment form (often abbreviated as SSA form or simply SSA) is a type of intermediate representation (IR) where each…
- Dominator (graph theory) In computer science, a node d of a control-flow graph dominates a node n if every path from the entry node to n must go through d. Notationally, this is…
- Register allocation In compiler optimization, register allocation is the process of assigning local automatic variables and expression results to a limited number of processor…
- Control-flow graph In computer science, a control-flow graph (CFG) is a representation, using graph notation, of all paths that might be traversed through a function during…
- List of algorithms An algorithm is a fundamental set of rules or defined procedures that are typically designed and used to be a simpler way to solve a specific problem or…
- Live-variable analysis In compilers, live variable analysis (or simply liveness analysis) is a classic data-flow analysis to calculate the variables that are live at each point…
- Recursion (computer science) In computer science, recursion is a method of solving a computational problem where the solution depends on solutions to smaller instances of the same…