1

後で使用するために、Java バイトコードを中間データ構造に解析しようとしています。私はASMに出くわしました。パワフルで安定しています。ただし、バイナリ命令を通常の Java 式とステートメントに戻すのは困難です。誰かが私に方向性を指摘できますか?

取引データ構造は次のようになります。

ClassInfo
- FieldInfo
- MethodInfo
-- ForLoopStatement
-- WhileStatement
--- AssignmentExpression
--- FunctionCallExpression
...

基本的には、Java 言語の抽象化にすぎません。

ありがとうございました。

4

2 に答える 2

2

db4oでは、皮肉なことにBLOATライブラリと呼ばれるライブラリを使用して、メソッド本体から完全に構築されたASTを取得していました。それは私たちにとって十分に機能しましたが、ASMに基づいていません。

于 2010-11-19T13:42:32.860 に答える
1

Java バイトコードをそのままにして、人間が読める形式が必要な場合は、単純に逆アセンブルしてみませんか? 少なくともあなたの質問では、Java バイトコード自体がストレージに使用される中間データ構造になれない理由が明確になりません。

公式の Java SDK リリースには、バイトコードを Java ソースに戻すjavapというツールがあります。同じジョブの別のオプションはjavadです。

于 2010-11-19T10:13:22.647 に答える