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

広範囲なデータ型を対象とした機械的プログラム変換手法の確立

研究課題

研究課題/領域番号 16700029
研究種目

若手研究(B)

配分区分補助金
研究分野 ソフトウエア
研究機関東北大学 (2005-2006)
北陸先端科学技術大学院大学 (2004)

研究代表者

篠埜 功  東北大学, 電気通信研究所, 助手 (10362021)

研究期間 (年度) 2004 – 2006
研究課題ステータス 完了 (2006年度)
配分額 *注記
2,300千円 (直接経費: 2,300千円)
2006年度: 700千円 (直接経費: 700千円)
2005年度: 700千円 (直接経費: 700千円)
2004年度: 900千円 (直接経費: 900千円)
キーワードプログラム変換 / 融合変換 / プログラム導出 / 線形時間アルゴリズム / 動的計画法 / XML / 問い合わせ言語 / 機械的導出 / regularデータ型
研究概要

一般にプログラム変換において、データ型毎に変換規則を用意する必要がある。プログラム変換の代表的な例として融合変換があるが、これまで融合変換の研究では、各データ型毎に規則を用意するか、または関手を用いてさまざまなデータ型規則を統一的に記述すると言うことが行われてきた。これに対し、融合変換に、プログラム変換において最も基本的な、関数定義の展開を用いる新たな関数融合方式を提案した(ACM POPL 2007)。この手法では、データ型にかかわらず適用可能な関数の展開を用いるため、データ型ごとに融合規則を用意する必要がなく、また、適用対象の関数定義に特定の形を要求しないため、ユーザー定義の関数が適用対象となる。新たな関数融合方式の核となる考え方は、融合対象の関数をf、gとすると、新しい関数hx=f(gx)を定義し、f、gの定義による展開、簡約など、意味を保つ変換を行い、f、gの連続適用が現れた部分をhで置き換えるというものである。この置き換えを行う規則をfixed point promotion規則として定義した。この変換を行う規則をapply distribution規則として定義した。これらの規則は、複数引数関数の場合にも自然に拡張され、カリー化されている場合にもされていない場合にも成り立つ。提案した新たな規則に基づいて、プログラム(関数定義が1etで入れ子になっている場合)を受け取り融合を行うアルゴリズムを設計し、SML#コンパイラの中間言語上に試験的に実装した。典型的な例で融合変換が成功し、メモリー使用料が半分程度、実行時間が6-8割程度にまで削減され、コード量が数パーセント程度増加する場合もあるという程度である。

報告書

(3件)
  • 2006 実績報告書
  • 2005 実績報告書
  • 2004 実績報告書

URL: 

公開日: 2004-04-01   更新日: 2016-04-21  

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

Powered by NII kakenhi