Next: 4.1 ホーン節の表現
Up: ソフトウェア第三 講義資料 パターンマッチ,前向き推論,ユニフィケーション,後向き推論
Previous: 3.4 ユニファイの応用例
論理型プログラミングというのは,プログラミングパラダイムの一つである.
論理に基本をおいた言語によりプログラミングを行なうというもので,
代表言語はPrologである.
論理型言語は,データベースをもち,そのデータベースに事実や関係などの
論理的な記述を登録する.そして,そのデータベースに対して問い合わせを
行なうことで計算を実行するという形のプログラミングを行なう.
処理系に対する問い合わせはゴールと呼ばれ,そのゴールを達成するためには
どのような条件が満たされていなければいけないかをデータベースから
調べるという形でプログラムの実行が進む.
結果はYESかNOが返す.つまり,問い合わせが成り立つならば
YESで,問い合わせが成り立たない,あるいは,データベースの中に
その問い合わせにマッチする事実がないという時にNOを返す.
問い合わせのゴールは変数を含むパターンで表現することもできる.
その場合には,YESを返す際にどの変数が何にマッチングしているかを
表示する.
このようにPrologのような論理型言語では,ゴールを与えると,そのゴールに
マッチするゴールをもつルールを探しだし,そのルールの条件部を新しいゴー
ルとしてデータベースを調べるということを行なう.そして,条件部の無
いルール(事実とも呼ばれる)にたどり着き,その事実とマッチした場合には
YESが返る.そこへたどり着く過程で現れた変数に値をバインディングし,
バインディングされた変数を表示する.
もし,用意されているどの事実ともマッチングしなかった場合には,
NOが返る.
generated through LaTeX2HTML. M.Inaba 平成18年5月7日