1.定義
百度百科:
程序依賴圖(Program Dependence Graph)是程序的一種圖形表示,它是帶有標記的有向多重圖。系統程序依賴圖是軟件程序間控制依賴關系和數據依賴關系的圖形表示。面向方面的程序是基於面向方面的思想,使用相關的框架或語言工具,實現系統中橫切關注點的清晰模塊化的程序。系統依賴圖是分析和理解程序的基礎工具之一,其在面向對象的程序上的研究漸趨成熟,而在面向方面的程序上的研究才剛剛開始。
處理方法是以程序的控制流圖為基礎,去掉CFG的控制流邊,加入數據和控制流邊。包括了數據依賴圖和程序依賴圖。數據依賴圖定義了數據之間的約束關系,控制依賴圖定義了語句執行情況的約束關系。程序依賴圖是一個有向圖。
在建立在SAST技術上的靜態分析技術,將程序依賴圖算法應用於動態切片,從而達到縮小程序分析范圍的目的。
2.拓展
代碼屬性圖:一種綜合了抽象語法樹(AST),控制流圖(CFG),和程序依賴圖(PDG)的聯合數據結構,包含了代碼的控制依賴,數據依賴以及語法結構等語義信息,是目前語義信息最為全面的抽象圖結構之一。
我的公眾號!
參考:
- https://baike.baidu.com/item/%E7%A8%8B%E5%BA%8F%E4%BE%9D%E8%B5%96%E5%9B%BE/22341209?fr=aladdin
- https://blog.csdn.net/manok/article/details/90609876
心滿意足享受每一點快樂,是走向幸福的唯一途徑。
——《櫻桃小丸子》