強い型体系と型推論機能を持つ言語は多いが、型誤りをもつプログラムに対して、 誤りの箇所を適切に、効率良く同定する方法は実用化されていなかった。そこで 昨年度、その一般的アルゴリズムを提案し、並行論理プログラムのモード体系に 適用してその有効性を確認した[1]。また本技法に基づくill-modedな KL1プログラムの解析システムkimaを作成し、公開した。
本年度は、誤りの場所が正確に特定できるのであれば、誤りの自動修正 (automated debugging)も可能であると考え、これを実際に試みた [4,5]。型誤りの解析とモード誤りの解析を併 用することによって、単数または複数の軽微な誤りを持つプログラムに対し、自 動修正アルゴリズムは、プログラムの修正案をごく少数個に絞り込んで提示する 能力があることがわかった。「軽微な誤り」の仮定から、この少数個の中には正 解も含まれる。修正案は深さ漸増探索によって見つけているが、モード情報を枝 刈りに用いることによって探索空間の増大を押さえている。