Program Analysis

Program-Transformation.Org: The Program Transformation Wiki
ProgramAnalysis is the (automated) inspection of a program to infer some property. Program analysis is needed for most kinds of ProgramTransformation and can range from simple local properties in PatternMatching to more complicated global properties in DeadCodeElimination?.

Tools for program analysis

Analysis paradigms

I came acrosss an article by Tom Reps called "Program Analysis via Graph Reachability", Information and Software Technology 40(1998):701-726, available from

Its first paragraph nicely summarizes program analysis:

  • The purpose of program analysis is to ascertain information about a program without actually running the program. For example, in classical dataflow analysis of imperative programs, the goal is to associate an appropriate set of "dataflow facts" with each program point (i.e., with each assignment statement, call statement, I/O statement, predicate of a loop or conditional statement, etc.). Typically, the dataflow facts associated with a program point p describe some aspect of the execution state that holds when control reaches p, such as available expressions, live variables, reaching definitions, etc. Information obtained from program analysis is used in ProgramOptimization, as well as in tools for software engineering and ReEngineering.


CategoryAnalysis | Contributions by EelcoVisser, ArieVanDeursen