2

是否有任何 API 或参考库可用于将 java 代码或 java 方法解析为控制流图 (CFG)。我试图将 AST 转换为 CFG,但无法使用AST Parser进行转换,但没有找到任何方法。我正在研究 Eclipse IDE JAVA (J2SE)。
请帮忙。

4

2 回答 2

1
doSomethingA;
while(B) {
    doSomethingC;
    doSomethingD;
    if (E) {
        doSomethingF;
    }
    else {
        doSomethingG;
    }
    doSomethingH;
    doSomethingI;
}
doSomethingJ;

基本块:

  1. 做某事A;
  2. 测试时
  3. 做某事C; 做某事D;
  4. 做某事F;
  5. 做某事G;
  6. 做某事H; 做某事我;
  7. 做某事J;

弧线:

  • 条目 -> 1
  • 1 -> 2
  • 2 -> 3
  • 2 -> 7
  • 3 -> 4
  • 3 -> 5
  • 4 -> 6
  • 5 -> 6
  • 6 -> 2
  • 7 -> 退出

作为一种数据结构,基本块具有语句列表和退出弧列表。对于某些类型的分析,人们还可以保留入口弧的列表,并且可以选择具有表示每个弧的数据结构,或者只是让块指向其他块。

于 2014-10-16T18:40:15.783 回答
0

是的,这是“代码可视化器”,您可以将它与 Java Eclipse 一起使用以自动为代码生成 CFG:https ://marketplace.eclipse.org/content/control-flow-graph-factory

于 2015-09-21T10:20:42.550 回答