• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 課題ページに戻る

2005 年度 実績報告書

並列分散システム統合のための安全な計算状態操作機構

研究課題

研究課題/領域番号 17650008
研究機関京都大学

研究代表者

八杉 昌宏  京都大学, 情報学研究科, 助教授 (30273759)

キーワードスタック / レジスタ / C言語 / コンパイラ / 入れ子関数
研究概要

計算中のプロセスの計算状態を安全に操作可能にすることで、高い実行性能と安全性・正当性を両立させるための拡張C言語の仕様設計、実装技術および応用手法を提案し、それらの評価することで、多数のプロセッサやノードから成るシステムを統合できることを示そうとしている。平成17年度は以下の成果を得た。
1.入れ子関数の仕様設計
言語仕様としては入れ子関数(クロージャ)を利用することにした。入れ子関数はC以外の言語ではよく用いられていて、関数呼出しの呼出し元のフレームで眠っている変数の値への正式なアクセスを可能としてくれる。一方で、calleeセーブ・レジスタを利用した変数へのレジスタ割当てなどの最適化を事実上不可能にすると考えられてきた。本研究ではこの常識を打ち破り、入れ子関数を持つ関数においてレジスタ割当てを可能にする新しいコンパイル技術を確立した。
既存のC言語や拡張C言語との整合性を考慮し、最適化を阻害しない入れ子関数を持てるような言語設計を行った。
2.入れ子関数の実装技術の開発
実装技術のキーとなるのは、lazyな実行スタック操作である。呼出し元でのレジスタ保存を「とりあえず」後回しする既存のcalleeセーブ・レジスタの利用も、このカテゴリに属する。本研究では、入れ子関数の存在下でもこれを実現した。実行中の大部分は入れ子関数のアロケーションを含めて「とりあえず」の状態として実行し、いざ入れ子関数を呼び出す際に実行スタックを「見せられる」状態にすることで、入れ子関数からのアクセスが可能となった。

  • 研究成果

    (1件)

すべて 2006

すべて 雑誌論文 (1件)

  • [雑誌論文] Lightweight Lexical Closures for Legitimate Execution Stack Access2006

    • 著者名/発表者名
      Masahiro Yasugi, Tasuku Hiraishi, Taiichi Yuasa
    • 雑誌名

      Proceedings of 15th International Conference on Compiler Construction. Lecture Notes in Computer Science Vol.3923

      ページ: 170-184

URL: 

公開日: 2007-04-02   更新日: 2016-04-21  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi