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