静的型付き言語においてプログラミングする際、型エラーのデバッグは時間がかかることの一つである。型エラーのデバッグに関して適切な補助を行うことができれば、ユーザの負担を大幅に削減することができる。本年度の主な成果は以下の3つである。 (1) 型エラースライシングの高速化:これまで扱ってきた型エラースライシング手法では、抽象構文木の上の方から一箇所ずつ削って行くという手法を採用していた。しかしそれではリストのような深い場所が大きく偏った構造に対して大きさに比例した時間がかかってしまう。おおよそ半分ずつ削ることができるような改良を加えることで、高速化を実現した。 (2) 複数の型エラースライスを用いたデバッグ:既存の型エラースライサを使用して、複数の型エラースライスを求める手法を提案した。それにより、より型エラーの原因である可能性が高い箇所を特定できるようになった。 (3) 型エラーデバッグ手法を統一的に扱うフレームワークの導入:型エラーのデバッグでは、実際の型エラーのプログラムやそれをデバッグするユーザによって、有効な手法が異なる。これまでの手法では、型エラースライサ・型エラーデバッガ・型エラーメッセージの生成等にはそれぞれ独立した実装が必要であった。本研究では、プログラムのある一部のみの principal type と、その部分に対して周りから期待される型からなるような木である、Type debugging information tree (TDIT) を導入することで、それらを統一して扱うことができるようになった。
|