2

Java コードまたは Java メソッドを制御フロー グラフ (CFG) に解析するために使用できる API または参照ライブラリはありますか。AST を CFG に変換しようとしましたが、 AST パーサーを使用して変換できませんでしたが、変換する方法が見つかりませんでした。私は Eclipse IDE JAVA (J2SE) に取り組んでいます。
親切に助けてください。

4

2 に答える 2

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

基本ブロック:

  1. doSomethingA;
  2. テスト中
  3. doSomethingC; doSomethingD;
  4. doSomethingF;
  5. doSomethingG;
  6. doSomethingH; doSomethingI;
  7. doSomethingJ;

円弧:

  • エントリ -> 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 に答える