如何用程序将java代码(方法)解析为控制流图



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

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

基本块:

  1. 做某事A
  2. while test
  3. doSomethingC;doSomethingD
  4. doSomethingF
  5. doSomethingG
  6. doSomethingH;做某事I
  7. doSomethingJ

电弧:

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

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

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

最新更新