在计算机科学中，程序分析是指自动分析一个程序的包括正确性、健壮性、安全性和活跃性等特征的过程。程序分析主要研究两大领域：和程序的正确性。前者研究如何提升程序性能并且降低程序的资源占用，后者研究如何确保程序完成预期的任务。程序分析可以在不执行程序的情况下进行（静态程序分析），也可在执行时进行（），或结合二者。
静态程序分析.在程序正确性里，静态分析可以在程序的开发阶段就发现漏洞。这些漏洞通常比测试阶段发现的漏洞更容易修复，因为静态分析可以直接发现漏洞的根源。由于很多静态分析