本研究ではプログラミングを「プログラムの仕様の決定」と「プログラムの導出」の2つのステップから成るとし、仕様から具体的なプログラムへの変換・導出の過程に対する理解を深めることを研究の目標としてきた。そして前年度より、主として関数型言語を採り上げ、その特性等に関する研究調査・研究討論を行うとともに、島崎を中心に関数型言語FPのプログラムの操作・変形をおこなう実験的システムDEFTの設計・開発・評価を行なってきた。DEFTの使用経験からFPプログラム開発時の問題点、特にFPプログラム開発支援のためのデータ型の推論・検査機能の必要性が明白になり、今年度は主にこの問題を採り上げた。プログラム言語の観点からは、FPはいわゆる型なし言語に分類され、データ型宣言は不要である。これには、【◯!1】プログラムを関数定義のみとし、形式的取り扱いを容易にする。【◯!2】いわゆる多様型(polytype)が一般的で、型宣言の方法に問題がある、という理由が考えられる。一方実際にFPプログラムを作成してみると、FPは関数合成を多用することになり、関数間のデータの構造の整合性の検査が重要であるが、人間はこの点誤りを犯し易く、システムによる支援が有用であることがわかる。FP言語のデータ型について、言語の定義は変更せずに、データ型推論・検査を行う手法の研究が種々行なわれているが必ずしも万能のものはなく、ヒューリスティックの利用を試みた。その他FPにおける列を「要素のデータ型が均質であるが、列の長さが動的に変化しうるhomoge neous sequence」と「要素のデータ型の均質性は問題にしないが、要素数の固定的なtuple」に分離し、言語の再構築を試み、良好な性質を持つことが確認された。 前年度の計算モデルに関する研究の発展として、項書き換えシステムをプログラムの導出・変形のための計算モデルとする観点からの研究が井田を中心として行なわれ、項書き換え言語Tが設計された。
|