研究概要 |
本研究は,最近広く利用されているスクリプト言語処理系の核となる部分を抽出し,核部分以外の諸機能を,処理系の構築時,もしくは実行時に柔軟に着脱できるようにすることを目指す.この目的を達成するために,平成19年度では次に示す課題に取り組んだ.なお,本研究はスクリプト言語Rubyの処理系を用いて研究を進めた. (1)スクリプト言語処理系Rubyの核となる部分の機能の抽出 スクリプト言語Rubyの処理系の核となる必須機能について検討した.検討の結果,通常の機能から大幅に機能を削減することになるが,処理系の評価器部分,およびオブジェクト(メモリ)管理部分が最低限必要な機能であることがわかった.その他の機能は利用するアプリケーションによって要,不要が別れる.その他の機能として,(a)パーサ・コンパイラ(b)スレッド(c)シグナル(d)正規表現エンジン(e)組み込みクラス(f)組み込みメソッドが挙げられる.これらが場合によっては不要であることを確認した. (2)核とされなかった機能の着脱手法の検討と実装 (1)で述べた(a)〜(f)の着脱手法について検討した.(e),(f)は拡張ライブラリとして着脱が実現可能であることは自明である.しかし,容易に着脱可能な処理系を実現するためにトレース情報を用いた機能の着脱手法を検討した.(a)〜(d)に関しては,処理系構築時,もしくは処理系起動時の着脱手法について検討した.また,(1)での必須機能としたオブジェクト管理部分についても,システムに依存した軽量な浮動小数点数表現手法を提案し,メモリ管理オーバヘッドの削減を実現した.評価の結果,従来に比べて50%の高速化を実現したことを確認した. 平成20年度では,(1),(2)の研究成果をRuby処理系に実装し,実現可能性について評価する.また,研究成果の実用化も目指し,研究成果による社会への貢献を目指す.
|