研究シーズ2017ソフトウェア科学

信頼性の⾼いプログラムを容易に記述するための型エラーデバッグ⼿法

対馬 かなえアーキテクチャ科学研究系 助教

研究分野関数プログラミング/プログラミング⾔語/デバッグ⼿法

研究背景・目的

小学校でプログラミングの授業が導入されたことが話題になるなど、プログラミングは特殊な技能ではなく、一般に広く使用される技術へと変わりつつあります。同時に、プログラムは我々の生活のあちこちに深く溶け込んでおり、安全な動作を保証することは重要です。これからは安全なプログラムを初心者のプログラマーでも書けるようにすることは必要不可欠と言えます。我々はプログラムの安全性を保証する一つの手法である「型」に着目しました。ただ、型によって安全でないプログラムは「型エラー」として排除されるため、プログラムの安全性が保証される一方で、正しいプログラムを書くことは難しくなります。そのような場合にも、型エラーを容易に修正できるデバッグ手法が提供されていれば、初心者でも簡単に安全なプログラムを書くことができるようになります。

研究内容

これまでの型エラーデバッグ手法が、小さな言語での実験的なものにとどまっていることを問題として捉え、実用的な言語で使える手法を研究しています。既存のコンパイラ※の機能をうまく再利用することで、デバッグ手法自体の実装量を削減し、コンパイラの仕様変更への対応を容易にすることができました。具体的には以下の三手法です。

  1. 対話的に型エラーの原因を探す型エラーデバッガ
    デバッガの質問に繰り返し答えていくと、デバッガが自動的にエラーの原因を特定します。
  2. 型エラーになる最小の範囲を求める型エラースライス
    型エラーの原因が含まれる可能性がある箇所を絞り込むことができます。
  3. 複数のエラーメッセージの作成
    通常のコンパイラが返すより多くのエラーメッセージを返すことで、プログラマーが自分で役に立つものを選ぶことができます。

17-tsushima-02.jpg

※コンパイラ:人間が理解しやすい言語や数式で記述されたプログラムを、機械語(あるいは、元のプログラムよりも低いレベルのコード)に変換するプログラムのこと。

産業応用の可能性

  • プログラムデバッグ手法の確立
  • プログラミング学習・支援環境の構築
  • 初心者を対象としたプログラミング支援
連絡先

対馬 かなえ[アーキテクチャ科学研究系 助教]
k_tsushima[at]nii.ac.jp ※[at]を@に変換してください

関連リンク

対馬 かなえ - アーキテクチャ科学研究系 - 研究者紹介

Recommend

さらにみる