Computer program analysis is the process of automatically analysing the behavior of computer programs.

Two main approaches in program analysis are static program analysis and dynamic program analysis.

Main applications of program analysis are program optimization and program correctness.

Techniques related to program analysis include: type systems, program verification, model checking.