JPS607539A - 述語論理型言語処理装置 - Google Patents

述語論理型言語処理装置

Info

Publication number
JPS607539A
JPS607539A JP11634483A JP11634483A JPS607539A JP S607539 A JPS607539 A JP S607539A JP 11634483 A JP11634483 A JP 11634483A JP 11634483 A JP11634483 A JP 11634483A JP S607539 A JPS607539 A JP S607539A
Authority
JP
Japan
Prior art keywords
predicate
clause
buffer
buffer memory
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11634483A
Other languages
English (en)
Inventor
Yoshinari Nakasaki
中崎 良成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Priority to JP11634483A priority Critical patent/JPS607539A/ja
Publication of JPS607539A publication Critical patent/JPS607539A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の属する技術分野〕 本発明は述語論理型言語処理装置に関する。
〔技術環境〕
述語論理型言語処理装置とは述語名とその引数よりなる
述語の連なりから成る節の集合として書き下す述語論理
型言語全処理する装置であるが、以下代表的なプログラ
ミング言語であるプロログ言語を例にとり説明する。
プロログにおいては表現すべき事象を述語名とその引数
の結合から成る「述語」によって表現し、更に述語間の
関係を記述する。例えば、「太部は果物を好む」という
事象は下記のように記述できる。
好む(太部、−X−物)−果物(条物)本例で[好むコ
と「果物J′ft−述語名、「太部コ「薫物」を引数と
称し、矢印はその引数が変数であることを表わす。即ち
、上側は「太部」は「果物」という述語名で表記された
連語の引数として書かれている事物を「好む」ことを表
現している。
従って、 果物(いちご) という文が他に書かれていれば、三段論法の推論によっ
て、「太部はいちごを好む」という結論が得られる。
前記のプロログは述語論理型言語としてその利用領域が
拡大している。しかし、更に利用領域を拡大するために
は、プログラムの処理効率を高める必要がある。
〔従来技術〕
従来、このプロログの処理は汎用計算機で実現されてい
る。しかし力から、汎用計算機処理装置のハードウェア
構成による制約上受は扁球にプロログプログラムを処理
することができなかった。
プロログプログ2ムの実行は述語間の一致を比較する処
理が基本になっている。例えば、前記の「・・・・・・
−果物(*物)」と「果物(いちご)」とを比較して両
述語間の一致をJMべる処理が基本である。この処理を
高速に実現するためには双方の述語を同時に読み出して
述語名およびそれに続(引数の一致を順次調べる必要が
ある。
しかしながら、従来計算機では記憶装置からの読出しは
一時には一語あるいに一つのまとまった領域からのみ可
能であり、別個の領域から同時に読み出すことはできな
かった。この状況は従来の計算機で調速バッファ機能を
実現しているキャッシュメモリでも同様で、処理装置側
からのキャッシュメモリへの参照は一語あるいは一つの
領域からのみ可能である。このハードウェア構成が従来
計算機でプロログプログラムを制球に処理する制約とな
っている。
〔発明の目的〕
本発明はプロログに代表さn、る述語調理型言語のため
の処理装置として、同時に読出し=J能なバッファメモ
リを備えることにより、前記述語と述語を高速に比較で
きるようにした装置を提供するものである。
〔発明の構成〕
本発明の述語論理型言語処理装置は述語名とその引数よ
り成る述語の連らなりから成る節の集合として書き下す
述語論理型言語を処理する装置において、前記装置内で
の前記節の内部表現を格納する記憶装置と、前記記憶装
置から読み出された節の内部表現を一時的に格納する複
数のバッファメモリと、前記述語間の関係を次々にたど
る道筋を保持する/こめのスタック機構および複数筒の
内部レジスタおよびバッファメモリの管理機能および前
記述語の一致を調べるための比較機能を含む制御装置と
を備え、口i]記制御装置の制御の丁に一つの述語の内
部表現を前記複数のバッファメモリのうちの一つに格納
し、他の述語の内部表現を口1」記複数のバッファメモ
リの他の−・りに格納し、前記各バックアメモリの読出
しを同時に行うことにより互いの述語間の一致を検出で
きるようにしたことを特徴とする。
〔実施例の説明〕
以下本発明の一実施例を図面を用いて詳細に説明する。
本実施例では、プロログの述語を次の形式で表現する。
述語名(引数1.引数2.・・・・・・)引数は定数ま
たは変数であり、変数引数の先頭には矢印を付けて区別
する。プロログの一文を節と呼び、一般形式は以下のと
おりである。
述語1←述語2.述語3.・・・・・・、述袷n←印は
論理記号であり、その左側に存在し待する述語は冒々−
箇である。これをヘッド部と呼び、←印の右側をボデ、
1部と呼ぶが、ボディ側の述語を区切る5、′印は述語
間の論理積を表わす。、に記の一般形式は述語2.述語
3.・・・・・・、述語nの論理積が成立するとき、述
語1が成立することを表現しており、この形式を規則節
と呼ぶ。
一般形式の特殊形として、−\ラド部のみから成る節を
宣言節、ボディ部のみから成る節を間合わせ節と呼ぶ。
プロログのプログラム実行は以下のステップで行われる
(1) jli」のボディ部に現わnる述語と同一の述
語をヘッド部に持つ頗を見出す。ここで双方の述語の引
数同士全その並び順に比較し、一致を調べる操作全行う
。ここですべての引数が一致するとステップ(2)に移
るすべての引数が一致していなければステップ(1)の
処理を繰り返す。
引数同士の比較において、一方が変数、他方が定数であ
れば、変数に定数の値がバインドさ八る。まプヒ双万共
に変数であれば同一値を採るべく、一方が他方へのポイ
ンタに’f−1き換えられる。この二通りの処理も一致
条件金満たすものである。
(2)ステップ(1)で比較の結果述語同士の一致が確
認された節のボディ部の処理へと制御が移り、ステップ
(1)へ戻る。もしその節が宣言j舅であれは、ステッ
プ(1)の最初に参照された節のボディの引き続く述語
の処理へ移る。もし引続く述語が無ければ全処理を終了
する。
第1図はプロログのプログラム例全示す。図中、“Pl
“、“P2゛は述語名、“A゛、“B m、“C−。
“D゛、“E゛は定数引数、“*X゛、“*y”。
“*z゛ は変数引数である。節1は規則節であり、節
21節3は宣言節、頗4は間合わせ節である。
以下、このプログジムの処理の流れ全説明する。
プログラムの実行は間合わせ節から始まる。第1図の例
では節4の最初の述語“Pl (*x、*y)“の処理
から始′まり、ステップ(1)によつ−0節1が見出さ
れ、すべての引数が一致することからステップ(2)へ
進む。ここで変数“*x゛ には節1の定数値“A゛が
バインドされ、変”a”*y” には変数“*z゛がバ
インドされて“*y゛と“*z゛の値が等しいことが示
される。
ステップ(2)では節1のボディ部“P2 (B、 C
黄乙)゛ の処理へ進み、ステップ(1)へ戻って節2
との一致f:調べ不一致であることから、次に述語名“
P2”をヘッド部として持つ節3との一致を調べる。節
1のボディ部と節3のヘッド部とは一致シて、ステップ
(2)の処理へと進む。ここで変数“*z゛には節3の
定数値“八゛がバインドされる。前記処理の結果、変数
“*y゛と変数“*z゛の値が等しい関係にあることか
ら変数“*y゛ の値・も定数値#A゛になる。
前記ステップ(2)においてm13が宣言節であること
から、節1の処理・\制御が戻る。通工のボディ部には
述語“P2 (B、 C,冬z)゛ に続く述語はない
ので、節1の処理は終了し、節lの処理に制御全数し>
’C’fjJ54の処理へiシ制御が戻る。これまでの
処’L!i結果として、節4の変数″*、 x W−に
は定数値“A″がバインドでれ、変数“*y1にも同じ
く定数値#Δ゛がバインドてれる。
次に、節4の2普目の述語“I’l (*x、 *x)
 −が処理対象となり、ステップ(1)によって節1が
見出され、引数を比1夕した結果述語の一致が認めらら
れる。この引数の一致倹査におい゛て、変数“*X“の
値は前記の処理により得られた定数値“A゛である。゛
また、笥11の変数“*z”J直も変数“*X゛と同一
の値になることがら定数値“A゛となる。変数“暑・z
゛は節4の1番目の述語“P i C*xp *y) 
”の処理では定数値“A゛にバインドされたが、節4の
2@目の述語“pl (*x、 *x) ”の処理では
、節1は新たな処理対象である。このときには変数“*
2“は特定の値がバインドされていない変数であり前記
ステップ(1)の処理で初めて変数“*x゛の値“八1
にバインドされる。
以下、ステップ(2)で節1のボディ部を処理し、ステ
ップ(1)の処理を進める。節1のボディ部と節2は不
一致となり、節3と一致する。次にステップ(2)によ
り、節402番目の述語の処理として一致したことを節
4に返し、すべての処理を終了する。
本実施例の装置においては、プロログの節の内部表現と
して、第2図の例に示す形式を用いる。
第2図は第1図に示したプロログプログラムの節1に対
応する内部表現を示す例である。本実施例の装置では、
節毎に第2図に示すようなひとまと゛まりの領域で記述
される内部表現を持つ。この節毎の内部表現を「コード
」と呼ぶ。第2図の各行を語と呼び1語はタグフィール
ドと値フィールドから構成される。タグフィールドには
その語の属性情報が保持され、値フィールドにはタグで
示される属性に対応する値が保持されて(0る。
コードの先順の語「ヘッダ」はコード全体に係る情報を
保持する。すなわち規則節、宣言節2間合わせ節のいず
れに対応するコードであるかを示す情報2節の中にある
ユニークな変数の数に係る情報などを保持する。
コードの第2語である「ポインタ」はそのコードと同一
の述語名をヘッド部として持つ節へのリンク情報を保持
する。
第3語は、節1の述語名”p 1−に対応して、述語名
を値として持つことを示すタグフィールドと、その述語
名は具体的に“Pl”であることを示す値フィールドを
持つ。第4語では述語“Pl(A、%x)“の第1引数
“八〇の属性がアトムであることをタグフィールドで示
し、その値が“A゛であることを値フィールドで示す。
第5語では述語“Pl(A。
*2)゛の第2引数である変数“*z゛の属性が変数で
あることをタグフィールドで示し、その変数が節1の中
に現われる最初の変数であることを示す番号(0)を値
フィールドの値として持つ。
以下、節1のボディ部の述語名“P2.引数“Bm、“
C゛、“*乙゛にそれぞれ第2図の第6語〜第9語が対
応する。ここで、第9語の変数“*z゛と第5語の変数
“*z゛とが同一の変数であることはこれらの語の値フ
ィールドが同一変数番号(0)であることで示される。
第3b父上説明した内部表現によって第1図のプログラ
ム例を表現した図である。図中値フィールド中のnal
lはメモリリンクの終端であることを示す。節1,2,
3.4に対応して4つのコードが表現されている。
ボディ部の述語の述語名と同一の述語名をヘッドとして
持つ述語との一致を調べるときに比較対象となる節を指
定するために、ボディ部の述語名にはヘッド部に同一述
語名を持つ節に対応する内部表現のアドレスが格納され
ている。これらの関係は図中の破線で示す。
同一の述語名をヘッド部に持つ節はコードの第2語であ
るポインタによってリンクされる。例え7ば、節2と節
3とは同一の述語名をヘッド部に有する節であるので、
節2から節3にリンクされる。
第4図は本発明の装置の一実施例を示すブロック図であ
る。図中100 は第3図の説明で述べた内部表現をそ
のままの形で格納する記憶装置、101は記憶装置10
0に格納されているコードを読出すためのアドレスレジ
スタ、102は記憶装置100から読出されたコードを
一時的に格納するバッファメモリA、103はバッファ
メモリAの語を示すためのバッファポイン、りAt 1
04は記憶装置100がら続出されたコードを一時的に
格納するバッファメモ!JB、105はバッファメモリ
Bの語を示すためのバッファポインタB、106はバッ
ファメモリAlO2およびバッファメモリB 104か
ら読出された梧の一致を検出する比較器である。比較器
106は入力される2語のビットパターンが一致してい
ることを検出するだけでなく、変数を示す語と定数を示
す梧との比較において一致を検出する。
107はスタック機構および内部レジスタを含み比較器
106からの一致検出信号に基づいて他の構成要素の動
きを制御する制御部である。制御部107は従来型のプ
ロセッサと全く同様のため、内部1與構については特に
述べない。
84図において、アドレスレジスタ101で指定するア
ドレスがアドレス線201を介して記憶装置100に送
られると、出力がバス202を介してバッファメモリA
lO2とバ・ツ乙アメモリ8.104に送られる。バス
202のデータはバッファメモ!J A 102゜バッ
ファメモI) B 104のいずれか一方に格納される
。バッファメモリAlO2の出力はデータ線203を介
して比較器106と制御部107に送られる。バッファ
メモIJ B 104の出力はデータ線204ヲ介して
比較器106と制御部107に送られる。比較器106
ではデータ線203,204 *介して各バッファメモ
!j 102,104 から送られるデータの一致を検
出して、信号線205 ft介して制御部107に送る
制御部107では信号線205の一致信号及びデータ線
203,204 を入力して、制御部107の中に備え
るスタック機構およびレジスタ全操作する。更に制御部
107は、信号線206に介して記憶装置100への参
照を制御するためにアドレスレジスタ101の内容を更
新する信号、記憶装置100から読み出されたデータを
格納する先としてバッファメモリA 102.バッファ
メモIJ B 104のいずれか全選択する信号、これ
らのバッファメモリ参照を制御するためにバッファポイ
ンタA 103.バッファポインタ8105に更新する
信号を送り出し、月つバッファメモ+) 102,10
4 中に記憶装置100から転送に必要なデータが既に
格納されているか否かをチェックしてデータ転送の要/
不要ケ判定することなどを行う。
以下第3図、第4図、第5図および第6図を用いて第1
図に示した例題プログツムの本実施例における実行動作
を説明する。
記憶装置100には第3図に示す形式で第1図に示すプ
ロログプログラムがF′&絶されている。記憶装置10
0のデータはプログラムの実行に伴ってバッファメモリ
AlO2あるいはバッファメモリB104に格納される
。第5図(a) (b)にii第1図のプロログプログ
ラムの処理が終了した時のバッファメモ9 A 102
およびバッファメモ!、I B 104の記憶状態を示
す。
第6図は第1図に示したプログラムの実行ステップを説
明するための図全示す。iA6し1は実行h−1のステ
ップ、4号、バッファポインタAlO3の値。
バッファポインタB105の値、バッファメモリAlO
2からの出力、バッファメモリB104からのH1力、
制御部107内にあるレジスタおよびスタック機構の内
容、η:らびに比較器106を含め/こ制御1〆を報お
よびステップ内での制御動作、の順に示しでるる。
第1図において、節4il″i:プロログにおける問合
わせの命令を表わしている。すなわち、節/lの如くボ
ディ部のみから成る間合わせ簡によって実行が始まる。
第4の内部表現は第3図に4くず形式で記憶装置100
のアドレスCL4 番地から順次格納されている。制御
部107はアドレスレジスタ101にCL4番地を格納
し、その内容を読出ずことによって実行を開始する。初
期状態では、バックアメモリAlO2およびバッファメ
モ’) B 104の内容は空であつ、節4のコードは
格納されていない。このため、バックアメモリAlO2
に節4に対&6するコードを格納する。この結果、第5
図に示すようにノ(ソファメモ!j A 102の20
4地から27番地までに節4に対応する内部表現8袷が
格納される。
制am107はバッファポインタA 1o3VcB 4
 (7)コードの先頭属地20を格納して節4の「ヘッ
ダ」。
「ポインタ」をJIil−1次読出し、次に1番目の述
語に対応する飴を読出す。この語は同じ述語名をヘッダ
部に持・り節1へのアドレスを値として持ち、記憶装置
1υOから節1に対応するコードを読出す。
節1のコードは制御部107の指示によって、ノ(ソフ
ァメモリB 104に格納される。以下、準6図(a)
のステップ1の処理を開始する。
ステップ1では、バッファポインタAlO3にはNrj
 4の1番目の連語“P 1 (+x t 矢y ) 
”に対応するコードの格納先を指示するアドレス22力
ニ4名納され、バッファ・トインタB 105には節1
の「ヘッダ」語の格納先番地を示ず120が格納されて
いる。それぞれのアドレスに対比、してバッファメモ’
JA102からは節4の述語名“Pl“が出力され、バ
ッファメモ”) B 104からは節1の「ヘッダ」が
出力される。「ヘッダ」に含ま牡る情報はコードの1.
属性に係るものであり、それ自体が実行側1t(IK彰
$を及ぼすものではなく、バッファボイ/りB]05’
fz歩進じて次の実行ステップ状態となる。
ステップ2では、バッファポインタBH15が歩進じ、
節1の「ヘッダ」(て11it<rポインター1を1旨
示し、その結果バッファメモIJB104は「ポインタ
」の値を出力する。この「ポインタ」はヘッダ部に同一
の述語名を持つ節へのリンク情報であるから、リンクの
最終であるときにはその値は“null″となっている
。節4のような問い合わせ節では富に「ポインタ」は”
null”である。バッファポインタB105は引き続
き歩、i[1−j−る。
ステップ3では、バッファポインタB1051よバッフ
ァメモ’) B 104の122番地を指示し、バッフ
ァメモリB 104の出力として節1の述紹名”pi”
を出力する。ここで、バッファメモ’) A 102の
出力は節4の最初の述J8名でるり、バッファメモリ)
3104の出力と同様に“Pl゛である。この2つの出
力は・すれぞれ出力線204,203を介して比較器1
06に送られる。比較器106では肉入力データが一致
していることが検出され、信号線205を介して制aI
llI都107に一致信号が出力される。制御部107
ではこの比較結果により、節4と節1の現在比較対象に
なっている語に続く語を次ステツプにおける比較対象に
するため、バッファポインタAlO3、バッファポイン
タB105’eそれぞれ歩道上す。
ステップ4では、バッファメモ!JA102の出力は節
4の第1の述語名“Pl゛に続く第1の引数である“*
X“、また、バッファメモリB104の出力は節1の述
語名“PL”に続く第1の引数の値“八゛となる。各々
の出力はデータ線203,204を介して比較器106
に送られる。変数“*X2と′A゛とは一致条件を満た
しており、比較器106は信号線205を介して一致信
号を制御部107に送る。制御音(≦107ではスタッ
クの先頭0番目に変数“*X゛の始ヲ確保して、その値
を“A1にする。この処理により、変数“*X″に“A
゛がバインドされる。
バッファポインタAlO3およびバッファポインタB1
05はそれぞれ歩進する。
ステップ5では、節4の変数”*x”に続く第2の引数
である変数“*どが一バッファメモリAlO2の出力と
なり、Jf1′J1の“A゛に続く第2の引数である変
数“*z゛がバッファメモリB104の出力となる。比
較器106では、変数“*y゛と変数”*z”は一致条
件を満足しており、制御部107に信号線205を介し
て一致信号を出力する。制御部107では、スタックの
1#目の語を変数“*y゛の語とし、2番目の語を変数
“*z゛の語として格納する。変数“*y゛と変数“*
z゛が等しい値を持・クベきことを示すために変数“*
z゛の詔には変数“*y゛へのポインタ値を格納して、
変数“*2″を参照するときには、変数“*y゛の値を
参照することにする。
そしてバッファポインタA 103.バッファポインタ
B105を歩進す。
前記の述語名及び述語内のすべての引数の一致を検出し
た処理により、節4の第1述語と節1の一\ツダ部の述
語とは一致することが判明する。これによって制御は節
1のボディ部と、そのボディ部の述語名と同一の述語名
紫ヘッド部に持つ節との一致検出に進む。
ステップ6では、節1のボディ部の述語名は)くラフア
メモリB 104の出力″P2“であり、制御部107
は“P2” ff1−\ラド部に持°り節2へのアドレ
スを得る。
制御を述語名“P2゛の一致検出に移す前に、節4の2
@目の述語名“PI”を指示するアドレスを制御部10
7のN、l]XTレジスタに格納する。これは以降での
述語″””’ (B+ ”+ *Z) ”の比較処理で
、か語の一致を検出したとき制御を節4の第2述語“P
I (*x、 *x) ”の−眠検出処理に辿めるため
のものである。
また、同時に、面1のボディ部の述語名“P2゛を示す
アドレスを制御部107の几ETBYレジスタに格納す
る。これは、節1のボディ部の述語“P2(13,C,
*ヱフ゛ と−叙検査対象の述語“P2 (B、 D。
E)”kヘッド部に持・り節2との一致検査結果が不一
致のときに、述語“P2 (B、 C,A) ゛をヘッ
ド部に持つ節3との比較を改めて述語“”2(B+ C
+ *z) ”から開始するためのものである。この不
一致の処理はステップ7以?ひに示す。
ここでNEXTレジスタ、)LET几Yレジスタに格納
されるアドレスはそれぞれ記憶装置100に格納されて
いる前記述語名“Pl”、前記述語名“P2”に対応す
るアドレス25と125である。各バッファメモリ10
2,104のアドレスと記憶装ff、100のアドレス
との対応づけは制御部107のバッファメモリ管理機能
を利用して実現する。
ステップ7では罰2のコードの先頭にあるヘッダを参照
する。節2はバッファメモリ102,104に格納され
ていないので、記憶装置100 カラバッファメモリA
lO2に読込む。バッファメモリAlO2に格納した後
、バッファポインタA 103の値は節2のヘッダを指
示す2・アドレス150となる。
ステップ8では節2のポインタを参照する。このポイン
タの値は制御部107の内部レジスタであるLINKレ
ジスタに保存する。これ−9、以下の述語基“P2”に
係る一致検亘が不一致になった時に、−\ラド都に述語
“P2 (B、 C,A) ”を持つ節3との一致検査
を開始するために、この節3へのアドレス1h報?制御
部107の中に退避するためのものであり、このステッ
プ8にLINKレジスタを含んだ操作を示す。
ステップ9では、述語名”P2″の一致を検出する。続
いて、バッファポインタA、103.バッファポインタ
B105を歩進する。
ステップ10では述語名“P2“の第1引数が両方共に
“B ”であることから一致が検出される。
続くステップ11では節2の引数が゛D゛2節1の引数
が#C″であることから不一致となる。この結果は信号
線205を介して比較器106から制御部107に送ら
れる。
制御部107では、−\ノド部の述語名がP2″である
他の節すなわち節3との比較を開始するため、ステップ
12では節1の述語“P2 (B、 C,*Z、) ”
に関する一致r改めて調べるために、以前に対比してお
いたRETRYレジスタの節1の述語名#P2′へのア
ドレスに対応するバッファメモ!JB104内のアドレ
スの値125をバッファポインタB 105に格納する
。また、以前に退避しておいたLINKレジスタの内容
は節3へのアドレスであり、節3は節1の述語“P2 
(B、 C,、!乙)゛との比較対象となる。節3はど
のバッファメモリにも格納てれていないので¥Rj 3
のコードが記憶装置100がらバス202を介してバッ
ファメモIJA102に格納される。
ステップ12がらステップ17まてにおいて節1の述語
“P2 (B、 C,*z−) ’と節3の述M #P
2(B、 C,A) ”との一致が検出される。ステッ
プ17では変数“*z”に′t、゛がバインドでれる。
この結果、スタック中の置数II * z、−の領域が
らポイントされている変数“*y゛の領域にパA゛が格
納される。
以上の処理により、節4の第1述語“Pl(*x。
*y)゛に関する処理が終了して、次に節4の第2述語
である’Pl (*x、 *x) ”の処理に進む。
第2述緬の述語名は第1述読の述語名と同様“Pl“で
あるので節1との一致を調べる。節lは既にバッファメ
モ1,1B104に格納されているので記憶装い110
0から読出しは行う必要はない。ステップ18からステ
ップ23′までにおいて、節1の述語”P l (A、
 *z)’との一致か検出される。
