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

2017 年度 実績報告書

高階・型付きの計算体系に基づくプログラミングの理論と応用の展開

研究課題

研究課題/領域番号 15H02681
研究機関東北大学

研究代表者

住井 英二郎  東北大学, 情報科学研究科, 教授 (00333550)

研究期間 (年度) 2015-04-01 – 2020-03-31
キーワード遅延評価 / 名前呼び / 必要呼び / 評価戦略 / λ計算
研究実績の概要

研究が多岐にわたるため、そのうちの一つについて述べる。本研究は博士前期課程学生(当時)との共同研究である。
いわゆる遅延評価(lazy evaluation)とは、「必要」になるまで式の値を計算しない評価戦略(evaluation strategy)のことである。例えばf(b,x) = if b then x+x else 0なる関数fに対しf(false,1+2)を計算する場合、変数xに束縛(代入)される式1+2の値は関数呼び出し時ではなくx+xが計算されるまで計算されず、この場合はbがfalseなので計算されない。
遅延評価の古典的な仕様として、名前呼び(call-by-name)がある。これは例えば前述の関数fに対してf(true,1+2)を計算する場合、f(true,1+2) → if true then (1+2)+(1+2) else 0 → (1+2)+(1+2) → 3+(1+2) → 3+3 → 6のように計算を行う方式であるが、この例からもわかるように、同じ式の値を何度も計算してしまう。そこで実装としてはf(true,1+2) → let x=1+2 in (if true then x+x else 0) → let x=1+2 in x+x → let x=3 in x+x → 3+3 → 6のように計算を行う必要呼び(call-by-need)がしばしば用いられる。
本研究(の一つ)では、名前呼びと必要呼びの対応の証明を改良し、定理証明器Coq上で厳密に定式化・検証した。この成果は国際会議FLOPS 2018に査読を経て採択され、発表予定である。

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

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

理由

前述の成果等が得られているため。

今後の研究の推進方策

引き続き研究計画のとおり、高階・型付きのプログラミング言語理論にもとづく研究を行う。

  • 研究成果

    (1件)

すべて 2018

すべて 雑誌論文 (1件) (うち査読あり 1件、 オープンアクセス 1件)

  • [雑誌論文] Formal Verification of the Correspondence between Call-by-Need and Call-by-Name2018

    • 著者名/発表者名
      Masayuki Mizuno, Eijiro Sumii
    • 雑誌名

      Functional and Logic Programming: 14th International Symposium, FLOPS 2018

      巻: 印刷中 ページ: 印刷中(全16頁)

    • 査読あり / オープンアクセス

URL: 

公開日: 2018-12-17  

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

Powered by NII kakenhi