JPH03132824A - 論理型プログラム処理方式 - Google Patents

論理型プログラム処理方式

Info

Publication number
JPH03132824A
JPH03132824A JP27024089A JP27024089A JPH03132824A JP H03132824 A JPH03132824 A JP H03132824A JP 27024089 A JP27024089 A JP 27024089A JP 27024089 A JP27024089 A JP 27024089A JP H03132824 A JPH03132824 A JP H03132824A
Authority
JP
Japan
Prior art keywords
instruction
argument
unifiable
registers
processing
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
JP27024089A
Other languages
English (en)
Inventor
Seiichi Kondo
誠一 近藤
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP27024089A priority Critical patent/JPH03132824A/ja
Publication of JPH03132824A publication Critical patent/JPH03132824A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、プロログ(Prolog)のように推論を
行う述語で記述された論理型プログラムの処理方式に関
するものである。
[従来の技術] これまでのノイマン型コンピュータに替り、三段論法に
代表される推論処理を行う推論コンピュータが近年開発
されている。推論コンピュータで実行される論理型プロ
グラミング言語の代表的なものとしては、prolog
が知られている。
第1図は、WAM (Warren Abstract
 Machine)として知られている。 Prolo
gで記述されたプログラムの処理方式を実現するための
装置の一例を示すブロック図である。
図において、1は演算処理装置、2は論理型言語Pro
logで記述されたプログラムをコンパイルして得られ
た命令列を保持する命令コード記憶装置、3はバックト
ラックの際に復帰すべき情報と節の実行環境とを保持す
るローカルスタック、4は入城変数及び複合項を保持す
るグローバルスタック、5はバックトラックの際に無効
化すべき変数のアドレスを保持するトレイルスタック、
6は述語呼び出しの実引数、すなわちゴール引数や一時
変数を保持する引数レジスタ群、7は上記命令コード記
憶装置2及び各スタック3〜5のアドレスなどを保持す
る制御レジスタ群である。なお、同図において、命令コ
ード記憶装置2と各スタック3〜5及び各レジスタ群6
,7は、別々の記憶装置に割り当てるように記述してい
るが、それらの一部または全てを同一の記憶装置に割り
当てても構わない。
第2図は、論理型言語Prologで記述したプログラ
ムの一例である。
第6図は、第2図に示したプログラムを従来方式でコン
パイルした結果として得られる命令列である。同図にお
いて、節の選択に関する命令は以下のように説明される
try−me−else Label は、バックトラックの際にLabelに対応する節。
すなわち第2図に示したプログラム中の述語pの第2番
目の節を実行することができるように。
ローカルスタック3へ情報を保存することを指示する命
令である。
5w1tcJon term var=Lvar、co
nst=Lconst。
1ist−Llist、5truct=Lstruct
は、第1引数内に格納されたデータの型により分岐を行
う命令である。すなわち、データが未定義変数である場
合にはLvarに対応する命令に、アトムまたは数であ
る場合にはLconstに対応する命令゛に、リストで
ある場合にはLlistに対応する命令に、複合項であ
る場合にはLstructに対応する命令に分岐を行う
命令である。
swjtch−on  constant  1:L2
. 2:L3.  else:L4は、第1引数内に格
納されたデータの値により分岐を行う命令である。例え
ば、上記のようなパラメータが指定されると、データが
1である場合にはL2に対応する命令に、2である場合
にはL3に対応する命令に、それ以外の場合にはL4に
対応する命令に分岐を行う命令である。
try Label は、swi tcJon−termまたは5w1tch
 on constant命令で分岐された後も更に複
