控制流分析
控制流分析(Control flow analysis)简称CFA,是一种确认程序控制流程的静态代码分析技术。控制流程会以控制流图来表示。对于函数编程语言及面向对象编程,CFA都是指计算控制流程的算法。
控制流分析一词最早是由Neil D. Jones及Olin Shivers开始使用。
对于像是Scheme之类有高端函数的编程语言,不一定可以会程序中直接看出函数调用的目标,例如以下的程序片段
根据上述程序无法确认进程f
是指什么,此情形下的控制流分析需考虑何时会运行此代码,及当时的传入值。
抽象释义、约束补偿及型别系统都可以用来进行控制流分析。