抄録/ポイント:
抄録/ポイント
文献の概要を数百字程度の日本語でまとめたものです。
部分表示の続きは、JDreamⅢ(有料)でご覧頂けます。
J-GLOBALでは書誌(タイトル、著者名等)登載から半年以上経過後に表示されますが、医療系文献の場合はMyJ-GLOBALでのログインが必要です。
本論文ではL-closureという言語機構に関して2つの実装を提案する。1つは複数回同じL-closureが呼び出された場合などの呼び出しコストの削減,もう1つはGNU Cコンパイラ(GCC)4系列への元々呼び出しコストの低いclosureの実装である。L-closureは入れ子関数定義を評価すると生成される軽量レキシカルクロージャで,これを持つ拡張C言語を,高水準言語コンパイラの中間言語として採用することで,ごみ集めなどの高水準サービスを効率良く実装できる。現在L-closureの実装として,GCC3系列の拡張によるコンパイラ実装と標準C言語への翻訳による実装があり,これらはL-closureの初期化処理を遅延したり,低い維持コスト(アクセスされる変数のレジスタ割当て)を実現しているが,呼び出しコストは高い。翻訳による実装では,Cのスタックとは別のスタック(明示的スタック)を用意し,L-closure呼び出し時にCのスタックの内容を明示的スタックへ一時的に移すことで,入れ子関数を持つ関数の局所変数へのアクセスを実現していた。本研究では,L-closureからのリターンの後,Cスタック全体を再構築するのではなく,フレームごとに再構築することで,再度L-closureが呼び出されたときのスタック間の値の移動を減らし,呼び出しコストを削減する。L-closureの研究の一環として,生成/維持コストはかかるものの呼び出しコストが低いclosureも提案してきた。本研究ではまた,高度な最適化のために内部構造が刷新されたGCC4系列において,これを実装したので報告する。(著者抄録)