研究課題/領域番号 |
12J08057
|
研究種目 |
特別研究員奨励費
|
配分区分 | 補助金 |
応募区分 | 国内 |
研究分野 |
ソフトウエア
|
研究機関 | 東京大学 (2013) 東北大学 (2012) |
研究代表者 |
佐藤 亮介 東京大学, 大学院情報理工学系研究科, 特別研究員(PD)
|
研究期間 (年度) |
2012 – 2013
|
研究課題ステータス |
完了 (2013年度)
|
配分額 *注記 |
2,000千円 (直接経費: 2,000千円)
2013年度: 1,000千円 (直接経費: 1,000千円)
2012年度: 1,000千円 (直接経費: 1,000千円)
|
キーワード | 高階関数型言語 / 高階モデル検査 / ソフトウェアモデル検査 / 詳細化型 / 継続渡し形式変換 / 述語抽象化 |
研究概要 |
高階モデル検査を用いた高階関数型言語のためのソフトウェアモデル検査器の拡張に関する研究を進め、その成果を論文として投稿した。 検証の枠組みの拡張として、既存の高階関数型言語のための自動検証手法では扱えなかった関数の等価性や単調性などの関数の性質を扱えるようにした。具体的には、このような関数の性質に関する検証問題を既存の検証手法で扱える問題に帰着する方法を提案した。 既存の高階関数型プログラムの自動検証手法のほとんどは、量化子を含まない一階の述語を用いてプログラムを抽象化することによって検証を行っている。しかし、量化子を含まない一階の述語という制限のため、関数の等価性など、全称や関数を用いないと表すことができない性質を扱えなかった。例えば、次のように定義された二つの関数sum、sum2が等しいということが検証できない。 let rec sum n = if n <0 then 0 else n + sum (n-l) let rec sumacc n m = if n <0 then m el se sumacc (n-1) (n+m) let sum2 n = sumacc n 0 ここで、sumは1からnまでの整数の和を求める関数であり、sum2はそれを累積変数を用いて求めるものである。 本研究では、このような全称および関数を用いないと表せない性質の検証問題を、既存の一階の述語のみを扱う検証問題に帰着する方法を提案した。 この拡張した検証の枠祖みを基に、関数型言語OCamlのサブセットで書かれたプログラムを対象とする検証器のプロトタイプを実装した。実装した検証器をさまざまなプログラムに適用し、本手法の有効性を確かめた。ここまでに得られた成果を国内会議の場で発表し、同時に他の研究者との意見交換を行った。
|
今後の研究の推進方策 |
(抄録なし)
|