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

2011 年度 実績報告書

コード生成のためのプログラミング言語の基礎理論

研究課題

研究課題/領域番号 21300005
研究機関筑波大学

研究代表者

亀山 幸義  筑波大学, システム情報系, 教授 (10195000)

研究分担者 浅井 健一  お茶の水女子大学, 大学院・人間文化創成科学研究科, 准教授 (10262156)
五十嵐 淳  京都大学, 大学院・情報学研究科, 准教授 (40323456)
キーワードコード生成 / マルチステージプログラミング / 型システム / 様相論理 / コントールオペレータ / 型推論 / 多相型 / 融合変換
研究概要

本研究の目的は、コード生成のためのプログラミング言語であるマルチステージ言語の基礎となる計算体系の確立である。
今年度の研究では、まず、昨年度設計した、計算エフェクトを利用するための機構を持つ型付きマルチステージ言語の型システムに対して、型推論アルゴリズムを設計・実装した。この言語では、計算エフェクトを表す型システムを採用しているため、型がかなり複雑になることが多く、型推論の自動化は、現実的なプログラム言語とするための必要条件であったが、本年度の研究により、プログラマは、個々のプログラムの型を明示する必要がなくなり、負担が大幅に軽減した。ただし、現段階では限定継続の「タグ」に対する型を指定する必要がある点など、若干の問題点があるため、さらなる改善が必要である。また、コード生成を行う際にしばしば利用するライブラリ関数の多くは、多相型を持つため、体系の型システムを多相型に拡張する研究を行った。多相型の境界を超える計算エフェクトを禁止することにより、安全性を失わずに多相型を導入できる、という結果を得た。
マルチステージプログラム言語の基礎研究として、2段階のステージを持つ体系を定式化した「メタラムダ計算」に関する研究を行い、その意味論の定式化、ベータ簡約の健全性の証明などを行った。
MetaOCamlなど多くのマルチステージ言語では、コードとしてソースプログラムを生成するため、生成後にコンパイルする必要がある。そこで、コード生成と抽象機械のコードへのコンパイルの2つの操作を融合し、機械語を直接生成するマルチステージプログラム言語を設計し、その正当性を融合変換により厳密に証明した。

現在までの達成度 (区分)
現在までの達成度 (区分)

2: おおむね順調に進展している

理由

本年度の研究目的は、(1)計算エフェクトを操作する機構を持つマルチステージプログラミング言語の設計、その基礎理論の整備、(2)この言語の実用化(多相型など型システムの拡張、計算エフェクトの拡張などによる表現力の向上)の2点であった。このうち(1)については、昨年度の段階で設計済みであった体系の型推論アルゴリズムを設計・実装し、ほぼ目的を達成した。(2)については、多相型を導入した体系を新たに設計し、型システムの健全性を示すことに成功した。計算エフェクトの拡張については、すでに設計した体系の範囲内で、(局所的な)「状態」を表現できるため、体系を拡張するのではなく、既存体系で多数の例を作る方針に切り替え、実際にプログラム例を作成した。

今後の研究の推進方策

来年度は、最終年度にあたるため、まとめとなる研究を行う。本研究で設計したマルチステージプログラム言語の表現力をさらに高め、多くの有用なコード生成例を与えることを目的とする。また、これまで行ってきた論理学的基礎付けや機械語コードの直接生成、部分計算などの既存成果と有機的に組み合わせて、まとまりのある成果を出すことを目的とする。

  • 研究成果

    (10件)

すべて 2012 2011

すべて 雑誌論文 (3件) (うち査読あり 3件) 学会発表 (6件) 図書 (1件)

  • [雑誌論文] Shifting the Stage--Staging with Delimited Control2011

    • 著者名/発表者名
      Yukiyoshi Kameyama, Oleg Kiselyov Chung-chieh Shan
    • 雑誌名

      Journal of Functional Programming

      巻: 21(6) ページ: 617-662

    • DOI

      10.1017/S0956796811000256

    • 査読あり
  • [雑誌論文] Polymorphic Multi-Stage Language with Control Effects2011

    • 著者名/発表者名
      Yuichiro Kokaji, Yukiyoshi Kameyama
    • 雑誌名

      Proc.Ninth Asian Symp.on Programming Languages and Systems Lecture Notes in Computer Science

      巻: 7078 ページ: 105-120

    • DOI

      10.1007/978-3-642-25318-8_11

    • 査読あり
  • [雑誌論文] Caml Light+shift/reset=Caml Shift2011

    • 著者名/発表者名
      Moe Masuko, Kenichi Asai
    • 雑誌名

      Proc.Theory and Practice of Delimited Continuations (TPDC 2011)

      ページ: 33-46

    • 査読あり
  • [学会発表] メタラムダ計算の定式化(ポスター発表)2012

    • 著者名/発表者名
      岩井亜里紗、浅井健一
    • 学会等名
      第14回プログラミングおよびプログラミング言語ワークショップ
    • 発表場所
      南紀白浜 むさし・和歌山県
    • 年月日
      2012-03-08
  • [学会発表] コントロールオペレータを持つ必要呼び計算体系の設計2011

    • 著者名/発表者名
      西山達也, 亀山幸義
    • 学会等名
      第86回情報処理学会プログラミング研究会
    • 発表場所
      神奈川近代文学館(神奈川県横浜市)
    • 年月日
      2011-11-02
  • [学会発表] 低水準コード生成を行うλ○仮想機械の融合変換を使った系統的導出2011

    • 著者名/発表者名
      小山内幸一, 五十嵐淳
    • 学会等名
      日本ソフトウェア科学会第28回大会
    • 発表場所
      沖縄県市町村自治会館・沖縄県那覇市
    • 年月日
      2011-09-27
  • [学会発表] Visualizing Continuations2011

    • 著者名/発表者名
      Naoki Takashima, Tatsuya Nishiyama, Yukiyoshi Kameyama
    • 学会等名
      ACM SIGPLAN Continuation Workshop 2011
    • 発表場所
      一橋記念講堂(東京都)
    • 年月日
      2011-09-24
  • [学会発表] 限定継続を持つ並列言語モデルの設計と実装2011

    • 著者名/発表者名
      田中麻峰, 亀山幸義
    • 学会等名
      並列/分散/協調処理に関するサマーワークショップ(SWoPP)
    • 発表場所
      かごしま県民交流センター(鹿児島県鹿児島市)
    • 年月日
      2011-07-29
  • [学会発表] コントロールオペレータの表現力の比較2011

    • 著者名/発表者名
      高島尚希, 亀山幸義
    • 学会等名
      第84回情報処理学会プログラミング研究会
    • 発表場所
      サン・リフレ函館(北海道函館市)
    • 年月日
      2011-06-14
  • [図書] プログラミング言語の基礎概念2011

    • 著者名/発表者名
      五十嵐淳
    • 総ページ数
      176
    • 出版者
      サイエンス社

URL: 

公開日: 2013-06-26  

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

Powered by NII kakenhi