2019 Fiscal Year Research-status Report
データに基づき自動修正も含む型エラーデバッギングの理論と実際
Project/Area Number |
19K20248
|
Research Institution | National Institute of Informatics |
Principal Investigator |
対馬 かなえ 国立情報学研究所, アーキテクチャ科学研究系, 特任助教 (80754663)
|
Project Period (FY) |
2019-04-01 – 2023-03-31
|
Keywords | 型エラー / デバッグ / 関数型言語 |
Outline of Annual Research Achievements |
本年度は、(1) 自動修正を行うための型情報を得る手法の導入、(2) 型エラープログラムの自動修正にむけたプログラム合成の二点について研究を行った。 プログラムの自動修正を行うためには、どこが修正箇所である可能性があり、どのように修正すべきかという型の情報を得る必要がある。そのため、(1) では、既存の型推論器を使用して、OCaml 等の言語に備わっている型エラーメッセージのような矛盾する型を、複数組示す手法について研究を行った。言語に元々実装されている既存の型推論器をそのまま使用するだけでは、矛盾する型は一組しか見つけることができない。既存研究では新たに複雑な型推論を行う型推論器を実装する必要があり、コストがかかってしまう点が問題であった。そこで、型エラーのプログラムに対して一部分を変数に置き換え、型のつくプログラムにすることで、型の情報を得る手法を提案した。それにより、自動修正を行うために必要な型情報を容易に得ることができるようになった。 (2) 型エラープログラムの自動修正にむけたプログラム合成では、Relational programming を用いたプログラム合成を実装した。加えて、型情報を使用することで、速度の改善が見られないかの実験を行なったが、残念ながらほぼ改善はされなかった。これは Relational programming ではバックトラックした際に、既に型のような情報を使用しているからであると考えられる。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
本年度は、(1) で自動修正を行うために必要な型情報を得る手法の確立を、(2) で型エラープログラムの自動修正にむけたプログラム合成器の実装を行うことができた。これらを組み合わせることで、型エラーのあるプログラムを修正するために、型の合う部分的なプログラムを生成することができる。これは本研究課題の最終的な目的を達成するために基盤となる部分であるため、おおむね順調に進展していると考えられる。
|
Strategy for Future Research Activity |
まず、(1) と (2) を組み合わせることで、型の合う部分的なプログラムを自動生成する。そのままでは実用的な速度では実行できない可能性が高いため、データに応じた最適化を導入する。
|
Causes of Carryover |
家庭の事情により、本年度はほぼ出張等ができなかった。次年度以降の成果発表や共同研究のための出張に使用する予定である。
|
Research Products
(3 results)