プログラムはある計算系の項の集合と考えることができる。計算系として、代入を基本とする関数型計算系、リゾリューションを基本とするホーン節-階述語論理、パターンマッチングに基づく一般の項書換えシステムがある。 本研究ではこれらの計算系を融合するプログラミングシステム(これを本研究ではメタ計算系とよぶ)を構築し、理論上あるいはメタプログラミングシステムとしての実用性に検討を加えた。研究成果は次の通りである。 1.関数型言語の一つの方言とみなすことができるプログラム言語LISPと、一階述語論理に基づく言語Prologを内蔵したメタ計算系を構築し、この計算系におけるプログラミング方法論を提示した。実用的例題として、LISPのコンパイラをPrologにより記述し、本計算系で稼動させ、メタ計算系の有効性を確認した。 2.項書換えシステムを上記メタ計算系に埋込むために、項書換えに基づくプログラミング言語を設計し、そのプロトタイプ処理系を試作した。この実験により、項書換えシステムに基づく言語処理系のインプリメンテーション上の問題点が解明された。 3.関数型言語の計算モデルとなるラムダ計算の意味論を、言語処理系を作成する立場から、与えた。これはカルテシアン・クローズド・カテゴソーに基づくもので、この手法により、いくつかの関数型言語処理系の統一的作成が可能となった。1 で言及したLISPコンパイラーはこの手法に基づいて作成されており、この手法の有効性が確認されている。
|