JPH0362223A - Prologにおけるローカルスタックの管理方法 - Google Patents

Prologにおけるローカルスタックの管理方法

Info

Publication number
JPH0362223A
JPH0362223A JP19832389A JP19832389A JPH0362223A JP H0362223 A JPH0362223 A JP H0362223A JP 19832389 A JP19832389 A JP 19832389A JP 19832389 A JP19832389 A JP 19832389A JP H0362223 A JPH0362223 A JP H0362223A
Authority
JP
Japan
Prior art keywords
environment
choice
local stack
choice point
created
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
JP19832389A
Other languages
English (en)
Inventor
Kiyoshi Segawa
清 瀬川
Yoshinobu Sano
佐野 義信
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP19832389A priority Critical patent/JPH0362223A/ja
Publication of JPH0362223A publication Critical patent/JPH0362223A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明は、Prologを実行する計算機システムに
係り、特にチョイスポイントおよびエンバイロメントが
作成されるローカルスタックの管理方法に関する。
(従来の技術) AI(人工知能)言語としてのPrologを実行する
計算機システム(マシン)に、WA M (Warre
n Abstract Machlne )がある0こ
のWAMでは、チョイスポイント(choice po
int)とエンバイロメント(environment
 )は、ローカルスタック上に混在して作成されていた