以後の処理では節1の述語“P2 (B、 C,* Z
) ”と節2の一致を調べ、不一致であ、ることから節
3との一致を調べ、結果が−ゼ(することで、節4の第
2述語の処理が終了する。節4に一二続く述語がないの
で、節4の処理全体75二終了する。
比較器10Gは制池部107への制御信号を出力する。
この比較器106の機能は制御部107 q、、l一部
と考えられる。第4図に示す本実施例の説明では比較器
106はバッファメモ’) A、 102およびバッフ
ァメモリJ3104からの出力を同時に参照して比較で
きることを説明するために制御部とは別に示しである。
本発明における実施例・の処理では、若し節3がバッフ
ァメモリB104に格納されると、節1と節3との一致
検出処理(第6図のステップ13〜1.7)において、
バッファメモリからの参照は同時にはできない。
このように同一のバッファメモリ中に比較対象となる節
が格納されている場合にも、処理性能を劣化させないた
めに、第4図と同一の構成のものを用い両方のバッファ
メモリに全く同一のデータを格納すればよい。このよう
にすると、常に両バッファメモリから同時に2つの述語
を読出せる。
第7図(a) (b)に全く同一のデータをバッファメ
モリAlO2とバッファメモリB104とに格納した時
のイメージを示す。これにより、どのような節の組合わ
せでも、同時に2つの節を読み出すことにより一致を検
出できる。
〔発明の効果〕
以上の説明で明らかなように、本発明により述語論理型
言語の処理を高速に実行することができる。
【図面の簡単な説明】
第1図はプロログのプログラム例を示す図、第2図はそ
の例における内部形式を示す図、第3図は第1図のプロ
グラム例を内部形式に置換したときの記憶装置イメージ
を示す図、第4図は本発明の装置の一実施例を示すブロ
ック図、第5図(a)(b)は第1図のプログラム例を
処理するために記憶装置から2つのバッファメモリに格
納された内部表現のそれぞれのイメージを示す図、第6
図は第1図のプログラム例を第4図に示した実施例によ
って実行するときの実行ステップを示す図、第7図(a
) (b)は両バッファメモリに同一の節を格納したと
きのそれぞれのイメージを示す図である。 100は記憶装置、101はアドレスレジスタ。 102はバッファメモリA、103はバッファポインタ
A、104はバッファメモリB、1051dバッファポ
インタB、106は比較器、107は制御部。 rip I PI (A、 $Z) −P2 (E、 
c、 *Z)沖 2 β2(B、D、E)。 旨 3 P2(B、C,A)。 旨ヤ 4− p/(木ズ1才びり 、 PI(、衣ズ、
ネズ′〕。 慶1 旧 第2図 ′N−3回 (久ノ (1) 寥2切 (ぞυl) ?、切 (ぞtnZ)

Claims (1)

    【特許請求の範囲】
  1. 述語名とその引数より成る述語の連らなりから成る節の
    集合として書き下す述語論理型言語を処理する装置にお
    いて、前記節の内部表現を格納する記憶装置と、前記記
    憶装置から読み出された節の内部表現を一時的に格納す
    る複数のバッファメモリと、前記述語間の関係を次々に
    たどる道筋を保持するためのスタック機構および内部レ
    ジスタおよびバッファメモリの管理機能および前記述語
    の一致を調べるための比較機能金倉む制御装置とを備え
    、前記制御装置の制御の下に一つの述語の内部表現を前
    記複数のバッファメモリのうちの一つに格納し、他の述
    語の内部表現を前記複数のバッファメモリの他の−・り
    に格納し、前記各バックアメモリの読出しを同時に行う
    ことにより互いの述語間の一致を検出できるようにした
    ことを特徴とする述語論理型言語処理装置。
JP11634483A 1983-06-28 1983-06-28 述語論理型言語処理装置 Pending JPS607539A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11634483A JPS607539A (ja) 1983-06-28 1983-06-28 述語論理型言語処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11634483A JPS607539A (ja) 1983-06-28 1983-06-28 述語論理型言語処理装置

Publications (1)

Publication Number Publication Date
JPS607539A true JPS607539A (ja) 1985-01-16

Family

ID=14684620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11634483A Pending JPS607539A (ja) 1983-06-28 1983-06-28 述語論理型言語処理装置

Country Status (1)

Country Link
JP (1) JPS607539A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63195739A (ja) * 1987-02-09 1988-08-12 Nec Corp ユニフイケ−シヨン処理装置
JPH02183728A (ja) * 1989-01-10 1990-07-18 Matsushita Electric Ind Co Ltd 油煙浄化触媒体および調理器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63195739A (ja) * 1987-02-09 1988-08-12 Nec Corp ユニフイケ−シヨン処理装置
JPH02183728A (ja) * 1989-01-10 1990-07-18 Matsushita Electric Ind Co Ltd 油煙浄化触媒体および調理器

Similar Documents

Publication Publication Date Title
WO1986000735A1 (en) Hierarchical knowledge system
JPH03266039A (ja) フリーフォーマットデータリンク処理方式
Hsiao Data base computers
Bailey et al. A formal model and specification language for procedure calling conventions
JPS63155266A (ja) 回路設計の合成方法
Cole Macro processors
JPS5941064A (ja) プロログ処理装置
Savitt et al. ASP: A new concept in language and machine organization
JPS607539A (ja) 述語論理型言語処理装置
JP2004030638A (ja) マイクロプロセッサキャッシュ設計初期化
JPH046984B2 (ja)
Hollaar Specialized merge processor networks for combining sorted lists
RU2659492C1 (ru) Блок унификации с параллельным сопоставлением термов
Cyre et al. Generating VHDL models from natural language descriptions.
JPS6074040A (ja) 述語論理型言語処理装置
JPS6155736A (ja) プロロ−グマシン
Royston et al. The construction and description of algorithms
JPH01177130A (ja) ユニフィケーション処理装置
JPH0585049B2 (ja)
JPS61148536A (ja) 情報処理システム
JP2000207187A (ja) 宇宙機搭載ソフトウェアの設計情報管理システム及びその設計情報管理方法
JPS63195739A (ja) ユニフイケ−シヨン処理装置
JPS628231A (ja) 論理型デ−タ処理装置
JPH0585050B2 (ja)
Blake et al. A ring processing package for use with FORTRAN or a similar high-level language