控制流圖(Control Flow Graph)是在計算機科學中用圖的方式來表現程序執行過程中所有的可能執行路徑的一種方式。在控制流圖中,每一個節點表示表示一個基本的代碼塊,這些基本的代碼塊用箭頭連接起來用以描述這些代碼塊之間的執行順序。
在控制流圖中,有兩類特殊的代碼塊,入口代碼塊和出口代碼塊;所有的執行路徑都從入口塊開始,并且結束于一個出口塊。
一個控制流圖本身是一個圖(Graph),可以用計算機圖論中的術語來加以描述,諸如edge,vertex,back edge等等。
下面的圖片可以作為一個基本的控制流圖的樣本: