OpenJIT Bytecode Decompiler (1)
バイトコードを抽象構文木に変換
1.
バイトコードを
JVM
の命令列に分解、基本ブロックの先
頭命令にマーク
2.
基本ブロックのリストとして、コントロールフローグラフを
構築
3.
コントロールフローグラフに対応するドミネータツリーを
構築
4.
基本ブロック毎に基本ブロックを跨がない式や分を復元
5.
基本ブロックを跨ぐ条件演算子、条件文を復元
6.
その他の制御構造を復元
7.
結果を抽象構文木として出力