大域情報を用いた動的スコープの実装
スポンサーリンク
概要
- 論文の詳細を見る
本研究は, 動的スコープ機構をCのように実行効率が重視される用途に用いられる言語に組み込むことを目的とする.従来の動的スコープの実装法には, それぞれアドレスの取得が難しい, 実体の切替えがオブジェクトの大きさに比例したオーバヘッドをともなう, あるいは参照においてオブジェクト名をキーとする線形探索を行うといった短所があり, これを上のような言語の処理系にそのまま適用するのは望ましくない.本発表では, 動的スコープオブジェクトの定義と参照, およびサブルーチンの実行コンテクストに関する情報を含む呼出グラフを用いた動的スコープの実装法を提案する.この呼出グラフから得られる情報により, 強いが実際的な条件の下で, 動的スコープオブジェクトは通常のオブジェクトと同様に実装でき, 同等かそれ以上の実行効率を得る.本手法では, 同じ情報から各動的スコープオブジェクトについてこのような実装の可能性を評価し, 不可能と判定された場合には最適な代替の実装法を選択する.代替の実装法は, いずれも従来の実装法を改良したものであり, アドレスが取得できることなど各オブジェクトが満たさなければならない制約と実行効率に基づいて選択される.また, ベンチマークテストにより本手法による実装が従来の実装より実行速度において優れていることを示し, 本手法の有効性を実証する.
- 一般社団法人情報処理学会の論文
- 2001-11-15
著者
関連論文
- GNU形式コマンドプログラムへのメタプログラミングを用いたAOPの適用
- スタックフレーム外オブジェクトの直接参照
- 大域情報を用いた動的スコープの実装
- HAVi
- Jini
- C言語に対するブロックオブジェクト機構の拡張