2012-02-14 68 views
4

我正在尋找一個庫/ API,它具有一些開箱即用的Java程序數據和控制依賴性分析。這將是對給定程序的控制流圖(CFG)的靜態分析,以計算數據相關性和控制相關性。如果已經完成,我想避免重新實現這些技術/算法。一個程序間分析會很好,但我可以和一個在程序內進行的程序庫一起工作。是否有任何用於數據/控制依賴的開源Java分析庫?

任何建議將不勝感激。

編輯:有一件事我發現是jChord,但我一直沒能確定但如果它實際上有任何的出來,我在尋找,或者如果我將不得不執行箱功能它自己。

另一種可能性是,這似乎至少有必要這樣做的基礎設施joeq庫,但文檔(或缺乏)是難以讓我告訴它實際上是可以勝任的。

我相信Eclipse在底層做了大量的數據流分析,但我還沒有看到任何公開的東西。任何人都知道Eclipse API有這樣的東西?

+0

你堅持開源嗎? – 2012-04-08 23:28:18

+0

我更喜歡開源,但我至少會對其他選擇感興趣。 – jbranchaud 2012-04-09 02:43:09

回答

0

我發現JBoss Tattletale有一些有用的報告。

+0

此工具是否有任何用於計算數據和控制流程圖的控制依賴性?在瀏覽他們的網站時,我沒有看到與此相關的任何內容。 – jbranchaud 2012-02-14 21:06:47

+0

啊,我不這麼認爲。這只是對類關係的靜態分析。 – 2012-02-14 21:12:31

+0

我明白了,好像有很多工具可以分析類依賴關係,但是我正在尋找一個能夠對CFG表示方法/程序進行數據/控制依賴的庫。 – jbranchaud 2012-02-14 21:19:17

2

OP說,他有興趣的非開源系統了。

我們DMS Software Reengineering ToolkitJava Front End可以在所有的方言1.4-1.7 Java源代碼解析,生產全的AST,建立符號表,計算類型的表達式,並確定由OP作爲請求的控制和方法中的數據流,其中包括顯式控制相關。

通常對高級分析感興趣的人除了想到原始分析外還有其他的東西。 DMS是一個程序分析和轉換工具的生態系統,可用於利用源位置(直接從AST獲取)或源代碼(從感興趣的子樹中打印出來的漂亮代碼)的方式利用這些分析來診斷現有代碼,或者生成新的代碼片段(通過彙編AST並對它們進行漂白打印),或者最終通過實際更改原始代碼(通過使用過程修改或更好的修改AST,源到源轉換和漂亮打印修改後的AST)來生成新的代碼片段。

相關問題