JPS63156240A - Prologにおける構造体処理制御方式 - Google Patents

Prologにおける構造体処理制御方式

Info

Publication number
JPS63156240A
JPS63156240A JP61302804A JP30280486A JPS63156240A JP S63156240 A JPS63156240 A JP S63156240A JP 61302804 A JP61302804 A JP 61302804A JP 30280486 A JP30280486 A JP 30280486A JP S63156240 A JPS63156240 A JP S63156240A
Authority
JP
Japan
Prior art keywords
prolog
modifier
processing
preprocessing
structures
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
JP61302804A
Other languages
English (en)
Inventor
Saori Oikawa
及川 さおり
Ikuko Ueda
植田 郁子
Kyoko Tsuchiya
恭子 土屋
Miyuki Ono
美由紀 小野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP61302804A priority Critical patent/JPS63156240A/ja
Publication of JPS63156240A publication Critical patent/JPS63156240A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概  要〕 PROLOGにおける複数の同一構造体の処理にはそれ
ぞれの構造体に対して前処理を行うために時間を必要と
する。本発明はPROLOGの複数の同一構造体を一括
処理するものであり、本発明によって前処理の重複が省
け、実行効率を上げることができる。
〔産業上の利用分野〕
本発明はプログラム言語の実行態様に係り、特にPRO
LOGの構造体の処理に関する。
〔従 来 技 術〕
コンピュータ技術の発展とともに、各種の処理言語が開
発された。例えば、FORTRANやC0BOL等があ
る。これらの言語は計算処理や各種の事務処理等を行う
ものとしては有効である。一方、現在では、前述のよう
な処理の他に知識情報を扱う言語即ち知識情報処理言語
が開発され実用化されている。例えば、PROLOGも
その言語である。PROLOGは、その処理構造から多
くの人工知能分野で用いられている。
PROLOGの基本的な構造体は間数子と引数から成り
、例えばプログラムは規則と事実、規則はヘッドとゴー
ル列から成り立っている。
第5図は従来のPROLOGの実行メカニズムを説明す
る図である。実行を開始すると、まず構造体選択回路S
1によって前述のゴール列の先頭から構造体を抽出する
。そして抽出した構造体の関数子と引数のチェックや解
析を前処理部S2で行い、続いてPROLOGインタプ
リタを実行S3させる。
1個の構造体に対するPROLOGインタプリタが処理
を終了すると、次には、ゴール列終了判定部S4におい
て、ゴール列が終了したか否かを判別する。構造体選択
回路はゴール列の先頭から1個つづ順次構造体を抽出し
て実行させるため、ゴール列終了判定部S4はゴール列
が終了でない時には構造体選択回路S1を動作させる。
この動作によって、ゴール列の次の構造体が選択され、
順次前述した動作が、ゴール列が終了するまで繰り返さ
れる。
〔発明が解決しようとする問題点〕
前述した従来の方式においては、構造体の構造に関係せ
ず必ず前処理部が動作して前処理を行っている。例えば
、同一構造の構造体が複数個存在する場合においても、
個々の構造体に対して繰り返し前処理を行っている。こ
のため、処理の効率が低下するという問題を有していた
本発明は上記従来の欠点に鑑み、構造体が同一の場合に
は処理を効率よく行うPROLOGにおける構造体処理
制御方式を提供することを目的とする。
C問題点を解決するための手段〕 第1図は本発明の機能ブロック図である。1は入力ゴー
ル列、2は前記入力ゴール列の同一構造体を指示する修
飾語を検出し、前記修飾語を含む構造体を選択する選択
手段、3は前記選択手段によって選択された前記修飾語
を含む構造体の要素を抽出する要素抽出手段、4は前記
要素抽出手段3によって抽出された要素を用いた構造体
を作成する構造体作成手段、5はPROLOGの実行、
6は前記PROLOGの実行5における1個のゴール列
の構造体における実行が終了したか否か判別する終了判
別手段である。
〔作   用〕
選択手段2は入力ゴール列1の中の複数の同一構造体を
指示する修飾語を検出し、前記修飾語を含む構造体を選
択する。この結果によって、前記要素抽出手段3はこの
選択された構造体の中から、要素を抽出する。、構造体
作成手段4は前記要素抽出手段3によって抽出された要
素を用いた構造体を作成する。この作成した構造体の全
てに対してPROLOGインクブリタを実行5さセる。
終了判別手段6においては全ての入力に対してPROL
OGの実行がなされたかを判別し、終了していない時に
は再度前述した動作を繰り返させる。
入力したゴール列1に修飾語が存在する場合には、要素
抽出手段3、構造体作成手段4を介して得られた構造体
をPROLOGの実行で処理するので、修飾語によって
指示された複数の同一構造体に対する前処理は最初の1
回行うだけでよい。
〔実  施  例〕
以下、図面を用いて本発明の詳細な説明する。
第2図は本発明の実施例の実行メカニズムを説明する図
である。前処理S5は前述した第4図の従来技術の前処
理と同様であり、構造体の個数と引数のチェック等を行
う。従来の方式においては、同一構造体を指示する修飾
語例えばEVERY等の語はないが、本発明の実施例に
おいては、このようなEVERYなる語を有している。
このEVERYなる語が存在するか否かによって次の本
発明の実施例では実行が異なっている。EVERYなる
語が存在しない場合にはゴール列が終了したか否かを判
定S6し、終了していない時にはPROLOGインタプ
リタS7を実行して、再度前処理S5を行う。尚、第2
図は実行メカニズムを表しているため、構造体選択等の
処理は略しである。また、ゴール列の終了判定S6もイ
ンタプリタS7の前にあるが、これはインタプリタの後
でも可能である。
一方、EVERYなる語が存在する場合には、EVER
Yを含む構造体保持S8即ちEV!l!RYが存在する
状態を検出したことを記憶する。そして次にEVERY
に修飾されるリストの要素抽出S9を行う。
後述するが本発明の実施例においては、EVERYに対
する要素がEVERYを含む構造体を有するので、これ
を求めるのが前述の抽出である。この抽出S9によって
EIRYなる構造体の要素抽出がなされたので、次には
抽出された要素を用いPROLOGの構造体の作成31
0を行う。この時EVERYを含む1個の構造体からは
複数作成することが可能であるが、処理SIOにおいて
はまず1個の構造体を作成する。この作成の後、作成さ
れた構造体に対するPROLOGインタプリタS7を実
行し、処理を行う。
前述したEVERYなる語を有さない場合には、PRO
LOGインクブリタS7の後には前処理S5を行うが、
EVERYなる語を有する場合には、次にはリストの終
了判定Sitを行う。
EVERYなる語を有する構造体から要素を抽出し、抽
出した要素からまず1個の構造体を前述の処理S10で
は作成しているので、終了ではなく再度EVERYを含
む構造体保持処理S8から実行する。
前述した処理は順次繰り返され、EVERYなる語を有
する構造体が保有する複数の構造体に対し全て処理する
までなされる。そして1個のリスト即ちEVERYを有
する構造体に対応する個数の実行を行った後には再度次
の構造体に対する前処理S5を行う。
構造体は一般的には複数有するので、前処理は構造体の
数だけなされる。従来においては、複数個の同一構造体
の数もそれぞれに対し前処理を行うが、本発明の実施例
においては、1個の前処理で複数個の等価的な構造体を
処理することができる。
第3図は本発明の実施例のフローチャートである。
PROLOGの全体の実行を開始すると、まずゴール列
から構造体の1つを抽出する処理を行うSTI。
即ち、例えば記憶している構造体の1個を読出す。
そして抽出した構造体が修飾語EVII!RYを含むか
否かの制御ST2を行う。この判別ST2においてEV
ERYを含まないと判別した時(No)には、PROL
OGインタプリタに読出した構造体を渡し実行するST
3゜ 一方、HVI!RYを含む場合(YES)には、EVE
RYに修飾されるリストの要素を抽出する(ST4)。
そして、抽出した要素を用いPROLOGの構造体を作
成する(ST5)。ここの処理ST5で作成した構造体
は従来の同一構造体の中の1個であるので、次にはPR
OLOGインタプリタに構造体を渡し実行する(ST3
)。この処理によって1個の構造体に対して実行された
が、この1個の構造体はあくまでEVERYなる修飾語
で修飾された内の構造体の1個であるので、次にはこの
EVERYなる修飾語で修飾された構造体に対して全て
実行したかの判別を行う。即ち、EVERYに修飾され
たリストが空であるかの判別を行う。この判別ST6に
よってリストが空でないと判別した時(NO)には再度
処理ST4より行う。そして、それらの処理が順次繰り
返され、判別ST6でリストが空であると判別した時(
YES)にはEVERYを含む1個の構造体の処理が終
了したこととなる。この時と、さらに前述した処理ST
3の後は次の構造体が存在するか、即ちゴール列が終了
したか否かの判別ST7を行う。この判別ST7におい
て、ゴール列の終了でないと判別した時には再度処理S
T1から繰り返す。終了した時(YES)には、ゴール
列の構造体に対する処理を行ったので、全処理を終了す
る(END)。
前述した第3図の本発明の実施例のフローチャートを対
応させて、第4図の本発明に対するプログラムを用いて
さらに詳細に説明する。■〜■はPROLOGプログラ
ムであり、■はルールであり、rFather (変数
)は3人の父で、Mother (変数)は3人の母で
ある(つまり父親、母親が同じ)なら3人は兄弟である
」を表している。■〜■は事実である。
まず処理STIにおいて、ゴール列から1個の構造体即
ち父(Father every (一部、二部、三部
〕)を抽出する。この構造体にはEVERYを有するの
で、判別処理ST2でYESとなり、次の処理ST4で
EVERYに修飾されるリストの要素が抽出、即ち一部
が抽出される。そして、処理ST5で父(Father
、一部)なる構造体が作成される。
本発明の実施例においては、PROLOGの実行ST3
が■と父(Father、一部)をマツチするものであ
るならば、Fa therが太部となる。(ここでマツ
チとは関数子名と引数の数が一致するものを見つけ、同
じ位置の引数どうしか定数の時は、形が同じかを調べる
。どちらかが変数の場合は定数が作成される。尚、関数
子名は()の左側にある名前ここては父を表し、引数は
()内の要素を表す、)処理ST3の次には、判別ST
6によってNo (この時には1個目の父(Fathe
r、一部)の構造体のみを実行しているので、残りが存
在する。)となり、次に処理ST4で二部なる要素さら
には処理ST5と父(太部、二部)なる構造体が作成さ
れる。そして、実行ST3する。尚、前述した1回目の
実行ST3でマツチされている条件はチェックされてい
るので、この処理は意味のないものとなる。
次には判別ST6ではNo (要素の三部が残っている
)となり、処理ST4で三部が抽出され、処理ST5で
父(太部、三部)なる構造体が作成される。更にPRO
LOGインタプリタの実行(この時には要素(二部)の
場合と同様)し、次の判別ST6でYESとなる。
前述の動作で父に対する実行が終了しているので、判別
ST6はYESとなるが、次の判別ST7では母が残っ
ているのでNOとなり、処理STlから繰り返される。
母の場合も同様に前述した動作が繰り返され、処理ST
5で母(花子、三部)の構造体が実行され終了した時に
は判別ST6、ST7が共にYESとなり処理を終了す
る。
前述したプログラム■のゴール列父(Pa ther、
every  (一部、二部、三部〕、母(Mothe
r、、 every〔一部、二部、三部〕)は従来のゴ
ール列で表すと父CFathers一部)、父(Fat
her、二部)、父(Father、三部)、母(Mo
ther、一部)1、母(Mother、二部)、母(
Mother、、三部)となる。
PROLOGの実行においては従来の場合も本発明の実
施例の場合も同一であり、更に、各ゴール列の前に必ず
前処理を行っている。しかしながら、従来はEVERY
なる修飾語を用いていないため、6個の構造体に対しそ
れぞれ前処理を行わなくてはならない。しかしながら本
発明の実施例においては2個のEVERYを含む構造体
に対してのみ前処理を行っているので、前処理の回数は
少なくて全処理の効率が向上する。
以上、本発明の実施例を用いて詳細に説明したが、本発
明の実施例における修飾語EVERYはこれに限らず他
の語でも可能である。更に、例えばEVERYを有する
構造体が意味する複数の構造体のうちの1個を作成する
ならびにPROLOGインタプリタを実行させているが
、これに限らすEVERYを有する構造体が意味する複
数の構造体を全て作成した後、その数に対応する個数分
PROLOGインタプリタを順次実行させることも同様
に可能である。
〔発明の効果〕
以上のべたように本発明はPROLOG実行メカニズム
において、複数の同一構造体を一括して処理を行うもの
であり、即ち、修飾語を有する構造体1個に対して前処
理を1回行い、修飾語で意味する複数の構造体に対して
は個々には前処理を行わないものであり、本発明によれ
ば構造体が同一の場合には処理を効率よく行うPROL
OGにおける構造体処理制御方式を得ることができる。
【図面の簡単な説明】
第1図は本発明の機能ブロック図、 第2図は本発明の実施例の実行メカニズムを説明する図
、 第3図は本発明の実施例のフローチャート、第4図は本
発明の実施例のプログラム、第5図は従来の実行メカニ
ズムを説明する図である。 1・・・入力、 2・・・選択手段、 3・・・要素抽出手段、 4・・・構造体作成手段、 5・・・実行、 6・・・終了判別手段。 特許出願人    富士通株式会社 本樽馴の機叱ブ唄、7グ図 第1図 木材」への*加1ケ1の大イテメカニスムとJε4Tろ
図第2図 本発明の大島!、#弓の70−子ヤード第3図 ■ 兄弟(一部、二部、三部)ニー 父(Father、every (一部、二部、三部〕
)。 母(Mother、every (一部、二部、三部)
)。 ■ 父(太部、一部)。 ■ 父(太部、二部)。 ■ 父(太部、三部)。 ■ 母(花子、一部)。 ■ 母(花子、二部)。 ■ 母(花子、三部)。 本発明の実施例のプログラム 第4図 咲来の実行メハニス゛ムE訳、唱↑う図第°5図

Claims (1)

  1. 【特許請求の範囲】 1)入力ゴール列(1)の複数の同一構造体を指示する
    修飾語を検出し、前記修飾語を含む構造体を選択する選
    択手段(2)と、該選択手段(2)によって選択された
    前記修飾語を含む構造体の要素を抽出する要素抽出手段
    (3)と、該要素抽出手段(3)によって抽出された要
    素を用いた構造体を作成する構造体作成手段(4)と、
    該構造体作成手段(4)によって作成された構造体に対
    する処理を行うPROLOGインタプリタ(5)とから
    なり、 前記修飾語によって指示される構造体に対する処理を全
    て終了したかを判別し、終了していない時に再度前記要
    素抽出手段(3)を実行させる終了判別手段(6)より
    成ることを特徴としたPROLOGにおける構造体処理
    制御方式。 2)入力ゴール列の複数の同一構造体を指示する修飾語
    を検出し、前記修飾語を含む構造体を選択する選択手段
    と、 該選択手段によって選択された前記修飾語を含む構造体
    の要素を抽出するとともに該要素を用いた構造体の全て
    を作成する構造体作成手段と、該構造体作成手段によっ
    て作成された構造体に対する処理を全てに対して連続的
    に行うPROLOGインタプリタとを有することを特徴
    としたPROLOGにおける構造体処理制御方式。
