如何以编程方式将java代码(方法)解析为控制流图

时间:2014-10-16 12:18:16

标签: java parsing abstract-syntax-tree java-api control-flow-graph

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

2 个答案:

答案 0 :(得分:1)

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

基本块:

  1. doSomethingA;
  2. while test
  3. doSomethingC; doSomethingD;
  4. doSomethingF;
  5. doSomethingG;
  6. doSomethingH; doSomethingI;
  7. doSomethingJ;
  8. 弧:

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

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

答案 1 :(得分:0)

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