JPH0216644A - マクロプロセッサにおける無限ループ防止方式 - Google Patents
マクロプロセッサにおける無限ループ防止方式Info
- Publication number
- JPH0216644A JPH0216644A JP63165909A JP16590988A JPH0216644A JP H0216644 A JPH0216644 A JP H0216644A JP 63165909 A JP63165909 A JP 63165909A JP 16590988 A JP16590988 A JP 16590988A JP H0216644 A JPH0216644 A JP H0216644A
- Authority
- JP
- Japan
- Prior art keywords
- label
- macro
- text
- field
- array
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(産業上の利用分野〕
本発明はマクロプロセッサにおける無限ループ防止方式
に関する。
に関する。
マクロソースを解析してマクロテキスト列を生成し、こ
の生成したマクロテキスト列を解釈実行する従来のマク
ロプロセッサには、無限ループの防止機構は組み込まれ
ていなかった。
の生成したマクロテキスト列を解釈実行する従来のマク
ロプロセッサには、無限ループの防止機構は組み込まれ
ていなかった。
上述したように、従来のマクロプロセッサには無限ルー
プの防止機構が組み込まれていない為、利用者が誤って
無限ループを含むマクロソースを作成し、これをマクロ
プロセッサに実行させた場合、オペレーティング・シス
テムが許す時間までマクロプロセッサが動作を続けてし
まい、CPU時間の浪費を招いて無駄なコストがかかる
という欠点があった。
プの防止機構が組み込まれていない為、利用者が誤って
無限ループを含むマクロソースを作成し、これをマクロ
プロセッサに実行させた場合、オペレーティング・シス
テムが許す時間までマクロプロセッサが動作を続けてし
まい、CPU時間の浪費を招いて無駄なコストがかかる
という欠点があった。
そこで本発明の目的は、マクロプロセッサが無限ループ
に陥ることを防止するマクロプロセッサにおける無限ル
ープ防止方式を提供することにある。
に陥ることを防止するマクロプロセッサにおける無限ル
ープ防止方式を提供することにある。
〔課題を解決するための手段〕
本発明のマクロプロセッサにおける無限ループ防止方式
は、上記の目的を達成するために、マクロソースを解析
してマクロテキスト列を生成し、この生成したマクロテ
キスト列を解釈実行するマクロプロセッサにおいて、ラ
ベル名フィールドおよびラベルパスカウントフィールド
で構成されるアレイフィールドを複数個有するラベルパ
スカウントアレイと、ラベルパスリミット値を保持する
ラベルパスリミットフィールドと、前記マクロソースを
解析してマクロテキスト列を生成するマクロソース解析
部に設けられ、前記マクロソース内に出現したラベルの
ラベル名を前記ラベルパスカウントアレイのアレイフィ
ールドにおけるラベル名フィールドに設定すると共に、
この設定処理したアレイフィールドを指示するインデッ
クスを含むラベルパステキストを前記マクロテキスト列
の該当箇所に生成するラベル処理手段と、前記マクロテ
キスト列を解釈するテキスト解釈部に設けられ、前記ラ
ベル処理手段によって前記マクロテキスト列に含められ
たラベルパステキストを解釈し、このラベルパステキス
トに含まれる前記インデックスが指示するアレイフィー
ルドにおけるラベルパスカウントフィールドの値の更新
、その値と前記ラベルパスリミットフィールドに保持さ
れたラベルパスリミット値との比較により動作を続ける
か或いは前記比較を行ったラベルパスカウントフィール
ドと対を為すラベル名フィールドに設定されたラベル名
を出力して動作を中断するがを決定するラベルパステキ
スト解釈手段とで構成されている。
は、上記の目的を達成するために、マクロソースを解析
してマクロテキスト列を生成し、この生成したマクロテ
キスト列を解釈実行するマクロプロセッサにおいて、ラ
ベル名フィールドおよびラベルパスカウントフィールド
で構成されるアレイフィールドを複数個有するラベルパ
スカウントアレイと、ラベルパスリミット値を保持する
ラベルパスリミットフィールドと、前記マクロソースを
解析してマクロテキスト列を生成するマクロソース解析
部に設けられ、前記マクロソース内に出現したラベルの
ラベル名を前記ラベルパスカウントアレイのアレイフィ
ールドにおけるラベル名フィールドに設定すると共に、
この設定処理したアレイフィールドを指示するインデッ
クスを含むラベルパステキストを前記マクロテキスト列
の該当箇所に生成するラベル処理手段と、前記マクロテ
キスト列を解釈するテキスト解釈部に設けられ、前記ラ
ベル処理手段によって前記マクロテキスト列に含められ
たラベルパステキストを解釈し、このラベルパステキス
トに含まれる前記インデックスが指示するアレイフィー
ルドにおけるラベルパスカウントフィールドの値の更新
、その値と前記ラベルパスリミットフィールドに保持さ
れたラベルパスリミット値との比較により動作を続ける
か或いは前記比較を行ったラベルパスカウントフィール
ドと対を為すラベル名フィールドに設定されたラベル名
を出力して動作を中断するがを決定するラベルパステキ
スト解釈手段とで構成されている。
本発明のマクロプロセッサにおける無限ループ防止方式
においては、ラベルパスリミットフィールドが、外部よ
り指定されたラベルパスリミット値を保持し、利用者の
マクロソースを解析してマクロテキスト列を生成するマ
クロソース解析部に設けられたラベル処理手段が、マク
ロソース内に出現したラベルのラベル名をラベルパスカ
ウントアレイの一つのアレイフィールドにおけるラベル
名フィールドに設定すると共に、この設定処理したアレ
イフィールドを指示するインデックスを含むラベルパス
テキストをマクロテキスト列の該当箇所に生成する。そ
の後のマクロテキスト列の解釈、実行時において、マク
ロテキスト列を解釈するテキスト解釈部に設けられたラ
ベルパステキスト解釈手段が、ラベル処理手段によって
マクロテキスト列に含められたラベルパステキストを解
釈し、このラベルパステキストに含まれるインデックス
が指示するアレイフィールドにおけるラベルパスカウン
トフィールドの値の更新、その値と前記ラベルパスリミ
ットフィールドに保持されたラベこレバスリミツト値と
の比較により動作を続けるか或いは前記比較を行ったラ
ベルパスカウントフィールドと対を為すラベル名フィー
ルドに設定されたラベル名を出力して動作を中断するが
を決定する。
においては、ラベルパスリミットフィールドが、外部よ
り指定されたラベルパスリミット値を保持し、利用者の
マクロソースを解析してマクロテキスト列を生成するマ
クロソース解析部に設けられたラベル処理手段が、マク
ロソース内に出現したラベルのラベル名をラベルパスカ
ウントアレイの一つのアレイフィールドにおけるラベル
名フィールドに設定すると共に、この設定処理したアレ
イフィールドを指示するインデックスを含むラベルパス
テキストをマクロテキスト列の該当箇所に生成する。そ
の後のマクロテキスト列の解釈、実行時において、マク
ロテキスト列を解釈するテキスト解釈部に設けられたラ
ベルパステキスト解釈手段が、ラベル処理手段によって
マクロテキスト列に含められたラベルパステキストを解
釈し、このラベルパステキストに含まれるインデックス
が指示するアレイフィールドにおけるラベルパスカウン
トフィールドの値の更新、その値と前記ラベルパスリミ
ットフィールドに保持されたラベこレバスリミツト値と
の比較により動作を続けるか或いは前記比較を行ったラ
ベルパスカウントフィールドと対を為すラベル名フィー
ルドに設定されたラベル名を出力して動作を中断するが
を決定する。
〔実施例〕
次に、本発明の実施例について図面を参照して詳細に説
明する。
明する。
第1図は本発明の一実施例の構成図である。同図におい
て、マクロプロセッサ5は、マクロプロセッサ制御部6
.マクロソース解析部?、テキスト解釈部16.ラベル
パスカウントアレイ12゜ラベルパスカウントアレイ有
効エントリフィールド11.マクロテキスト列22を含
む、このマクロプロセッサ5には外部よりマクロソース
1.マクロ処理種別3.ラベルバスリミット値4が与え
られる。また、マクロプロセッサ5は無限ループに陥る
と外部にラベル25を出力して動作を停止する。
て、マクロプロセッサ5は、マクロプロセッサ制御部6
.マクロソース解析部?、テキスト解釈部16.ラベル
パスカウントアレイ12゜ラベルパスカウントアレイ有
効エントリフィールド11.マクロテキスト列22を含
む、このマクロプロセッサ5には外部よりマクロソース
1.マクロ処理種別3.ラベルバスリミット値4が与え
られる。また、マクロプロセッサ5は無限ループに陥る
と外部にラベル25を出力して動作を停止する。
マクロプロセッサ5内のマクロプロセッサ制御部6は、
マクロプロセッサ5の起動時にマクロ処理種別3の値を
判定し、その値が「0」であればマクロソース解析部7
を起動し、「1」であればテキスト解釈部16を起動す
るものである。
マクロプロセッサ5の起動時にマクロ処理種別3の値を
判定し、その値が「0」であればマクロソース解析部7
を起動し、「1」であればテキスト解釈部16を起動す
るものである。
マクロプロセッサ制御部6により起動されるマクロソー
ス解析部7は、起動時に各部を制御すると共にマクロソ
ースlの解析を行いそれに応じたマクロテキストをマク
ロテキスト列22に出力するマクロソース解析制御部8
.ラベルパスカウントアレイ初期化テキスト23を生成
してマクロテキスト列22に出力するラベルパスカウン
トアレイ初期化テキスト出力手段24.ラベルパスカウ
ントアレイ有効エンド4ノフイールド11の初期化を行
うラベルパスカウントアレイ有効エントリフィールド初
期化手段9.マクロソース1中に出現するラベル2に関
する処理を行うラベル処理手段10から構成される。
ス解析部7は、起動時に各部を制御すると共にマクロソ
ースlの解析を行いそれに応じたマクロテキストをマク
ロテキスト列22に出力するマクロソース解析制御部8
.ラベルパスカウントアレイ初期化テキスト23を生成
してマクロテキスト列22に出力するラベルパスカウン
トアレイ初期化テキスト出力手段24.ラベルパスカウ
ントアレイ有効エンド4ノフイールド11の初期化を行
うラベルパスカウントアレイ有効エントリフィールド初
期化手段9.マクロソース1中に出現するラベル2に関
する処理を行うラベル処理手段10から構成される。
他方、テキスト解釈部16は、起動時に各部を制御する
と共にマクロテキスト列22中の各テキストの解釈、実
行を行うテキスト解釈制御部17゜マクロテキスト列2
2に格納されたうベルパスカウントアレイ初期化テキス
ト23およびラベルパスカウントアレイ有効エントリフ
ィールド11の内容に従ってラベルパスカウントアレイ
12を初期化するラベルパスカウントアレイ初期化テキ
スト解釈手段18.ラベルパスリミットフィールド20
、外部から入力されるラベルパスリミット値4をラベル
パスリミットフィールド20にセットするラベルパスリ
ミットフィールドセット手段19、マクロテキスト列2
2に含まれるラベルパステキスト14を解釈して、ラベ
ル通過回数の測定。
と共にマクロテキスト列22中の各テキストの解釈、実
行を行うテキスト解釈制御部17゜マクロテキスト列2
2に格納されたうベルパスカウントアレイ初期化テキス
ト23およびラベルパスカウントアレイ有効エントリフ
ィールド11の内容に従ってラベルパスカウントアレイ
12を初期化するラベルパスカウントアレイ初期化テキ
スト解釈手段18.ラベルパスリミットフィールド20
、外部から入力されるラベルパスリミット値4をラベル
パスリミットフィールド20にセットするラベルパスリ
ミットフィールドセット手段19、マクロテキスト列2
2に含まれるラベルパステキスト14を解釈して、ラベ
ル通過回数の測定。
ラベルバスリミット値4との比較、実行の中断。
ラベル25の出力等を行うラベルパステキスト解釈手段
21から構成される。
21から構成される。
マクロテキスト列22は、マクロソースlに基づいて生
成された通常のマクロテキストの他に、マクロソース解
析部7で生成されたうベルパスカウントアレイ初期化テ
キスト23.ラベルパステキスト14が含まれる。そし
て、このラベルパステキスト14にはラベルパスカウン
トアレイインデックスフィールド15が含まれる。
成された通常のマクロテキストの他に、マクロソース解
析部7で生成されたうベルパスカウントアレイ初期化テ
キスト23.ラベルパステキスト14が含まれる。そし
て、このラベルパステキスト14にはラベルパスカウン
トアレイインデックスフィールド15が含まれる。
ラベルパスカウントアレイ12は、ラベルパスカウント
フィールド13とラベル名フィールド26とから成るア
レイフィールド30の並びで構成された配列型のアレイ
であり、その先頭のアレイフィールドから順にrlJ、
r2J、 ・・・、「n」の番号が割り当てられている
。
フィールド13とラベル名フィールド26とから成るア
レイフィールド30の並びで構成された配列型のアレイ
であり、その先頭のアレイフィールドから順にrlJ、
r2J、 ・・・、「n」の番号が割り当てられている
。
なお、第1図において細い矢印はw制御の流れを、太い
矢印はデータの流れをそれぞれ示す。
矢印はデータの流れをそれぞれ示す。
次に、このように構成された本実施例の動作について説
明する。
明する。
利用者により、値がrOJのマクロ処理種別3が与えら
れてマクロプロセッサ5が起動されると、マクロプロセ
ッサ制御部6は、マクロソース解析部7のマクロソース
解析制御部8を起動する。
れてマクロプロセッサ5が起動されると、マクロプロセ
ッサ制御部6は、マクロソース解析部7のマクロソース
解析制御部8を起動する。
マクロソース解析制御部8は起動されると、ラベルパス
カウントアレイ有効エントリフィールド初期化手段99
次にラベルパスカウントアレイ初期化テキスト出力手段
24を起動した後、マクロソース1の解析を始め、ラベ
ル2を検出すると、このラベル2を渡してラベル処理手
段10を起動する。
カウントアレイ有効エントリフィールド初期化手段99
次にラベルパスカウントアレイ初期化テキスト出力手段
24を起動した後、マクロソース1の解析を始め、ラベ
ル2を検出すると、このラベル2を渡してラベル処理手
段10を起動する。
ラベルパスカウントアレイ有効エントリフィールド初期
化手段9は、ラベルパスカウントアレイ有効エントリフ
ィールド11にrOJをセントすることによりその初期
化を行い、ラベルパスカウントアレイ初期化テキスト出
力手段24は、ラベルパスカウントアレイ初期化テキス
ト23をマクロテキスト列22の先−頭部分に出力する
。
化手段9は、ラベルパスカウントアレイ有効エントリフ
ィールド11にrOJをセントすることによりその初期
化を行い、ラベルパスカウントアレイ初期化テキスト出
力手段24は、ラベルパスカウントアレイ初期化テキス
ト23をマクロテキスト列22の先−頭部分に出力する
。
また、ラベル2が検出されることにより起動されたラベ
ル処理手段10は、次の処理を行う。
ル処理手段10は、次の処理を行う。
■ラベルパスカウントアレイ有効エントリフィールド1
1の値を1カウントアツプする。
1の値を1カウントアツプする。
■ラベルパスカウントアレイ12の複数のアレイフィー
ルド30のうち、上記カウントアツプしたラベルパスカ
ウントアレイ有効エントリフィールド11の値rNと等
しい番号のアレイフィールド30におけるラベル名フィ
ールド26に、今回検出されたラベル2のラベル名を設
定する。
ルド30のうち、上記カウントアツプしたラベルパスカ
ウントアレイ有効エントリフィールド11の値rNと等
しい番号のアレイフィールド30におけるラベル名フィ
ールド26に、今回検出されたラベル2のラベル名を設
定する。
■上記のラベルパスカウントアレイ有効エントリフィー
ルド11の値「i」をラベルパスカウントアレイインデ
ックスフィールド15に持つラベルパステキスト14を
生成し、これをマクロテキスト列2.2内における当8
亥ラベルに対応するソース文に基づいて生成したマクロ
テキストの直前または直後に出力する。
ルド11の値「i」をラベルパスカウントアレイインデ
ックスフィールド15に持つラベルパステキスト14を
生成し、これをマクロテキスト列2.2内における当8
亥ラベルに対応するソース文に基づいて生成したマクロ
テキストの直前または直後に出力する。
以上の■〜■の処理は、マクロソース1にラベルが出現
する毎に行われる。従って、マクロソース1にm個のラ
ベルが出現した場合、ラベルパスカウントアレイ有効エ
ントリフィールド11の値はrmJになり、ラベルパス
カウントアレイ12の番号r I Jから番号rmJま
でのアレイフィールド30のラベル名フィールド26に
各ラベル名が登録され、且つ、マクロテキスト列22の
各々該当する箇所にラベルバステキスト14が組み込ま
れることになる。
する毎に行われる。従って、マクロソース1にm個のラ
ベルが出現した場合、ラベルパスカウントアレイ有効エ
ントリフィールド11の値はrmJになり、ラベルパス
カウントアレイ12の番号r I Jから番号rmJま
でのアレイフィールド30のラベル名フィールド26に
各ラベル名が登録され、且つ、マクロテキスト列22の
各々該当する箇所にラベルバステキスト14が組み込ま
れることになる。
さて、マクロテキスト列22に必要なマクロテキストが
格納された後、成る値rLTMITJを持つラベルバス
リミット値4および「1」の値を持つマクロ処理種別3
を与えてマクロプロセッサ5を起動すると、マクロプロ
セッサ制御部6によりテキスト解釈部16のテキスト解
釈制御部17が起動される。
格納された後、成る値rLTMITJを持つラベルバス
リミット値4および「1」の値を持つマクロ処理種別3
を与えてマクロプロセッサ5を起動すると、マクロプロ
セッサ制御部6によりテキスト解釈部16のテキスト解
釈制御部17が起動される。
テキスト解釈制御部17は起動されると、ラベルパスリ
ミットフィールドセット手段19を起動した後、マクロ
テキスト列22内のテキストの解釈を始める。そして、
テキストの解釈においてラベルパスカウントアレイ初期
化テキスト23を検出すると、ラベルパスカウントプレ
イ初期化テキスト解釈手段18を起動し、ラベルバステ
キスト14を検出すると、ラベルパステキスト解釈手段
21を起動する。
ミットフィールドセット手段19を起動した後、マクロ
テキスト列22内のテキストの解釈を始める。そして、
テキストの解釈においてラベルパスカウントアレイ初期
化テキスト23を検出すると、ラベルパスカウントプレ
イ初期化テキスト解釈手段18を起動し、ラベルバステ
キスト14を検出すると、ラベルパステキスト解釈手段
21を起動する。
ラベルパスリミットフィールドセント手段19は起動さ
れると、外部のラベルパスリミット値4をラベルパスリ
ミットフィールド20にセットする。
れると、外部のラベルパスリミット値4をラベルパスリ
ミットフィールド20にセットする。
又、ラベルパスカウントアレイ初期化テキスト解釈手段
18は起動されると、ラベルパスカウントアレイ有効エ
ントリフィールド11の値が「0」か否かを判別し、r
OJであれば処理を終了するが、「0」以外の値rmJ
であれば、ラベルパスカウントアレイ12の第1番目か
ら第m番目までのアレイフィールド30に含まれるラベ
ルパスカウントフィールド13の値をそれぞれ「0」に
初期化する。
18は起動されると、ラベルパスカウントアレイ有効エ
ントリフィールド11の値が「0」か否かを判別し、r
OJであれば処理を終了するが、「0」以外の値rmJ
であれば、ラベルパスカウントアレイ12の第1番目か
ら第m番目までのアレイフィールド30に含まれるラベ
ルパスカウントフィールド13の値をそれぞれ「0」に
初期化する。
この後、テキスト解釈制御部17でマクロテキスト列2
2中のテキストの解釈が進められ、前述したようにラベ
ルバステキスト14が検出されてラベルパステキスト解
釈手段21が起動されると、ラベルパステキスト解釈手
段21は次のような処理を行う。ここで、今回検出され
たラベルバステキスト14のラベルパスカウントアレイ
インデックスフィールド15に含まれるインデックスの
値が「j」、この値「j」が指し示すラベルパスカウン
トアレイ12のラベルパスカウントフィールド13に格
納されている現カウント値がrcouNTjJとする。
2中のテキストの解釈が進められ、前述したようにラベ
ルバステキスト14が検出されてラベルパステキスト解
釈手段21が起動されると、ラベルパステキスト解釈手
段21は次のような処理を行う。ここで、今回検出され
たラベルバステキスト14のラベルパスカウントアレイ
インデックスフィールド15に含まれるインデックスの
値が「j」、この値「j」が指し示すラベルパスカウン
トアレイ12のラベルパスカウントフィールド13に格
納されている現カウント値がrcouNTjJとする。
なお、ラベルパスリミットフィールド20に保持された
ラベルバスリミット値4はrLIMITJである。
ラベルバスリミット値4はrLIMITJである。
■C0UNTjとLIMITを比較し、C0UNTJ<
LIMITが成立するか否かを判定する。
LIMITが成立するか否かを判定する。
■ (1)上記条件が成立すれば、C0UNTjを+1
して処理をテキスト解釈制御部17に戻す。
して処理をテキスト解釈制御部17に戻す。
(2)上記条件が不成立であれば、インデックスの値r
JJが指し示すラベルパスカウントアレイ12のラベル
名フィールド26に設定されているラベル名をラベル2
5として出力し、動作を中止する。
JJが指し示すラベルパスカウントアレイ12のラベル
名フィールド26に設定されているラベル名をラベル2
5として出力し、動作を中止する。
制御を戻されたテキスト解釈制御部17は、マクロテキ
スト列22に含まれる次のテキストの解釈に進むので、
マクロプロセッサ5は動作を続行することになる。しか
し、上記の条件が不成立のときはラベルパステキスト解
釈手段21はラベル25を出力して動作を中止するので
、マクロプロセッサ5も動作を停止することになる。
スト列22に含まれる次のテキストの解釈に進むので、
マクロプロセッサ5は動作を続行することになる。しか
し、上記の条件が不成立のときはラベルパステキスト解
釈手段21はラベル25を出力して動作を中止するので
、マクロプロセッサ5も動作を停止することになる。
このように、本実施例によれば、マクロテキスト列22
に含まれる成るラベル対応のテキストが、外部から予め
指定されたラベルパスリミット値4に達するまで、繰り
返し解釈実行されると、マクロプロセッサ5は該当する
ラベル名をラベル25として出力して動作を停止する。
に含まれる成るラベル対応のテキストが、外部から予め
指定されたラベルパスリミット値4に達するまで、繰り
返し解釈実行されると、マクロプロセッサ5は該当する
ラベル名をラベル25として出力して動作を停止する。
一般に、マクロソース1を作成した利用者はそのマクロ
ソース1中に含まれる最大ループ回数のおおよその値を
知っているものであるから、それより若干大きい値をラ
ベルパスリミット値4で指定することにより、マクロプ
ロセッサ5が無限ループに陥ったまま動作し続けること
を防止できる。
ソース1中に含まれる最大ループ回数のおおよその値を
知っているものであるから、それより若干大きい値をラ
ベルパスリミット値4で指定することにより、マクロプ
ロセッサ5が無限ループに陥ったまま動作し続けること
を防止できる。
以上説明したように、本発明のマクロプロセッサにおけ
る無限ループ防止方式は、マクロソースからマクロテキ
スト列を生成する際に、マクロソースに含まれるラベル
のラベル名をラベルパスカウントアレイのラベル名フィ
ールドに設定すると共に、マクロテキスト列のそのラベ
ル定義位置に相当する箇所にラベルパステキストを組み
込んでおき、マクロテキスト列の解釈、実行時、ラベル
パステキストが解釈される毎に即ち実行がラベル定義位
置を通過する毎に、そのラベルのラベル名に対応するラ
ベルパスカウントフィールドの値をカウントアツプする
ことでラベル通過回数を計測し、この計測回数が予め利
用者により設定されたラベルパスリミット値以上となっ
たとき、動作を中断するので、利用者が誤って無限ルー
プを含むマクロソースを作成してマクロプロセッサに入
力しても、マクロプロセッサが動作し続けることがなく
なる。従って、CPU時間の浪費による無駄なコストの
消費を無くすことができる。
る無限ループ防止方式は、マクロソースからマクロテキ
スト列を生成する際に、マクロソースに含まれるラベル
のラベル名をラベルパスカウントアレイのラベル名フィ
ールドに設定すると共に、マクロテキスト列のそのラベ
ル定義位置に相当する箇所にラベルパステキストを組み
込んでおき、マクロテキスト列の解釈、実行時、ラベル
パステキストが解釈される毎に即ち実行がラベル定義位
置を通過する毎に、そのラベルのラベル名に対応するラ
ベルパスカウントフィールドの値をカウントアツプする
ことでラベル通過回数を計測し、この計測回数が予め利
用者により設定されたラベルパスリミット値以上となっ
たとき、動作を中断するので、利用者が誤って無限ルー
プを含むマクロソースを作成してマクロプロセッサに入
力しても、マクロプロセッサが動作し続けることがなく
なる。従って、CPU時間の浪費による無駄なコストの
消費を無くすことができる。
また、動作の中断時に、ラベルパスリミット値以上通過
したラベルのラベル名を出力するので、利用者はこのラ
ベル名をもとにマクロソース中に存在する無限ループの
原因を容易に究明することができる。
したラベルのラベル名を出力するので、利用者はこのラ
ベル名をもとにマクロソース中に存在する無限ループの
原因を容易に究明することができる。
第1図は本発明の一実施例の構成図である。
図において、
1・・・マクロソース
2・・・ラベル
3・・・マクロ処理種別
4・・・ラベルパスリミット値
5・・・マクロプロセッサ
6・・・マクロプロセッサ制御部
7・・・マクロソース解析部
10・・・ラベル処理手段
11・・・ラベルパスカウントアレイ有効エントリフィ
ールド 12・・・ラベルパスカウントアレイ 13・・・ラベルパスカウントフィールド14・・・ラ
ベルパステキスト 15・・・ラベルパスカウントアレイインデックスフィ
ールド 16・・・テキスト解釈部 21・・・ラベルパステキスト解釈手段22・・・マク
ロテキスト列 23・・・ラベルパスカウントアレイ初期化テキスト 25・・・ラベル 26・・・ラベル名フィールド 30・・・アレイフィールド
ールド 12・・・ラベルパスカウントアレイ 13・・・ラベルパスカウントフィールド14・・・ラ
ベルパステキスト 15・・・ラベルパスカウントアレイインデックスフィ
ールド 16・・・テキスト解釈部 21・・・ラベルパステキスト解釈手段22・・・マク
ロテキスト列 23・・・ラベルパスカウントアレイ初期化テキスト 25・・・ラベル 26・・・ラベル名フィールド 30・・・アレイフィールド
Claims (1)
- 【特許請求の範囲】 マクロソースを解析してマクロテキスト列を生成し、該
生成したマクロテキスト列を解釈実行するマクロプロセ
ッサにおいて、 ラベル名フィールドおよびラベルパスカウントフィール
ドで構成されるアレイフィールドを複数個有するラベル
パスカウントアレイと、 ラベルパスリミット値を保持するラベルパスリミットフ
ィールドと、 前記マクロソースを解析してマクロテキスト列を生成す
るマクロソース解析部に設けられ、前記マクロソース内
に出現したラベルのラベル名を前記ラベルパスカウント
アレイのアレイフィールドにおけるラベル名フィールド
に設定すると共に、該設定処理したアレイフィールドを
指示するインデックスを含むラベルパステキストを前記
マクロテキスト列の該当箇所に生成するラベル処理手段
と、 前記マクロテキスト列を解釈するテキスト解釈部に設け
られ、前記ラベル処理手段によって前記マクロテキスト
列に含められたラベルパステキストを解釈し、該ラベル
パステキストに含まれる前記インデックスが指示するア
レイフィールドにおけるラベルパスカウントフィールド
の値の更新、該値と前記ラベルパスリミットフィールド
に保持されたラベルパスリミット値との比較により動作
を続けるか或いは前記比較を行ったラベルパスカウント
フィールドと対を為すラベル名フィールドに設定された
ラベル名を出力して動作を中断するかを決定するラベル
パステキスト解釈手段とを含むことを特徴とするマクロ
プロセッサにおける無限ループ防止方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63165909A JPH0216644A (ja) | 1988-07-05 | 1988-07-05 | マクロプロセッサにおける無限ループ防止方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63165909A JPH0216644A (ja) | 1988-07-05 | 1988-07-05 | マクロプロセッサにおける無限ループ防止方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0216644A true JPH0216644A (ja) | 1990-01-19 |
Family
ID=15821312
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63165909A Pending JPH0216644A (ja) | 1988-07-05 | 1988-07-05 | マクロプロセッサにおける無限ループ防止方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0216644A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5084872A (en) * | 1989-06-19 | 1992-01-28 | Alcatel Business Systems | Interface for transmit and receive mode access to the synchronous transmission medium of a distributed switching network |
| JPH0485853U (ja) * | 1990-11-27 | 1992-07-27 |
-
1988
- 1988-07-05 JP JP63165909A patent/JPH0216644A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5084872A (en) * | 1989-06-19 | 1992-01-28 | Alcatel Business Systems | Interface for transmit and receive mode access to the synchronous transmission medium of a distributed switching network |
| JPH0485853U (ja) * | 1990-11-27 | 1992-07-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8056078B2 (en) | Cooperatively multitasking in an interrupt free computing environment | |
| US4903264A (en) | Method and apparatus for handling out of order exceptions in a pipelined data unit | |
| ATE182014T1 (de) | Programmierbarer rechner mit automatischer übersetzung zwischen quell - und zielkode mit versionüberwachung | |
| KR910017304A (ko) | 데이타 처리방법 및 그 시스템 | |
| KR930016896A (ko) | 병렬연산기능을 가지는 계산기 | |
| KR960038583A (ko) | 출력제어장치 | |
| JP2806524B2 (ja) | ベクトル演算命令発行制御方法 | |
| JPH0216644A (ja) | マクロプロセッサにおける無限ループ防止方式 | |
| EP3329364B1 (en) | Data processing | |
| US8214574B2 (en) | Event handling for architectural events at high privilege levels | |
| CN108459963A (zh) | 一种基于中断控制流图的中断验证方法 | |
| JPS56153457A (en) | Measuring device for computer load | |
| CN108469987A (zh) | 一种基于中断控制流图的中断验证系统 | |
| JPH11272477A (ja) | デ―タ・プロセッサ及びその動作方法 | |
| JPH025136A (ja) | 言語処理プログラムのエラー処理方式 | |
| GB2336919A (en) | Pre-emptive threading in a virtual machine | |
| EP0206346A1 (en) | Operation code selected overflow interrupts | |
| JPS60198640A (ja) | パイプライン型情報処理装置 | |
| JP2624798B2 (ja) | 処理装置のデバッグ機構 | |
| JPH02176940A (ja) | データ処理装置のコプロセッサレジスタ群ディスパッチ制御方式 | |
| JPS61210439A (ja) | タスクのトレ−ス制御方式 | |
| JPH0667896A (ja) | シングルチップマイクロコンピュータ | |
| Belshe | EVA reference manual | |
| Olsson | Additional transformations for multiple‐level escape statements | |
| JPH02100148A (ja) | 情報処理装置 |