next up previous
Next: 4.1 ホーン節の表現 Up: ソフトウェア特論 講義資料 前向き推論,後ろ向き推論 Previous: 3.4 ユニファイの応用例

4 論理型プログラミングとProlog

論理型プログラミングというのは,プログラミングパラダイムの一つです. 論理に基本をおいた言語によりプログラミングを行なうというものですが, 代表言語はPrologと呼ばれるものです. 論理型言語は,データベースをもち,そのデータベースに事実や関係などの 論理的な記述を登録します.そして,そのデータベースに対して問い合わせを 行なうことで計算を実行するという形のプログラミングを行ないます. 処理系に対する問い合わせはゴールと呼ばれ,そのゴールを達成するためには どのような条件が満たされていなければいけないかをデータベースから 調べるという形でプログラムの実行が進みます. 結果はYESかNOが返ります.つまり,問い合わせが成り立つならば YESで,問い合わせが成り立たない,あるいは,データベースの中に その問い合わせにマッチする事実がないという時にNOを返します. 問い合わせのゴールは変数を含むパターンで表現することもできます. その場合には,YESを返す際にどの変数が何にマッチングしているかを 表示します. このようにPrologのような論理型言語では,ゴールを与えると,そのゴールに マッチするゴールをもつルールを探しだし,そのルールの条件部を新しいゴー ルとしてデータベースを調べるということを行ないます.そして,条件部の無 いルール(事実とも呼ばれる)にたどり着き,その事実とマッチした場合には YESが返ります.そこへたどり着く過程で現れた変数に値をバインディングし, バインディングされた変数を表示します. もし,用意されているどの事実ともマッチングしなかった場合には, NOが返ります.


next up previous
Next: 4.1 ホーン節の表現 Up: ソフトウェア特論 講義資料 前向き推論,後ろ向き推論 Previous: 3.4 ユニファイの応用例
generated through LaTeX2HTML. M.Inaba 平成18年5月21日