抄録/ポイント:
抄録/ポイント
文献の概要を数百字程度の日本語でまとめたものです。
部分表示の続きは、JDreamⅢ(有料)でご覧頂けます。
J-GLOBALでは書誌(タイトル、著者名等)登載から半年以上経過後に表示されますが、医療系文献の場合はMyJ-GLOBALでのログインが必要です。
近年,Javaバーチャルマシン(JMA)は,様々なアプリケーションのための共通実行プラットフォームとして広く使用されるようになった。特に,プログラム動作の動的改造を要求するようなアプリケーション領域において,クラスロード時間でバイトコードを操作する必要が頻繁に発生する。そのような動作を実装するためのJava向けのバイトコード操作ツールがいくつか存在するが,JVMも現代の様々なプログラミング言語のためのプラットフォームであり,Java専用のバイトコード操作プログラムを書く必要はない。本論文では,JVM上で実行されるLispダイアレクトであるClojureのための新しいJavaバイトコード操作ライブラリを提案した。本ライブラリは,Javaにおけるデファクトスタンダードのバイトコード操作ツールであるASMと同程度の表現性とフレキシビリティを有している上に,より簡便な代表的操作事例の表現を可能にした。本ライブラリは,ターゲットクラスファイルを表現するツリーの(一部の)書換えの系として,基本的にはLispのマクロシステムと同様の方法で,クラスロード時間で動作する。しかし,本ライブラリは,Lispのマクロシステムとは以下の点において大きく異なる。まず,ターゲット形式(ツリー)の最初の項目に対して単一の名前をマッチングさせる代わりに,本ライブラリではマクロ拡張中にターゲットツリーそれ自体に対してツリーンパターンのマッチングをおこなう。そうすることにより,ユーザは,パターンマッチングのための特別なタグ(名前)を有することが一切できない生クラスファイルに関する書換えルールを定義できる。さらに,ツリーパターンマッチングと同時に,本ライブラリは,いかなる情報も静的文脈から容易に抽出することができるので,ユーザはそのような情報のための厄介なマニアル管理をする必要がない。(翻訳著者抄録)