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