2017-06-22 52 views
0

我試圖找到兩個程序是否是gamma-isomorphic或不是我正在使用Jgrapht庫的幫助。現在,我必須生成程序的程序依賴圖並將其作爲圖對象捕獲。使用frama-c我們可以生成pdgs。我使用frama-c -pdg -pdg-dot graph -pdg-print program.c來生成程序的pdg,輸出是點格式。我必須解析點格式來獲取圖表。取而代之的是,我能否像圖形對象那樣獲得圖形數據結構,而不是點文件。Frama-c生成一個圖形對象,而不是點文件

回答

2

從技術上講,您應該能夠使用Frama-C的Db.Pdg模塊中導出的功能提取所需的信息。特別是, Db.Pdg.iter_nodes讓你ITER超過所有節點(所有功能)由PDG產生和Db.Pdg.direct_*dpds家庭的功能將讓你給定節點的直接孩子的列表,無論是全部或只有一種給定的種類。更多信息可在Frama-C源文件中的db.mli文件中找到。我不得不問你爲什麼要這麼做。據我的搜索引擎可以告訴我,JGraphT是一個Java庫,上次我檢查時,如果可能的話,OCaml/Java綁定並不是很容易實現。此外,在我看來,JGraphT的類DOTImporter應該允許您直接使用或多或少直接輸出pdg。

相關問題