JPH02114331A - 無限構造検出装置 - Google Patents

無限構造検出装置

Info

Publication number
JPH02114331A
JPH02114331A JP26861888A JP26861888A JPH02114331A JP H02114331 A JPH02114331 A JP H02114331A JP 26861888 A JP26861888 A JP 26861888A JP 26861888 A JP26861888 A JP 26861888A JP H02114331 A JPH02114331 A JP H02114331A
Authority
JP
Japan
Prior art keywords
register
cell
data
address
value
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
JP26861888A
Other languages
English (en)
Inventor
Tsutomu Maruyama
勉 丸山
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
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 filed Critical NEC Corp
Priority to JP26861888A priority Critical patent/JPH02114331A/ja
Publication of JPH02114331A publication Critical patent/JPH02114331A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は無限構造検出装置、特に関数型言語、論理型言
語などの処理装置において、無限構造を持つ構造データ
を効率良く扱う無限構造検出装置に関するものである。
〔従来の技術〕
従来、無限構造を持つ構造データは扱えないか、ソフト
ウェアまたはファームウェアによって一度読み出したデ
ータに印を付けるなどの方法がとられてきた。
〔発明が解決しようとする課題〕
関数型言語、論理型言語において無限構造を持つデータ
構造を扱えると言語の記述力が高まることが知られてい
たが、無限構造の検出は時間のかかる処理であるため、
一般には無限構造の検出は行われず、無限構造があられ
れた場合には、処理が停止しないなどの問題点があった
また、ソフトウェアまたはファームウェアによって検出
を行う場合にも記憶装置に対するデータの読み出し格納
回数が検出を行わない場合に対して著しく増えるという
問題点があった。
本発明の目的は、無限構造の有無の検出をより容易に行
う装置を提供することにある。
〔課題を解決するための手段〕
本発明は、無限構造を持つ構造データの無限構造検出装
置において、構造データを格納する記憶装置と、前記記
憶装置に読み出し番地を与えるアドレスレジスタと、前
記記憶装置からデータを読み出した回数を数えるカウン
タと、前記カウンタの値により、前記記憶装置により読
み出したデー、夕の格納番地を記憶する位置レジスタと
、前記アドレスレジスタと前記位置レジスタの値を比較
する比較器とを有している。
〔作用〕
無限構造を検出するためには、ある構造データの処理中
に、あるデータの読み出しを行った際、そのデータが、
その構造データの処理を開始してから既に一回読み出さ
れたものであるかどうかを調べなくてはならない。
第4図に示す無限構造について考えてみる。この構造は
2語からなる構造(以下セルと呼ぶ)から構成されてお
り、 (abcdefbcdefb=−) なる無限構造である。この構造が無限構造であるかどう
かを調べるには、無限構造中のどれか一つのデニタの格
納番地(セル2,3,4,5.6の場所のいずれか)を
覚えておいて(この値を記憶するレジスタを位置レジス
タと呼ぶ)、これから読み出そうといているデータの格
納番地との比較を行えば良い。
例えば、この構造の読み出しを始めてから、セル4まで
読み出した時にセル4の格納番地を位置レジスタに記憶
したならば、セル5,6と読み出し、セル2,3と繰り
返し読み出したところで、位置レジスタの値とこれから
読み出そうとしているセル4の格納番地が一致し、セル
4は既に読み出したものであることが判るためこの構造
が無限構造であることが判る。
しかし、まず、セル1の格納番地を位置レジスタに記憶
した場合には、無限構造セル2,3゜4.5.6から構
成されているため、記憶したセル1の格納番地とこれか
ら読み出そうとしているセルの格納番地を比較してもそ
の結果が一致することがないため、この構造が無限構造
かどうか判定することができない。
本発明の装置では、データ読み出し回数を保持するカウ
ンタを設け、その値がある値に達するごとに位置レジス
タに保持する格納番地を変えることによって、上記のよ
うな場合にも、無限構造であることを検出できるように
するものである。
この時、例えば8回データを読み出すごとに、位置レジ
スタにその時のデータの格納番地を格納するのでは長さ
がN以上の無限構造を検出することができないため、位
置レジスタにデータの格納番地を記憶させる間隔をデー
タの読み出し回数に応じて単調増加的に長くすることに
よって、どのような無限構造でも検出可能としている。
第5図に示すようなデータ構造を扱う場合には、セル2
を読み出した結果、セル?、8.9゜10.11の読み
出しを行うことになる。この時、例えばセル8の格納番
地が位置レジスタに格納され、その後セル4を読み出し
た結果再びセルフ、8.9,10.11が読み出されよ
うとする時まで位置レジスタの値が更新され′ていない
とすれば、位置レジスタに格納されているセル8の格納
番地とこれから読み出そうとしているセル8の格納番地
が一致するため、このままでは第5図に示した構造は無
限構造であると判断されてしまうが、この場合は、セル
2に続くセルフ、8゜9.10.11の読み出しが終了
し、セル3の読み出しに戻る時に、位置レジスタの値を
セル3の格納番地に変えることによって、正しく判断を
行うことができる。
〔実施例〕
次に、本発明を図面に従い説明する。
第1図に本発明の一実施例のブロック図を示す。
図においては、01はカウンタ、02はアドレスレジス
タ、03は位置レジスタ、o4は比較器、05は2語同
時に読みだし可能な記憶装置、06.07はデータレジ
スタ、08はスタックポインタ、09はセレクタ、10
は以上の装置の制御を行う制御装置である。構造データ
は記憶装置05に格納されており、アドレスレジスタO
2によってデータを読み出し番地が指定され、記憶装置
05より読み出されデータレジスタ06.07に格納さ
れる。
カウンタ01は構造データの読み出し回数を数えるため
のカウンタであり、アドレスレジスタ02は記憶装置0
5の読み出し格納番地を与えるためのレジスタである。
データレジスタ06゜07は記憶装置から同時に読み出
された2語を格納するためのレジスタである。
位置レジスタ03は以前読み出したデータの格納番地を
保持しているレジスタである。データレジスタ06,0
7は記憶装置から同時に読み出された2語を格納するた
めのレジスタである。
位置レジスタ03は以前読み出しなブタの格納番地を保
持しているレジスタである。位置レジスタ03へのアド
レスレジスタ02からの書き込みは、カウンタ01の値
に基づき制御装置によって指示される。比較器04はア
ドレスレジスタ02の合愛と位置レジスタ04の値を比
較する比較器であり、その結果が一致ならば無限構造が
検出されなことを示す。
スタ・シフポインタ08は、第5図に示したような構造
データの処理を行う場合に、セル2の読み出しによって
、セルフ、8,9,10.11の読み出しに取り掛る際
に、セルフ、8.9,10゜11の処理が終了した後に
、セル3からの処理を続けるためにセル3の格納番地を
記憶しておく番地を示すレジスタである。
以下、第2図に示した構造データを例にとり、無限構造
の検出を行う過程を詳細に述べる。ここでは、位置レジ
スタ03にアドレスレジスタ02の値を格納した後、デ
ータの読み出し回数が2の累乗に達するごとに位置レジ
スタ03に、アドレスレジスタ02の値をコピーするも
のとする。すなわち、データの読み出し回数が1回目な
らばアドレスレジスタ02の値が位置レジスタ03にコ
ピーされる0次にデータが、さらに2回(計3回)読み
出されるとその時のアドレスレジスタ02の値が位置レ
ジスタ03にコピーされる。そのご更に、4回(計7回
)、8回(計15回)とデータが読み出されるごとに、
アドレスレジスタ02の値が位置レジスタ03にコピー
されるものとする。
まずセル1の格納番地がアドレスレジスタ02に与えら
れ、セル1の読み出しが行われ、その結果セル1の値が
データレジスタ06,07に格納される。この読み出し
は、1回目の読み出しであるため、アドレスレジスタ0
2の格納されているセル1の格納番地が位置レジスタ0
3にコピーされカウンタ01の値はOにリセットされる
。データレジスタ07の値がポインタで、かつデータレ
ジスタ06の値がデータであるため(ポインタであるか
どうかの判定はデータの値によって制御装置10によっ
て行われる)、次いでセル2が読み出される。
セル2の値がデータレジスタ06,07に読み出される
。この値は両方ともポインタであるため、スタックポイ
ンタ08の値がアドレスレジスタ02にコピーされ、デ
ータレジスタ07の値はスタックポインタ08によって
示される格納番地に書き込まれる。
次いで、データレジスタ06の値がアドレスレジスタ0
2のコピーされ、セル9の値が、データレジスタ06,
07に読み出される。この時、読みだし回数が2回(計
3回)になっているためアドレスレジスタ02の値(セ
ル9の格納番地)が位置レジスタ03にコピーされる。
次いで、セル10がデータレジスタ06,07に読み出
されるが、この値は両者ともポインタではないため、ス
タックポインタ08の値がアドレスレジスタ02に転送
され、先はど格納したセル3の格納番地が読み出され、
アドレスレジスタ02に格納され、セル3がデータレジ
スタ06゜07に読み出される。
この時、スタックポインタ08を用いてセルの読み出し
番地が変更されているため、この時のアドレスレジスタ
02の値(セル3の格納番地)が位置レジスタ03に格
納され、さらにカウンタ01の値がOにリセットされる
。従って、この後データが4回読み出された時に位置レ
ジスタ03にアドレスレジスタ02の値がコピーされる
ことになる。
セル3が読み出された結果、上記と同様にして、セル4
の格納番地が記憶装置05に格納され、また、セル9.
10が再び読み出される。その結果上記の場合と同様に
して、セル4が読み出され、セル4の格納番地が位置レ
ジスタ03に格納され、カウンタ01の値がリセットさ
れる。
次にセル4が読み出されるがこの場合には、データレジ
スタ06に読み出された値がポインタであるため、その
値がアドレスレジスタ02に転送され、セル5が読み出
される。以後、セル6゜7.8.と読み出され、セル8
がセル4から数えて4番目のデータであるため、セル8
の格納番地が位置レジスタ03に記憶される。
以降、セル4,5.6.7と読み出され、セル8を読み
出そうとしたところで、アドレスレジスタ02の値と位
置レジスタ08の値が位置し、この構造が無限構造であ
ることが検出される。
以上、本発明の一実施例について説明したが、本発明は
この実施例のみに限定されるものではなく、カウンタの
制御方式、位置レジスタの構成方式などを複雑にした場
合、記憶装置の構成方式を変えた場合、キャッシュメモ
リ装置等を用いた場合でも基本的実施方法は変わらない
。位置レジスタを2個設け、処理効率化を計った場合の
位置レジスタの構成例を第3図に示す。
この例では、まず、位置レジスタ03,03’に同様の
値が格納されるが、それ以降は、位置レジスタ03の値
が更新されるごとに、その値が位置レジスタ03′に格
納される。その結果、第1図に示した例では、例えば、
セル8の格納番地を位置レジスタ03に格納する際に、
位置レジスタ03の値が位置レジスタ03′に転送され
ているため、次にセル4の読み出しと行おうとした場合
に、アドレスレジスタ04と位置レジスタ03’の値が
一致するため、より速く無限構造であることを検出でき
る。
〔発明の効果〕
本発明によれば、小量の装置の追加により、無限構造の
検出が可能となり、関数型言語、論理型言語の処理にお
いて、高速に無限構造を含む構造の処理を行うことが可
能となる。
【図面の簡単な説明】
第1図は本発明の一実施例、第2図は本実施例の動作を
説明するための構造データ例、第3図は他の実施例、第
4図と第5図は構造データ例をそれぞれ示す図である。 01・・・カウンタ、02・・・アドレスレジスタ、0
3.03’・・・位置レジスタ、04,04’・・・比
較器、05・・・記憶装置、06,07・・・データレ
ジスタ、08・・・スタックポインタ、09・・・セレ
クタ、10・・・制御装置。 /16 :セル

