控制流分析

控制流分析  簡稱CFA ， 是一種確認程式控制流程的靜態代碼分析技術 。 控制流程會以控制流圖來表示 。 對於函數程式語言及物件導向程式設計 ， CFA都是指計算控制流程的演算法 。 控制流分析一詞最早是由Neil D. Jones及Olin Shivers開始使用 。 對於像是Scheme之類有高階函數的程式語言 ， 不一定可以會程式中直接看出函數呼叫的目標 ， 例如以下的程式片段 ( lambda ( f ) ( f x ) ) 根據上述程式無法確認程序f是指什麼 ， 此情形下的控制流分析需考慮何時會執行此程式碼 ， 及當時的傳入值 。 抽象釋義 、 約束滿足及型別系統都可以用來進行控制流分析 。