プログラミングに於ける人間-機械システムの高次コミュニケーションを実現するには、機械が人間のプログラミング作業を理解して適切に支援する機構が必要である。本研究では、プログラムの意味理解能力を持つ知的プログラミング環境INTELLITVTORの開発を行なっている。人がプログラムを作成したり読んだりする場合に利用していると考えられるプログラミング知識には、意味的知識と構文的知識があり、プログラミングの意味理解に於ては前者が重要な役割をもつ。意味的知識は更に、問題に関する知識、アルゴリズムに関する知識、プログラミング技法に関する知識とに分類できる。我々は、特にアルゴリズムに関する知識を中心に、これらの知識表現について研究して来た。その結果として、HPG(Hierarchical Procedure Graph)グラフを開発した。これは、プログラムを複数の変数に対する体系的操作の手続きであると考えたとき、処理のどの段階でどの変数にどのような操作が行なわれなければならないかが、アルゴリズムによって強く規定されていることに着目して、構造化したものである。一般にプログラムは表現の自由度が高いが、特定のアルゴリズムの下では、普通に書くかぎりはHPGグラフの枠内での自由度に限定されると考えられる。フローチャートがデータ処理手順をグラフ表現したものであるのに対して、HPGグラフは特定の役割をもつ変数に対する操作の順序を規定したグラフであり、意味表現の色彩が強い。HPGグラフによるプログラミング知識の表現法の開発が、これまでの本研究の最も重要な成果であると考えている。HPGグラフによる意味理解と意図理解の機構を組合せることによって、与えられたプログラムに含まれる複数の議論ミスを全て検出し、ミスの原因を指摘し、ミスの訂正を助言することの出来るシステムが、かなりのレベルで実現できた。今後は、システムの能力を高める為の研究と、教育支援システムへの発展等について更に研究する予定である。
|