数の選択肢が残された場合に用いられる命令で、Lab
elに対応する節が失敗してバックトラックする際2次
命令を実行する命令である。すなわち、第2図に示した
プログラム中の述語qの第2番目の節を実行することが
できるように、ローカルスタック3へ情報を保存するこ
とを指示する命令である。
更に、小長谷明彦による″論理型言語処理装置” (特
開昭61−194538号、昭和61年8月28日)で
は、引数レジスタの特定の1つを第1オペランドで指定
し、該引数レジスタ内に格納されたデータまたは該引数
レジスタからの参照先データが構造体のときに該構造体
のファンフタにエンコードされた建値を第2オペランド
として与えられたマスク値によりマスクして得られた値
に応じて分岐を行う命令処理手段を提案している。すな
わち、第1引数以外の任意の引数も建値として選択する
ことができる。更に、多重インデクシングを用いて2つ
以上の引数のデータの型、あるいは値により分岐するこ
とを可能とする。その結果、第6図の述語qのコードの
うちtry命令を省略することができる。
[発明が解決しようとする課ME 以上説明したように、従来方式においては第2図に示し
た述語pのような節集合に対しては、レジスタごとの型
、値の情報のみでは分岐することができず、バックトラ
ックのためにローカルスタックに各種情報を保存するこ
とが必要となる。
これらの情報の保存及び除去の処理、すなわち選択肢フ
レームの生成及び除去の処理のコストは一般に高く、選
択肢に関する処理の速度を低下させるという問題点があ
った。
この発明は上記のような問題点を解消するためになされ
たもので、選択肢に関する処理を高速に実行することが
できる論理型プログラム処理方式を得ることを目的とす
る。
[課題を解決するための手段] この発明に係る論理型プログラム処理方式は、複数の引
数レジスタの関係に基づき対応する節の命令に分岐を行
う命令を新たに備えたものである。
[作用] この発明における論理型プログラム処理方式は、前記の
ような複数の引数レジスタの関係により対応する節の命
令に分岐を行う命令を用いて、該当する筒のみを選択す
ることにより、選択肢フレームの生成及び除去の処理を
不要とし、選択肢に関する処理を高速に実行する。
[実施例コ 以下、この発明の一実施例を図について説明する。
第3図は複数の引数レジスタの関係により対応する節の
命令に分岐を行う命令の一例である。図において、5w
1tch on unifiableは、もし、与えら
れた2つの引数がユニファイ(単一化、統合化)可能な
らば次命令に進み、そうでないならばLabelに対応
する命令を実行する。ここでは、複数レジスタの関係と
してユニファイの可能性を例としたが、大小関係、型や
組込み述語の等優性などが他の例として挙げることがで
きる。
第4図は、第2図に示したプログラムのうち。
述語Pを本方式を用いてコンパイルした結果として得ら
れる命令列である。同図において本方式の命令は次のよ
うに説明される。
5w1tch on−unifiable  Al、 
A2. Labelは、引数レジスタAIとA2のユニ
ファイ可能性を調べ、もし、ユニファイ可能ならば次命
令に進み、そうでないならばLabelに対応する命令
を実行する。すなわち、ユニファイ可能でないならば、
ローカルスタック3にバックトラックのための情報を保
存することなく、2番目の節に進む。
次に、この命令を用いた処理の流れを説明する。第5図
はこれらの命令を含む述語qの処理を本発明に従って処
理した際のフローチャートである。ここで、述語qは、 p(2,1) のゴールによって呼び出されたものとする。レジスタA
Iには2が、レジスタA2には1が格納されており、ユ
ニファイ可能ではないのでLabelに進み(ステップ
S1→S2)、引き算命令が実行された後、再びpが呼
び出される。このとき、レジスタA1には1が、レジス
タA2には1が格納されており、ユニファイ可能である
ので、実際のユニフィケーションがなされた後、終了す
る(ステップS1→S3)。このように、レジスタAI
とA2がユニファイ可能でないならば、選択肢フレーム
を生成しないで即座に2番目の節が選択される。
[発明の効果] 以上のように、この発明によれば、簡単な機能追加を行
うことにより実現可能な、複数の引数レジスタの関係に
より対応する節の命令に分岐を行う命令により、選択肢
フレームの生成及び除去の処理を省略することができ1
節の選択を高速に行うことができる効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例による処理方式を実現するた
めの装置のブロック図、第2図は論理型言語Prolo
gのプログラム例を示す図、第3図は本発明の一実施例
による処理方式を実現するために用いられる。複数の引
数レジスタの関係により対応する節の命令に分岐を行う
命令を示す図、第4図は本発明に従って第2図のプログ
ラムをコンパイルした結果として得られる命令列を示す
図、第5図は第4図の命令列を本発明に従って実行した
処理の流れを示すフローチャート、第6図は第2図のプ
ログラムを従来方式でコンパイルした結果として得られ
る命令列を示す図である。 1は演算処理装置、2は命令コード記憶装置、3はロー
カルスタック、4はグローバルスタック、5はトレイル
スタック、6は引数レジスタ群、7は制御レジスタ群。

Claims (1)

  1. 【特許請求の範囲】 述語呼び出しの実引数を格納する引数レジスタ群を備え
    、推論を行う述語で記述された論理型プログラムの処理
    に際して上記引数レジスタ群を用いて選択肢に関する処
    理を行う論理型プログラム処理方式において、 複数の引数レジスタの関係に基づき対応する節の命令に
    分岐を行う命令を備えたことを特徴とする論理型プログ
    ラム処理方式。
JP27024089A 1989-10-19 1989-10-19 論理型プログラム処理方式 Pending JPH03132824A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27024089A JPH03132824A (ja) 1989-10-19 1989-10-19 論理型プログラム処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27024089A JPH03132824A (ja) 1989-10-19 1989-10-19 論理型プログラム処理方式

Publications (1)

Publication Number Publication Date
JPH03132824A true JPH03132824A (ja) 1991-06-06

Family

ID=17483508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27024089A Pending JPH03132824A (ja) 1989-10-19 1989-10-19 論理型プログラム処理方式

Country Status (1)

Country Link
JP (1) JPH03132824A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6341933A (ja) * 1986-08-08 1988-02-23 Agency Of Ind Science & Technol 推論計算機
JPS6450128A (en) * 1987-08-20 1989-02-27 Agency Ind Science Techn Logical program processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6341933A (ja) * 1986-08-08 1988-02-23 Agency Of Ind Science & Technol 推論計算機
JPS6450128A (en) * 1987-08-20 1989-02-27 Agency Ind Science Techn Logical program processing system

Similar Documents

Publication Publication Date Title
US8201140B2 (en) System and method for creating and using graphical object instances in a statechart environment
EP0469756B1 (en) Modular expert system and method for modularizing a set of rules used by an expert system
Barbacci et al. Programming at the processor-memory-switch level
Fauth et al. Automated generation of DSP program development tools using a machine description formalism
US4780820A (en) Control flow computer using mode and node driving registers for dynamically switching between parallel processing and emulation of von neuman processors
JPH06250837A (ja) スケジューリング処理方式
JP2752094B2 (ja) 論理型言語におけるバックトラック処理方式
JPH03132824A (ja) 論理型プログラム処理方式
Busch First-order automation for higher-order-logic theorem proving
JPH03196335A (ja) 論理型プログラム処理方式
Sadolewski et al. Exception Handling in Programmable Controllers with Denotational Model
JPS6227822A (ja) バツクトラツク制御方式
Yu et al. Efficient scheduling and instruction selection for programmable digital signal processors
Marti Compilation techniques for a control-flow concurrent LISP system
JPS61139840A (ja) 情報処理装置
JPS6249546A (ja) 論理型言語処理装置
Palumbo et al. Considerations in the development of a knowledge-based control systems design associate
JPS61139838A (ja) 情報処理装置
JPS623341A (ja) 条件付制御方法
JPH0460719A (ja) 電子計算機、プログラマブル論理回路及びプログラム処理方法
JPH1195995A (ja) データフロー解析装置、データフロー解析方法及びそのためのコンピュータプログラムを記録した記録媒体
JPS62202264A (ja) ベクトル演算処理方式
Fiddian Meta‐assembly: A fresh assessment
Aygun Environments for monitoring and dynamic analysis of execution
JP2002140198A (ja) インライン展開方法