Analysis of programs by methodically analyzing the program text is called static analysis. Static analysis is usually performed mechanically by the aid of software tools. During static analysis the program itself is not executed, but the program text is the input to the tools .
The aim of the static analysis tools is to detect errors or potential errors or to generate information about the structure of the programs that can be useful for documentation or understanding of the program.
Static analysis can be very useful for exposing errors that may escape other techniques. As the analysis is performed with the help of software tools, static analysis is a very cost-effective way of discovering errors. Data flow analysis is one form of static analysis that concentrate on the uses of data by programs and detects some data flow anomalies.
An example of the data anomaly is the live variable problem. In which a variable is assigned some value but then the variable is not used in any later computation.
Uses of static analysis:
1) It can provide valuable information for documentation of programs.
2) It can reduce processing time of algorithms
3) It can analyze different parts of the programs written by different people to detect errors.
4) It can be useful for maintenance.
5) It can also produce structure charts of the programs.