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.