Claims (1)

    【特許請求の範囲】
  1. 無限構造を持つ構造データの無限構造検出装置において
    、構造データを格納する記憶装置と、前記記憶装置に読
    み出し番地を与えるアドレスレジスタと、前記記憶装置
    からデータを読み出した回数を数えるカウンタと、前記
    カウンタの値により、前記記憶装置より読み出したデー
    タの格納番地を記憶する位置レジスタと、前記アドレス
    レジスタと前記位置レジスタの値を比較する比較器とを
    有することを特徴とする無限構造検出装置。
JP26861888A 1988-10-24 1988-10-24 無限構造検出装置 Pending JPH02114331A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26861888A JPH02114331A (ja) 1988-10-24 1988-10-24 無限構造検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26861888A JPH02114331A (ja) 1988-10-24 1988-10-24 無限構造検出装置

Publications (1)

Publication Number Publication Date
JPH02114331A true JPH02114331A (ja) 1990-04-26

Family

ID=17461048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26861888A Pending JPH02114331A (ja) 1988-10-24 1988-10-24 無限構造検出装置

Country Status (1)

Country Link
JP (1) JPH02114331A (ja)

Similar Documents

Publication Publication Date Title
US4670836A (en) Device for detecting an overlap of operands to be accessed
JP3222083B2 (ja) 共有メモリ制御装置
JPH02114331A (ja) 無限構造検出装置
GB2037466A (en) Computer with cache memory
JPS6175446A (ja) アドレス比較方式
JP2984507B2 (ja) ファイル複写方式
JPH0447350A (ja) 主記憶読み出し応答制御方式
JPH05134909A (ja) 空きスペース検索方法
JPH07219845A (ja) キャッシュメモリ制御方式
JPS6244839A (ja) 命令取出装置
JPS63187349A (ja) 記憶装置
JPS6146562A (ja) 配列要素の演算処理方式
JPH0573311A (ja) 処理装置における命令バツフアの命令書換方式
JPH0465712A (ja) 情報処理装置
JPS61194566A (ja) ベクトルデ−タ参照制御方式
JPS61148543A (ja) メモリアクセスリクエスト処理方式
JPH0378833A (ja) リスト処理言語を使用するデ―タ処理装置
JPS63208927A (ja) メモリ制御装置
JPS58151671A (ja) パタ−ン作成装置
JPH0281187A (ja) データ収集装置
JPS6242237A (ja) 命令バツフアへのロ−ド方式
JPS6224341A (ja) アドレス変換方式
JPS63318653A (ja) 中間バッファにおけるム−ブイン制御方式
JPH02257349A (ja) ネットワークアドレス設定方式
JPH01228022A (ja) 二次元データ格納方式