Loading article…
ASMライブラリはOW2コンソーシアムのプロジェクトです。バイナリJavaクラス(バイトコード)を分解、変更、再構成するためのシンプルなAPIを提供します。このプロジェクトは元々Eric Bruneton氏によって構想・開発されました。ASMは現在Java中心であり、他のバイトコード実装( .NETバイトコード、Pythonバイトコードなど)を公開するバックエンドは今のところありません。
「ASM」という名前は頭字語ではなく、 C言語のasmキーワードを指しているだけで、一部の関数をアセンブリ言語で実装できるようにするものです。[ 1 ]
ASMは、ビジター指向APIを通じて、特定のJavaクラスの内部集約コンポーネントを公開するシンプルなライブラリを提供します。ASMはまた、このビジターAPIの上に、クラスをオブジェクト構造として表現するツリーAPIも提供します。これらのAPIはどちらも、バイナリバイトコードの変更、および新しいバイトコードの生成(既存のコードへの新しいコードの挿入、またはまったく新しいクラスの生成による)に使用できます。ASMライブラリは、以下のようなさまざまなアプリケーションで使用されています。
バージョン 3.2 以降、ASM は新しいコードのサポートを追加しました。これにより、最新のJDK 7バイナリで動的型チェックinvokedynamicに依存するメソッド呼び出しが可能になり、動的型付け言語のサポートが容易になりました。[ 2 ] [ 3 ]
この表には、主にバグ修正やパフォーマンス向上を目的としたバージョンを除き、ObjectWeb ASM の歴史において重要なステップを踏んだリリースのみが表示されています。[ 4 ]