JP61302804A 1986-12-20 1986-12-20 Prologにおける構造体処理制御方式 Pending JPS63156240A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61302804A JPS63156240A (ja) 1986-12-20 1986-12-20 Prologにおける構造体処理制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61302804A JPS63156240A (ja) 1986-12-20 1986-12-20 Prologにおける構造体処理制御方式

Publications (1)

Publication Number Publication Date
JPS63156240A true JPS63156240A (ja) 1988-06-29

Family

ID=17913308

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61302804A Pending JPS63156240A (ja) 1986-12-20 1986-12-20 Prologにおける構造体処理制御方式

Country Status (1)

Country Link
JP (1) JPS63156240A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6237957B1 (en) 1998-05-20 2001-05-29 Kubota Corporation Reinforcing frame for a working vehicle

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6237957B1 (en) 1998-05-20 2001-05-29 Kubota Corporation Reinforcing frame for a working vehicle

Similar Documents

Publication Publication Date Title
JP2599532B2 (ja) コード変換方法及び装置
JPH04307625A (ja) ループ最適化方法及び装置
JPS63156240A (ja) Prologにおける構造体処理制御方式
JP3318051B2 (ja) 翻訳処理方法
JPS6219940A (ja) 高速推論処理方式
JPS61245239A (ja) 論理回路方式
JP3695798B2 (ja) コンピュータシステムおよびコード生成最適化制御方法
JPS62217325A (ja) アセンブラコ−ド最適化方式
JPH07210397A (ja) プログラム変換方法およびそれを用いたプログラム実行方法
JPS6072032A (ja) 計算機システムの高速処理方式
JP2004046747A (ja) ベクトル化方式
JP3018401B2 (ja) 計算機システム構成変更装置
Milner String handling in ALGOL
JPH08297579A (ja) テキストデータにおける区切り語処理方式
JPH0754523B2 (ja) 日本語文節間係り受け解析装置
JPH0677235B2 (ja) 情報処理装置
Smillie et al. Converting decision tables to computer programs
JPH03186932A (ja) 字句解析における空白読み飛ばし装置
JPS63113631A (ja) ソフトウエア部品検索システム
JPH02222032A (ja) 加減算命令の最適化方式
Kuo COMMUNICATING SEQUENTIAL PROCESSES
JPH04342026A (ja) 構造体データのパターンマッチング方式
JPH01295336A (ja) クリティカルセクション最適化方式
JPH01213721A (ja) コンパイラ方式
JPH03127133A (ja) 計算機シミュレーション方法