。そのため、チョイスポイントまたはエンバイロメント
(のデータ構造)を消滅させる命令を実行する際には、
その対象となるチョイスポイントまたはエンバイロメン
トより上に、エンバイロメントまたはチョイスポイント
が残っているか否かをチエツクする必要があった。例え
ば第3図に示すように、ローカルスタック31上に、チ
ョイスポイントCP1、エンバイロメントE1、そして
′f−ヨイスポイントCP2の順に生成された場合、エ
ンバイロメントE1を消滅させる命令を実行する際には
、エンバイロメントE1より上にチョイスポイントが残
っているか否かをチエツクする必要がある。
第3図の例では、エンバイロメントE1より上にチョイ
スポイントCP2が残っており、この場合にはElを消
滅させることはできない。なお、チョイスポイントまた
はエンバイロメントの消滅は、ローカルスタック31の
ポインタを移動することにより行われる。
(従来の技術) 上記したように従来のPrologにおけるローカルス
タックの管理方法では、チョイスポイントとエンバイロ
メントはローカルスタック上に混在して作成されていた
ため、ローカルスタック上に作成されているチョイスポ
イントまたはエンバイロメントを消滅させる命令を実行
する際には、その対象となるチョイスポイントまたはエ
ンバイロメントより上に、エンバイロメントまたはチョ
イスポイントが残っているか否か(したがって消滅不可
能か可能か)をチエツクしなければならず、処理速度が
低下するという問題があった。
この発明は上記事情に鑑みてなされたものでその目的は
、ローカルスタック上に作成されているチョイスポイン
トまたはエンバイロメントを消滅させる命令が、その消
滅の可否をチエツクすることなく実行できるProlo
gにおけるローカルスタックの管理方法を提供すること
にある。
[発明の構成] (課題を解決するための手段) この発明は、Prologを実行する計算機システムに
おいて、チョイスポイントとエンバイロメントが作成さ
れるローカルスタック上で、上記チョイスポイントおよ
びエンバイロメントの作成領域を偶数ワード領域と奇数
ワード領域とに分けて管理するようにしたことを特徴と
するものである。
(作用) 上記の構成によれば、ローカルスタックの偶数ワード領
域または奇数ワード領域の一方だけにチョイスポイント
が順に作成され、他方だけにエンバイロメントが順に作
成されるように管理される。したがって、ローカルスタ
ック上に作成されているチョイス、ポイントまたはエン
バイロメントを消滅させる命令を実行する際に、その対
象となるチョイスポイントまたはエンバイロメントより
上にエンバイロメントまたはチョイスポイントが残って
いても、管理対象となる領域(偶数または奇数ワード領
域)が異なることから、その命令を実行しても何等不都
合はなく、従来片われていた消滅可否のチエツクが不要
となる。
(実施例) 第1図はこの発明を適用するWAMの一実施例を示す要
部機能ブロック構成図である。図中、11はローカルス
タック、CPI、CF2はローカルスタック11上に順
に作成されているチョイスポイント、E1〜E3はロー
カルスタックll上に順に作成されているエンバイロメ
ントである。本実施例において、チョイスポイントCP
I、CP2は、ローカルスタック11の偶数ワード(偶
数アドレス)領域だけに作成され、エンバイロメントE
1〜E3はローカルスタック11の奇数ワード(奇数ア
ドレス)領域だけに作成される。Bは次に作成すべきチ
ョイスポイントのボトム位置(示すポインタ情報)が設
定されるチョイスポイントレジスタ、Eは次に作成すべ
きエンバイロメントのボトム位置(示すポインタ情報)
が設定されるエンバイロメントレジスタである。チョイ
スポイントレジスタBおよびエンバイロメントレジスタ
Eは、一種のポインタレジスタであり、ローカルスタッ
ク11と共に主記憶(図示せず)上に置かれる。
12はローカルスタック11を初期化(イニシャライズ
)するローカルスタック初期化部、13はローカルスタ
ック11の偶数ワード領域にチョイスポイントを作成す
るチョイスポイント作成部、14はローカルスタック1
1の奇数ワード領域にエンバイロメントを作成するエン
バイロメント作成部である。15はローカルスタック1
1上のチョイスポイントを消滅させるチョイスポイント
消滅部、1Bはローカルスタックll上のエンバイロメ
ントを消滅させるエンバイロメント消滅部である。
次に、第1図の構成の動作を第2図(a)乃至第2図(
e)のフローチャートを参照して説明する。なお、第2
図(a)はローカルスタック初期化部12によるローカ
ルスタック初期化処理を示すフローチャート、第2図(
b)はチョイスポイント作成部13のチョイスポイント
作成処理を示すフローチャート、第2図(C)はエンバ
イロメント作成部14のエンバイロメント作成処理を示
すフローチャート、第2図(d)はチョイスポイント消
滅部15のチョイスポイント消滅処理を示すフローチャ
ート、第2図(e)はエンバイロメント消滅部16のエ
ンバイロメント消滅処理を示すフローチャートである。
まず、初期状態においては、ローカルスタック初期化部
12(ローカルスタック初期化ルーチン)が起動される
。これによりローカルスタック初期化部12は、ローカ
ルスタック11のボトムを示すアドレス(偶数アドレス
)を(チョイスポイント用ポインタの初期値として)チ
ョイスポイントレジスタBにセットしくステップal 
) 、このアドレスに1を加えたアドレス(奇数アドレ
ス)を(エンバイロメント用ポインタの初期値として)
エンバイロメントレジスタEにセットする(ステップa
2)。以上のアドレスセット動作により、ローカルスタ
ック11が実質的に初期化されたことになる。
さて、Prologの処理が行われ、チョイスポイント
を作成するためのWAMの命令の実行時には、チョイス
ポイント作成部13 (チョイスポイント作成ルーチン
)が起動される。チョイスポイント作成部13は、現在
のチョイスポイントレジスタBの内容を含む新たなチョ
イスポイントを、チョイスポイントレジスタBの示すア
ドレスをボトムとするローカルスタック11上の偶数ワ
ード領域に作成し、この新たなチョイスポイント(の作
成領域)のトップのアドレス+1をチョイスポイントレ
ジスタBにセットする(ステップbl)。
また、エンバイロメントを作成するためのWAMの命令
の実行時には、エンバイロメント作成部14(エンバイ
ロメント作成ルーチン)が起動さ・れる。
エンバイロメント作成部14は、エンバイロメントレジ
スタEの示すアドレスをボトムとするローカルスタック
1L上の奇数ワード領域に新たなエンバイロメントを作
成し、この新たなエンバイロメント(の作成領域)のト
ップのアドレス+1をエンバイロメントレジスタEにセ
ットする(ステップcl)。このように本実施例では、
チョイスポイントはローカルスタック11の偶数ワード
領域だけに連続して作成され、エンバイロメントはロー
カルスタック11の奇数領域だけに連続して作成される
。以上のチョイスポイントおよびエンバイロメントの両
方に着目した場合、そのローカルスタック11上での並
びは作成順に一致しない。しかし、チョイスポイントま
たはエンバイロメントの一方だけに着目した場合には、
そのローカルスタック11での並びは作成順に一致し、
しかもローカルスタックl!の偶数ワード領域(チョイ
スポイントの場合)または奇数ワード領域(エンバイロ
メントの場合)だけに限られる。したがって本実施例で
は、チョイスポイントまたはエンバイロメントを消滅さ
せる命令の実行が、以下に述べるように簡単に行える。
まず、チョイスポイントを消滅させる命令の実行時には
、チョイスポイント消滅部15(チョイスポイント消滅
ルーチン)が起動される。チョイスポイント消滅部15
は、チョイスポイントレジスタBの内容−1で示される
アドレスをトップとするローカルスタック11上の現在
のチョイスポイント、即ち最も最近に作成されたチョイ
スポイント(第1図の例ではチョイスポイントCP2)
の内部にセーブされている情報のうち、同情報がセーブ
された際のチョイスポイントレジスタBの内容、即ち旧
チaイスポイントレジスタBの内容(第1図の例では、
現在のチョイスポイントCP2のボトム位置、即ち現在
のチョイスポイントCP2に先行して作成されたチョイ
スポイントCPIのトップの次の位置を示すアドレス)
をチョイスポイントレジスタBにロードする(ステップ
di)。
これにより、チョイスポイントについては、現在のチョ
イスポイント(CP 2)が作成される前の状態に戻さ
れ、現在のチョイスポイント(CP 2)が実質的に消
滅される。この際、チョイスポイン)CF2とチョイス
ポイントCPIとの間で1っ或はそれ以上のエンバイロ
メントが作成されていたとしても、同エンバイロメント
はチョイスポイントと穴なってローカルスタック11の
奇数ワード領域に作成されているため、上記のチョイス
ポイント消滅処理によって誤って消滅される虞はない。
したがって、チョイスポイントを消滅される命令の実行
時に、その対象チョイスポイントの消滅の可否をチエツ
クする必要がなくなる。
次に、エンバイロメントを消滅させる命令の実行時には
、エンバイロメント消滅部1B(エンバイロメント消滅
ルーチン)が起動される。エンバイロメント消滅部18
は、エンバイロメントレジスタEの内容−1で示される
アドレスをトップとするローカルスタックll上の現在
のエンバイロメント、即ち最も最近に作成されたエンバ
イロメント(第1図の例ではエンバイロメントE3)の
内部にセーブされている情報のうち、同情報がセーブさ
れた際のエンバイロメントレジスタEの内容、即ち旧エ
ンバイロメントレジスタEの内容(第1図の例では、現
在のチョイスポイントE3のボトム位置、即ち現在のチ
ョイスポイントE3に先行して作成されたエンバイロメ
ントE2のトップの次の位置を示すアドレス)をエンバ
イロメントレジスタEにロードする(ステップel)。
これにより、エンバイロメントについては、現在のエン
バイロメント(E3)が作成される前の状態に戻され、
現在のエンバイロメント(E3)が実質的に消滅される
。この際、エンバイロメントE3とエンバイロメントE
2との間で1つ或はそれ以上のチョイスポイントが作成
されていたとしても、同チョイスポイントはエンバイロ
メントと異なってローカルスタック11の偶数ワード領
域に作成されているため、上記のエンバイロメント消滅
処理によって誤って消滅される虞はない。したがって、
エンバイロメントを消滅される命令の実行時に、その対
象エンバイロメントの消滅の可否をチエツクする必要が
なくなる。
以上のように本実施例では、ローカルスタック11の偶
数ワード領域だけにチョイスポイントがが順に作成され
、ローカルスタック11の奇数ワード領域だけにエンバ
イロメントが順に作成されるように管理しているので、
ローカルスタック11上に作成されているチョイスポイ
ントまたはエンバイロメントを消滅させる命令を実行す
る際に、その対象となるチョイスポイントまたはエンバ
イロメントより後に作成されたエンバイロメントまたは
チョイスポイントが残っていても、管理対象となる領域
(偶数または奇数ワード領域)が異なることから、その
命令を実行しても最も最新のチョイスポイントまたはエ
ンバイロメントから先に正しく消滅させることができる
ため、従来行われていた消滅可否のチエツクは不要とな
り、処理の高速化が図れる。特に、ハードウェアでロー
カルスタックのバウンダリチエツクを行っているシステ
ムでは、1つのローカルスタックを偶数ワード領域と奇
数ワード領域とに別けて管理することが簡単に行え、し
たがってローカルスタックの種類をチョイスポイント用
スタックと、エンバイロメント用スタックのようにハー
ドウェア的に増やす必要はないため、効果は著しい。
なお、前記実施例では、ローカルスタック11の偶数ワ
ード領域をチョイスポイントの作成領域に割当て、ロー
カルスタック11の奇数ワード領域をエンバイロメント
の作成領域に割当てた場合について説明したが、その逆
の割当てであってもよい。
[発明の効果〕 以上詳述したようにこの発明によれば、ローカルスタッ
クの偶数ワード領域または奇数ワード領域の一方だけに
チョイスポイントが順に作成され、他方だけにエンバイ
ロメントが順に作成される構成としたので、ローカルス
タック上に作成されているチョイスポイントまたはエン
バイロメントを消滅させる命令を実行する際に、その対
象となるチョイスポイントまたはエンバイロメントより
上にエンバイロメントまたはチョイスポイントが残って
いても、管理対象となる領域(偶数または奇数ワード領
域)が叉なることから、その命令を実行しても不都合が
生じる虞がなくなる。したがって、従来行われていた消
滅可否のチエツクが不要となり、Prologのプログ
ラムの実行が高速に行える。
【図面の簡単な説明】
第1図はこの発明の一実施例を示す機能ブロック構6.
図、第2図は動作を説明する゛ためのフローチャート、
第3図は従来のローカルスタックの管理方法の問題を説
明するための図である。 ti、 at・・・ローカルスタック、12・・・ロー
カルスタック初期化部、13・・・チョイスポイント作
成部、14・・・エンバイロメント作底部、15・・・
チョイスポイント消滅部、1B・・・エンバイロメント
消滅部、B・・・チョイスポイントレジスタ、E・・・
エンバイロメントレジスタ、CPI、CF2・・・チョ
イスポイント、E1〜E3・・・エンバイロメント。

Claims (1)

    【特許請求の範囲】
  1. Prologを実行する計算機システムにおいて、チョ
    イスポイントとエンバイロメントが作成されるローカル
    スタック上で、上記チョイスポイントおよびエンバイロ
    メントの作成領域を偶数ワード領域と奇数ワード領域と
    に分けて管理するようにしたことを特徴とするProl
    ogにおけるローカルスタックの管理方法。
JP19832389A 1989-07-31 1989-07-31 Prologにおけるローカルスタックの管理方法 Pending JPH0362223A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19832389A JPH0362223A (ja) 1989-07-31 1989-07-31 Prologにおけるローカルスタックの管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19832389A JPH0362223A (ja) 1989-07-31 1989-07-31 Prologにおけるローカルスタックの管理方法

Publications (1)

Publication Number Publication Date
JPH0362223A true JPH0362223A (ja) 1991-03-18

Family

ID=16389201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19832389A Pending JPH0362223A (ja) 1989-07-31 1989-07-31 Prologにおけるローカルスタックの管理方法

Country Status (1)

Country Link
JP (1) JPH0362223A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8123409B2 (en) 2009-02-27 2012-02-28 Mitsubishi Heavy Industries, Ltd. Journal bearing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8123409B2 (en) 2009-02-27 2012-02-28 Mitsubishi Heavy Industries, Ltd. Journal bearing

Similar Documents

Publication Publication Date Title
KR100284975B1 (ko) 플래시 메모리가 주 메모리를 보충하도록 하는 메모리 관리자
US5367682A (en) Data processing virus protection circuitry including a permanent memory for storing a redundant partition table
US7793144B2 (en) Storage system with cascaded copy targeting and enhanced integrity
JPH08255084A (ja) Eepromのアップグレード方法
JPS6275735A (ja) エミユレ−シヨン方法
US20060053260A1 (en) Computing system with memory mirroring and snapshot reliability
US6779099B2 (en) Operation method for controlling access attributes of a memorized page of a memory unit and its structure
JPH0362223A (ja) Prologにおけるローカルスタックの管理方法
US7293266B2 (en) Plurality of loader modules with a CO- ordinator module where selected loader module executes and each loader module execute
WO1993013477A1 (en) Computer protection device
JPS58211254A (ja) 蓄積プログラム制御方式
JPH10161942A (ja) 情報記憶方法及び情報記憶装置及び情報処理装置
US20040073744A1 (en) Method for the secure updating data areas in non volatile memory, device to perform such a method
JP2004078265A (ja) 記憶装置の防火壁制御装置及び制御方法
JPS6339933B2 (ja)
US6134577A (en) Method and apparatus for enabling address lines to access the high memory area
JPH1153249A (ja) メモリ管理方法
US5434979A (en) Disk drive controller
JPS595496A (ja) メモリプロテクト方式
JPH07253931A (ja) プログラムデータ格納領域の破壊防止方式
JPH11259308A (ja) プログラマブルコントローラ
JPH0831045B2 (ja) 仮想計算機のメモリクリア処理方式
JPS60103405A (ja) ロボツト等の実時間処理制御方法
JPH01300352A (ja) ダンプ領域指示制御方式
JPS61150049A (ja) 情報処理装置