JPH06342384A - 無限ループ検出装置及び、方法 - Google Patents

無限ループ検出装置及び、方法

Info

Publication number
JPH06342384A
JPH06342384A JP5129853A JP12985393A JPH06342384A JP H06342384 A JPH06342384 A JP H06342384A JP 5129853 A JP5129853 A JP 5129853A JP 12985393 A JP12985393 A JP 12985393A JP H06342384 A JPH06342384 A JP H06342384A
Authority
JP
Japan
Prior art keywords
history information
loop
program
candidate
history
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.)
Withdrawn
Application number
JP5129853A
Other languages
English (en)
Inventor
Yoriko Minoda
依子 箕田
Hideho Sawada
秀穂 澤田
Yuka Takizawa
ユカ 滝沢
Fumihiro 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.)
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 JP5129853A priority Critical patent/JPH06342384A/ja
Publication of JPH06342384A publication Critical patent/JPH06342384A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 本発明は、プログラムの動作テストを行う際
の、プログラムの無限ループを検出する装置, 及び方法
に関し、実行時のオーバヘッドを抑える。 【構成】 プログラムの実行に伴って、状態が変化する
データ処理装置で、乱数発生機構が出力した数を、履歴
収集ステップとしてプログラム実行部に与え、履歴収集
ステップを実行したときの履歴情報を履歴情報格納機構
に通知し、通知された履歴情報を所定の部分に追加し、
同じ履歴情報が上記履歴情報格納部に、1つ,又は、複
数個存在する場合は、ループの候補格納部に、既に、上
記履歴情報格納部に記録されている履歴情報と、その履
歴情報の履歴IDが指示している次の履歴情報をループ
候補とし、今通知された履歴情報をループの基準候補
(R) として記録し、以降、プログラム実行部からの履歴
情報が、上記ループ候補,及び、基準(R) と一致しない
場合を削除することを繰り返して、上記基準(R) と一致
するまでのステップを検索する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムの動作テス
トを行う際の、プログラムの無限ループを検出する装
置, 及び方法に関する。
【0002】プログラムは、仕様書等に基づいて、正確
に、実現したつもりでも、動作テストして、初めて発見
される異常 (バグ) というものが存在する。又、設計し
たアルゴリズムそのものに、欠陥が見つかる場合も多
い。
【0003】プログラムの開発においては、上記動作テ
ストの占める期間は大きいので、上記バグの発見と、改
修の期間を短縮することは、開発のコストを抑える上で
重要である。
【0004】そこで、従来から、デバッガと呼ばれるエ
ラーを通知する機構などが、特定の言語のプログラム開
発環境として提供されている。又、メモリ等の計算機資
源の消費状況を調べる手段が提供されている。
【0005】然しながら、上記新規に開発したプログラ
ムに無限ループが存在していると、その無限ループの検
出に時間がかかる問題があり、効果的な無限ループ検出
装置, 及び、方法が必要とされる。
【0006】
【従来の技術】図10は、従来の無限ループ検出方法を
説明する図である。通常、新規に開発したプログラムを
テストしているとき、無限ループに陥った場合は、実行
が終了しないため、これに気付くまでの間に、計算機資
源を無駄に使用してしまう。
【0007】例えば、プログラム開発者は、プログラム
中の無限ループを検出するためには、図示されているよ
うに、プログラム設計データを見て、予め、テストデー
タに関する計算量を計算し、実行時間を予測しておくと
いう方法で対応している。即ち、動作テストの予測実行
時間が過ぎても、終了しないという状態を、例えば、デ
ィスプレイ上において観察するとか, 又は、計算機資源
の消費状況、例えば、主記憶装置の使用量に注意を払い
ながらテストを行っている。
【0008】
【発明が解決しようとする課題】従って、複雑で、大規
模な計算を実行するプログラム, 或いは、並列実行を伴
うプログラムでは、計算量を予測することが難しいた
め、プログラマの勘に頼ることが多くなり、プログラム
の実行が無限ループに陥っていることを検出するのが困
難になるという問題があった。
【0009】上記プログラムの実行が無限ループに陥っ
ているのを検出する為の技術として、本願出願人が先願
していま特開昭62−106552号公報「無限ループ
検出装置」があるが、プログラム・カウンタの値を監視
してループ状態を判定する際、予め、決められた回数
値、例えば、1000回より大きくなった場合に無限ル
ープの検出信号を出力するものであり、前述のように、
複雑で、大規模な計算を実行するプログラム, 或いは、
並列実行を伴うプログラムでは、計算量を予測すること
が難しいため、予め、無限ループを検出するのに必要な
プログラム・カウンタの回数値を決定することが困難で
あり、最近のように、データ処理の多様化,複雑化して
いる現状では、現実的ではないという問題があった。
【0010】本発明は上記従来の欠点に鑑み、収集する
履歴情報を小さくすることにより、ごくわずかのオーバ
ヘッドで、ループの長さを考慮することなく、即ち、前
述のように、予め、決定しておくことなく、無限ループ
を検出することができる無限ループ検出装置,及び方法
を提供することを目的とするものである。
【0011】
【課題を解決するための手段】図1,図2,図3は、本
発明の原理説明図であり、図1,図2は構成例を示し、
図3は、動作フローの例を示している。上記の問題点は
下記の如くに構成された無限ループ検出装置,及び、無
限ループ検出方法によって解決される。
【0012】(1) プログラムのループ検出装置を、プロ
グラムの実行に伴って、状態が変化するデータ処理装置
において、乱数発生機構 1と、上記乱数発生機構 1から
出力される数を、履歴収集ステップとして、実行結果を
履歴情報として出力するプログラム実行機構 3と、上
記プログラム実行機構 3からの実行結果情報を、履歴情
報として格納する履歴情報格納部 20 と, 上記プログ
ラム実行機構 3から得られた、上記履歴情報と一致す
る上記履歴情報格納部 20 の履歴情報と、その履歴情
報の履歴識別子 (履歴ID)が指示する履歴情報をプ
ログラムループの候補とし、今得られた履歴情報
を、プログラムループの基準候補(R) として格納する
ループの候補格納部 22 と、上記上記プログラム実行機
構 3から得られた、上記履歴情報に基づいて、上記履
歴情報格納部 20,又は、上記ループ候補格納部 22 に格
納されている履歴情報を比較する履歴情報検索部 21 と
から構成される履歴情報格納機構 2とを備えて、上記プ
ログラム実行機構 3からの、所定の順序で得られる履歴
情報に基づいて、上記ループ候補格納部 22 に記録さ
れている上記ループ候補の次のステップが指示してい
る履歴情報を検索, 比較して、一致しないループの候補
を削除し、上記ループの候補の総てが消去されたと
き、上記プログラムループの基準候補(R) も消去する
ことを繰り返し、ある時点で生起した上記プログラムル
ープの基準候補(R) と一致するまでのプログラムステ
ップを抽出して無限ループを検出するように構成する。
【0013】(2) プログラムの実行に伴って、状態が変
化するデータ処理装置において、乱数発生機構 1が出力
した数を、履歴収集ステップとしてプログラム実行機構
3に与え、プログラム実行部 3は、上記履歴収集ステッ
プを実行したときの履歴情報を履歴情報格納機構 2に
通知し、履歴情報格納機構 2は、履歴情報格納部 20
に、上記通知された履歴情報に、所定の履歴識別子 2
0aと、上記乱数発生機構 1が出力する数値を、次のステ
ップ迄の距離 20bを付加して格納し、ループの候補格納
部 22 内での、ループの候補の有無をを検索して、ル
ープの候補がなければ、上記通知された履歴情報と
同一の履歴情報が、履歴情報格納部 20 に蓄積されてい
るか否かを検索し、蓄積されていなければ、上記乱数発
生機構 1に履歴収集ステップを要求して、プログラム実
行部 1に通知し、上記通知された履歴情報と同一の履
歴情報が、一つ, 又は、複数個が、上記履歴情報格納部
20 に存在していると、上記ループの候補格納部 22
に、上記蓄積されている履歴情報と、その履歴情報の上
記履歴識別子が指示している履歴情報とを、ループの候
補とし、今通知された履歴情報を、プログラムルー
プの基準候補(R) として、所定の領域に記録し、且
つ、上記履歴情報の次のステップ迄の距離 20bの最小値
を、上記プログラム実行部 1に通知し、上記ループの候
補格納部 22 での、ループの候補の有無を検索して、ル
ープの候補が有ると、上記通知されてきた履歴情報
が、各ループの候補の次のステップ迄の距離が指示し
てきるループの候補の履歴情報aと一致しているかど
うかを検索し、一致していれば、その履歴情報aで、
上記ループ候補格納部 22 の内容を更新して、その履歴
情報aの次のステップ迄の距離が指示しているステッ
プ数の最小の数値を、上記プログラム実行部 1に通知
し、一致していなければ、その履歴情報aと、元の履
歴情報とを、上記ループ候補格納部 22 から削除し、
未だ、ループの候補が残っている場合には、その残っ
ているループの候補の次のステップ迄の距離から、上
記削除したループの候補の次のステップ迄の距離を減
算して、次のステップ迄の距離を再計算した数値を、上
記プログラム実行部 1に通知し、ループの候補が残っ
ていない場合には、上記ループの基準候補(R) も削除
して、乱数発生機構 1に履歴収集ステップを要求して、
プログラム実行部 1に通知することを繰り返して、上記
プログラム実行部 1から通知された履歴情報が、上記
プログラムループの基準候補(R) と一致したとき、上
記プログラム実行部 1に通知するステップ数を“1”と
し、上記と同じ処理を繰り返して、再度、上記プログラ
ム実行部 1から通知された履歴情報が、上記プログラ
ムループの基準候補(R) と一致したとき無限ループが
検出された判定するように構成する。
【0014】(3) 上記履歴情報として、プログラムの
制御変数とするように構成する。 (4) 又、他の無限ループ検出装置として、複数のプロセ
スが、資源の共有,又は、所定の通信手段によって、同
期しながら並列に処理を進めることを記述した複数のプ
ログラムの実行に伴って、複数のプロセスの状態が変化
するデータ処理装置において、上記複数のプログラムの
実行を行うプログラム実行機構 30,31, 〜と並列に実行
される各プロセスの状態を収集する実行情報収集手段 4
と、上記1項に記載の乱数発生機構 1と、履歴情報格納
部 2とから構成する。
【0015】(5) 上記4項に記載の無限ループ検出装置
を使用して、上記2項に記載と同様の手順で無限ループ
を検出するように構成する。 (6) 上記4項に記載の無限ループ検出装置,又は、上記
5項に記載の無限ループ検出方法で使用する履歴情報
として、複数個のプログラム実行機構 30,31,〜から通
知される各履歴情報を論理積したものとするように構
成する。
【0016】
【作用】図1,図2に示した原理説明図において、図1
(a) は、プログラム実行機構が1つの場合の無限ループ
検出装置の構成例を示し、図1(b) は履歴情報格納機構
のデータ構造例を示し、図1(c) はループの候補格納機
構のデータ構造例を示し、図2は、プログラム実行機構
が複数個ある場合の無限ループ検出装置の構成例を示し
ている。
【0017】先ず、乱数発生機構 1は、履歴情報格納機
構 2からの要求に応じて、例えば、“2”以上の乱数を
出力し、該出力された乱数を受信した履歴情報格納機構
2は、プログラム実行機構 3に対して、上記受信した乱
数のステップを与え、プログラム実行機構 3は、上記与
えられたステップ数を実行したときの履歴情報を出力
する。
【0018】上記履歴情報格納機構 2は、履歴情報格納
部 20 と、履歴情報検索部 21 と、ループの候補格納部
22 とから構成されている。上記履歴情報格納部 20
は、図1(b) に示したデータ構造を持ち、図1,図2に
示されているプログラム実行機構 3, 又は、30,31,〜か
ら得られる履歴情報に、上記乱数発生機構 1から得ら
れた乱数に基づいた、次の履歴情報を収集するまでの
ステップ数と, 次の履歴情報の識別子 (履歴ID) とを付
加して蓄積する。上記履歴情報の識別子 (履歴ID)
は、例えば、図示されていないインクリメンタで生成し
た整数を用いる。 上記履歴情報の蓄積方法として、
同じキーで取り出すことのできるデータが大きくなり過
ぎないような方法で蓄積できれば、蓄積効率,検索効率
がよくなる。例えば、履歴情報を数値化し、その値を
“13”で割った余りの値をキーとして、そのキー値に
応じて情報を分割して蓄積するようにする。上記キー値
を作成する関数は、ユーザからの要求に応じて定義す
る。
【0019】上記履歴情報検索部 21 は、プログラム実
行部 3から受信した履歴情報が、上記履歴情報格納部
20 等に、既に、格納されているか否かの検索する機能
と、記録されている上記付加情報から、次に格納された
履歴情報を参照する機能を備えている。
【0020】ループの候補格納部 22 は、図1(c) に示
されたデータ構造を持ち、無限ループの候補となる履歴
情報を保持する領域である。前述しているプログラム
実行機構 3は、上記履歴情報格納機構 2から与えられた
履歴収集ステップを実行したとき、実行状態に関する履
歴情報を出力しながら、定義されたプログラムを実行
する。
【0021】上記実行状態を特定できる履歴情報は、
予め、プログラム中に与える。具体的には、ソースプロ
グラムを、所定の高級言語、例えば、C言語で記述する
際に指定しておく。例えば、演算結果を出力するとか、
"for" とか"While" などの命令に現れる制御変数i,j
の状態変化を出力するといった記述で対応できる。
【0022】但し、明示的に現れない言語で記述された
ソースプログラムでは、ユーザによる指定が必要とな
る。例えば、言語処理系のマクロなどを利用することに
よって、必要な部分を指定する。
【0023】図2では、プログラムの実行が、複数のプ
ログラム実行機構 30,31, 〜で行われる場合を示してい
る。この場合の実行情報収集機構 4は、プログラムの実
行を行う全てのプログラム実行機構 30,31, 〜からの履
歴情報を収集する機能を備えており、例えば、その論
理積情報を履歴情報として、履歴情報格納機構 2に通
知することが、図1の場合と異なる部分である。
【0024】次に、図3は、上記履歴情報格納機構 2で
の処理の流れを示したものである。以下、図3によっ
て、履歴情報格納機構 2での処理により、本発明の主眼
となる無限ループの検出動作を説明する。図中、( )
内の数字は、以下で説明する各処理動作の番号に対応す
る。
【0025】(1) 先ず、プログラムの実行に先立って、
乱数発生機構 1が出力した数を、履歴情報収集ステップ
として、プログラム実行機構 (以下、プログラム実行部
ということがある) 3 に与える。
【0026】(2) プログラム実行部 1は、状態変化に関
する計算の実行ステップをカウントしながら、プログラ
ムに従って動作する。このとき、乱数発生機構 (以下、
乱数発生装置ということがある) 1 が出力した数と一致
する履歴情報収集ステップを実行したときには、履歴情
報を履歴情報格納機構 2に与え、実行ステップをクリ
アする。{図3の処理ステップ 100参照} (3) 履歴情報格納機構 2は、プログラム実行部 3から履
歴情報が通知されたとき、以下の動作を行う。
【0027】(31)上記履歴情報格納機構 2内のループの
候補格納部 22 内に、ループの候補がなければ、既に、
同じ履歴情報が履歴情報格納部 20 に蓄積されているか
否かを検索し、予め、決められている方法にしたがっ
て、前述のキー値を計算し、そのキー値の示す部分に、
今通知された履歴情報を追加する。{図1(b),及び、
図3の処理ステップ 101,102参照} ここで、履歴情報格納部 20 に、同じ履歴情報が、既
に、存在しているか否かに応じて、プログラム実行部 1
に与えられる次のステップ数は、(32)〜(34)に示すよう
になる。
【0028】(32)同じ履歴情報が存在しない場合には、
上記乱数発生機構 1から得たステップ数を、プログラム
実行部 3に与える。{図3の処理ステップ 104参照} (33)同じ履歴情報が一つだけ存在する場合には、既に、
記録されている履歴情報に記録されている「次のステッ
プ数」 (又は、履歴ID)の値を、プログラム実行部 3
に与える。
【0029】又、上記ループの候補格納部 22 に、上
記、既に、記録されている履歴情報と、その履歴情報に
記録されている「次のステップ数」での履歴情報を、ル
ープの候補, aとして、図1(c) に示したように格
納すると共に、今、プログラム実行部 3から通知された
履歴情報を、検出しようとしているループの基準候補
(R) として、所定の領域に格納する。{図3の処理ス
テップ 105参照} (34)同じ履歴情報が複数個存在している場合には、その
全てをループの候補, aとして、上記(33)と同様
に、ループの候補格納部 22 に格納する。このとき、既
に、記録されている複数個の履歴情報の「次のステップ
数」の値の内、最小値をプログラム実行部 3に与える。
{図3の処理ステップ 105,106参照} (35) 次に、ループの候補格納部 22 に、ループの候補
が存在するときも、プログラム実行部 3から履歴情報
が通知されてくると、前述の処理ステップ 102での処
理と同様にして、履歴情報格納部 20 に、図1(b) に示
したデータ構造で履歴情報を追加すると共に、上記ルー
プの候補格納部 22 内の、一つ, 又は、複数個のループ
の候補の「次のステップ数」(又は、履歴ID)が指
示している履歴情報と比較する。
【0030】このとき、上記複数個のループの候補の
「次のステップの数」の最小値のものを、採用したステ
ップ数として、図1(c) のループ候補格納部 22 の「次
のステップまでの距離」に設定し、そのループの候補の
履歴IDを、採用したループの候補として「履歴ID」
に設定しておく。{図3の処理ステップ 107,108,109参
照} 上記において、処理ステップ 108で示したように、上記
ループの基準(R) として記録されているループの候補
とも比較されるが、一般には、複数個の処理ステップを
実行した後に、この基準候補(R) と一致して、無限ル
ープとなることになるので、この時点では、該ループの
基準(R) の履歴情報と一致することは少ない。
【0031】(36) 上記比較において、プログラム実行
部 3からの履歴情報と、ループの候補格納部 22 に格
納されているループの候補である履歴情報の「次のス
テップまでの距離」が指示している履歴情報aの値が
一致した場合には、上記ループの候補格納部 22 のルー
プの候補を、上記一致した履歴情報aで更新し、該
ループの候補の履歴情報の「次のステップまでの距
離」に記録されているステップ数の最小値を、プログラ
ム実行部 3に通知する。{図3の処理ステップ 109,10
5,106参照} このように、プログラム実行部 3からの履歴情報を、
ループの候補格納部 22 に格納されている履歴情報の
「次のステップまでの距離」 (又は、履歴ID)が指示
している履歴情報aと比較するのは、上記ループの候
補格納部 22 に格納されている履歴情報については、
図3の処理ステップ 103において、プログラム実行部 3
からの履歴情報と比較済みであることによる。
【0032】(37) 上記の比較において、プログラム実
行部 3からの履歴情報と、ループの候補格納部 22 に
格納されているループの候補である履歴情報の「次の
ステップまでの距離」が指示している履歴情報aの値
が一致しなかった場合には、採用したループの候補、即
ち、上記履歴情報と、該ループの候補の履歴情報の
「次のステップ数」が指示している履歴情報aを削除
する。{図3の処理ステップ 109,110参照} (38) 上記の一致しないループの候補, aを削除し
て、未だ、ループの候補が他に残っている場合には、
上記(34)の処理でプログラム実行部 3に通知した最小の
ステップの値と、採用したループの候補の「次のステ
ップまでの距離」が指示しているステップの数との差分
を計算した値を、プログラム実行部 3に与える。{図3
の処理ステップ 110,106参照} (39) 上記の一致しないループの候補, aを削除し
て、ループの候補がない場合には、それまでにループの
候補格納部 22 に格納されていた、全てのループの候補
はループの対象外になったということで、上記ループの
候補の基準候補(R) も削除した後、乱数発生機構 1か
ら得られたステップ数をプログラム実行部3に与える。
【0033】(310) 上記のようにして、上記プログラ
ム実行部 3から得られた履歴情報が、ループの候補格
納部 22 のループの候補の基準(R) の値と一致したと
き、上記(33)の処理でループの候補格納部 22 に格納さ
れていたループの候補の基準(R) から何ステップかの
実行の後、再度、同じ履歴情報が得られたことになる
ので、最も有力なループの候補が得られたとして、上記
何回かの(35)の処理で採用したステップの数の総和より
小さい値で、再度、上記ループの候補の基準(R)と一
致するまで、1ステップずつ履歴を収集する為に、プロ
グラム実行部 3には、1ステップずつの履歴収集ステッ
プを与える。{図3の処理ステップ 112参照} これは、プログラム実行部 3から得られた履歴情報
が、上記基準(R) の履歴情報と一致したのが、複数回
のループを実行して得られた結果であるかも知れない
(履歴情報を収集するステップの数は乱数によっている
ことによる) ので、1ステップずつで履歴情報の再収集
を行うことで、1回のループで、上記プログラム実行部
3から得られた履歴情報が、上記基準(R) の履歴情
報と一致することが期待できることによる。
【0034】このときの履歴情報の記録を、ループの
候補格納部 22 に追加し、上記(3),(31)〜(309) を繰り
返す。{図3の処理ステップ 101,107,108,112,113参
照} (311) 上記1ステップの間隔で実行した履歴情報
が、再度、上記基準(R) と一致したとき、その1ステ
ップずつのプログラムルートを無限ループとして検出す
る。
【0035】上記の処理で、上記基準(R) と同じ履歴
情報が得られる迄にプログラムの実行が終了した場合
には、そのステップの履歴はループではないと認識し、
無限ループとしない。{図3の処理ステップ 112,114参
照} このようにして、本発明による無限ループの検出方法で
は、乱数発生機構 1から生成される乱数を履歴収集ステ
ップとしてプログラム実行部 3に与えて、該履歴収集ス
テップを実行した時の履歴情報を、履歴情報格納部 2
0 に格納し、次に通知される履歴情報が、既に、上記
履歴情報格納部 20 に格納されている履歴情報と一致し
たとき、その一致した履歴情報と、その履歴情報の次の
ステップまでの距離が指示する履歴情報をループの候補
, aとしてループの候補格納部 22 に格納し、今通
知された履歴情報を、ループの候補の基準(R) と
し、次に通知される履歴情報が、上記ループの候補格
納部 22 に記録されているループの候補の「次のステ
ップ迄の距離」が指示する履歴情報aと一致したと
き、ループの検出に有為な履歴情報として,ループの候
補格納部 22 を、その履歴情報で更新し、一致しなかっ
た場合には、上記ループの候補格納部 22 に記録されて
いるループの候補と, そのループの候補の「次のス
テップ迄の距離」が指示する履歴情報aとを削除し、
ループの候補格納部 22 に、最早、ループの候補,
aがなくなったときは、それまでのループの候補,
aは、ループの対象外として、上記ループの候補の基準
(R)も削除することを繰り返して、プログラム実行部
3から通知された履歴情報が、何ステップかのプログ
ラムステップを実行した後において、上記ループの候補
の基準(R)の履歴情報と一致したとき、その各ステッ
プは無限ループを構成している確率が大きいので、1ス
テップずつの履歴情報収集ステップを与えて、再度、上
記ループの候補の基準(R)の履歴情報と一致したと
き、無限ループを検出した認識するようにしたものであ
る。
【0036】従って、複雑なプログラムの構造に基づい
て、ループとなるプログラムステップの数を予測すると
いった困難な作業をすることなく、又、乱数によって履
歴情報を得るステップ数を得ているので収集する履歴情
報を少なくすることによって、ごく僅かのオーバヘッ
ドでループの長さを考慮することなく、大きい無限ルー
プも、小さい無限ループも検出することができる効果が
ある。
【0037】
【実施例】以下本発明の実施例を図面によって詳述す
る。前述の図1〜図3は、本発明の原理説明図であり、
図4〜図9は、本発明の一実施例を示した図であり、図
4は履歴情報格納部の格納例を示し、図5は履歴情報格
納部とループの候補格納部での格納例を示し、図6は履
歴情報として、制御変数とした場合の格納例を示
し、図7〜図9は、並列処理時の無限ループの例を示し
ている。
【0038】本発明においては、手段の欄で説明したよ
うに、プログラムの実行に伴って、状態が変化するデー
タ処理装置において、乱数発生機構 1が出力した数を、
履歴収集ステップとしてプログラム実行部 3,30,31, 〜
に与え、履歴収集ステップを実行したときの履歴情報
を履歴情報格納機構 2に通知し、通知された履歴情報
を履歴情報格納部 20 の所定の部分に追加し、同じ履歴
情報が上記履歴情報格納部 20 に、1つ,又は、複数個
存在する場合は、ループの候補格納部 22 に、既に、上
記履歴情報格納部 20 に記録されている履歴情報と、そ
の履歴情報の履歴IDが指示している次の履歴情報をル
ープ候補,aとして記録すると共に、今通知された
履歴情報をループ候補の基準(R) として記録し、以
降、プログラム実行部 3等からの履歴情報が、上記ル
ープ候補の「次のステップまでの距離」が指示してい
る履歴情報a,及び、基準(R) と一致しない場合を
削除することを繰り返して、上記、ある時点で生起した
基準(R) と一致するまでのステップを検索して、上記
プログラム実行部 3等からの履歴情報が、上記ループ
の候補格納部 22 のループの基準(R) と一致する、1
ステップずつのループを無限ループとする手段が、本発
明を実行するのに必要な手段である。尚、全図を通して
同じ符号は同じ対象物を示している。
【0039】以下、図1〜図3を参照しながら、図4〜
図9によって、本発明の無限ループ検出装置,及び検出
方法を具体例で説明する。図4は、プロログ(Prolog)言
語で記述されたプログラムをテストする場合の履歴情報
格納部 20 の格納例を示している。{実施例1:請求項
1,2に記載の実施例に対応} リスト処理用の述語 append は、2つのリストを結合し
て別のリストを作るために使用される。この append
は、次のように定義される。
【0040】 append (〔 〕,Ys,Y s ). ────────────────────(1) append (〔X |X s , Y s,〔X |Z s 〕):-append(X s ,Y s,Z s) ──(2) このプログラムに〔a,b,c 〕と〔d,e 〕の2つのリスト
を入力したときの動作を、引き数が異なる append が呼
ばれたときに注目すると、以下のように実行される。
【0041】t1:append(〔a,b,c 〕, 〔d,e 〕,A) は、
第1の要素が空きリストではないので、上記の(2) が選
択される。Aは〔a|A1〕とユニファイし、さらに、そ
のボディが append (〔b,c 〕, 〔d,e 〕,A1)を呼び出
す。
【0042】t2:append(〔b,c 〕, 〔d,e 〕,A1)は、第
1の要素が空きリストではないので、上記の(2) が選択
される。A1は〔b|A2〕とユニファイし、さらに、その
ボディが append (〔c 〕, 〔d,e 〕,A2)を呼び出す。
【0043】t3:append(〔c 〕, 〔d,e 〕,A2)は、第1
の要素が空きリストではないので、上記の(2) が選択さ
れる。A2は〔c|A3〕とユニファイし、さらに、そのボ
ディが append (〔 〕, 〔d,e 〕,A3)を呼び出す。
【0044】t4:append(〔 〕, 〔d,e 〕,A3)は、第1
の要素が空きリストであるので、上記の(1) が選択さ
れ、A3は〔d,e 〕とユニファイし、終了する。 上記t1, 〜t4をステップと呼ぶ。append( 〔a,b,c 〕,
〔d,e 〕,Ans) は、上記のとおり、4ステップで実行で
きる。
【0045】ここで、appendの(2) を次の(e-2) のよう
に、誤って定義したプログラムがあったとする。 append (〔 〕,Ys,Y s ). ────────────────────(1) append (〔X |X s , Y s,〔X |Z s 〕):- append ( 〔X |X s , Y s,〔X |Z s 〕) ──────(e-2) このプログラムに〔a,b,c 〕と〔d,e 〕の2つのリスト
を入力したときの動作を、引き数が異なる append が呼
ばれたときに注目すると、以下のように実行される。
【0046】e1:append(〔a,b,c 〕, 〔d,e 〕,A) は、
第1の要素が空きリストではないので、上記の(e-2) が
選択される。Aは〔a|A1〕とユニファイし、さらに、
そのボディが append (〔a,b,c 〕, 〔d,e 〕, 〔a |
A1〕) を呼び出す。
【0047】e2:append(〔a,b,c 〕, 〔d,e 〕, 〔a |
A1〕) は、第1の要素が空きリストではないので、上記
の(e-2) が選択される。さらに、そのボディが append
(〔a,b,c 〕, 〔d,e 〕,a|A1) を呼び出す。
【0048】e3:append(〔a,b,c 〕, 〔d,e 〕, 〔a |
A1〕) は、第1の要素が空きリストではないので、上記
の(e-2) が選択される。さらに、そのボディが append
(〔a,b,c 〕, 〔d,e 〕,a|A1) を呼び出す。
【0049】e4, e5,・・・・,eL:append(〔a,b,c 〕,
〔d,e 〕, 〔a |A1〕) は、第1の要素が空きリストで
はないので、上記の(e-2) が選択される。さらに、その
ボディが append (〔a,b,c 〕, 〔d,e 〕, 〔a |A
1〕) を呼び出す。
【0050】このように、全く、同じ呼び出しを無限に
繰り返し、終了することはない。上記述語 append のヘ
ッドユニフィケーションを、状態の変化を示す情報、即
ち、上記履歴情報とする。
【0051】図1(a) の乱数発生機構 1は、順に、例え
ば、"2" 以上の乱数2,2,4,3,2・・・を出力す
るとする。上記履歴情報は、述語 append のヘッドユ
ニフィケーションを数値化したものを数Mで割った余り
をキーとして格納する。本実施例では、簡単化のため
に、上記ヘッドを数値化したものには、適当な数を、上
記Mには“3”を与えることにする。
【0052】以下、上記誤った定義の append を実行し
た場合にしたがって説明する。図1(a) の履歴情報格納
部 20,ループの候補格納部 22 の初期状態は、何も記録
されていない状態である。履歴情報格納部 20 は、図4
に示されているように、3で割った余り0,1,2の3
通りの値(キー値)を格納する領域が割り当てられてい
る。
【0053】乱数発生機構 1からの与えられたステップ
2まで、通常に実行され、履歴情報収集ステップ2は、
上記の例では、e2である。そこで、上記e2のappend
(〔a,b,c 〕, 〔d,e 〕,a|A1) を数値化して、3で割
ると2が得られたとする。
【0054】この時点では、ループの候補も、既に、
記録された同一の履歴情報もないので、次のステップ2
を乱数発生機構 1から得て、その値を付加して、履歴I
D1の履歴情報aとして、上記履歴情報格納部 20 に
格納する。この状態での履歴情報格納部 20 の格納例を
示したものが図4である。このとき、プログラム実行部
3には、次の履歴情報収集までの距離として、前述の乱
数発生機構 1から生成されたステップ数2が与えられ
る。
【0055】プログラム実行部 3は、次の実行ステップ
の履歴は収集しない。ステップ数2だけ進んだステップ
は、上記の実施例では、e4である。そこで、ステップ e
4 のappend (〔a,b,c 〕, 〔d,e 〕, 〔a |A1〕) を数
値化し、3で割ると、上記のとおり2が得られる。ルー
プの候補は空きの儘である。キー“2”の領域を、履歴
情報検索部 21 が参照すると、同一の履歴情報aが格
納されていることが認識できる。そこで、既に、格納さ
れている履歴情報 (図4参照)aを、図5に示したよ
うに、ループの候補格納部 22 に、ループの候補とし
て格納してループの候補格納部 22 を更新する。{図3
の処理ステップ 103,105参照}。
【0056】ここでは、ループの基準候補(R) は存在
しないが、ステップ e4 で通知された履歴情報をルー
プの基準候補(R) として、図5に示したように格納す
る。即ち,ループの基準候補(R) の履歴IDは、図5
に示されているようにID2となる。
【0057】このとき、ループの候補に格納した上記
履歴情報の次の履歴情報の履歴ID2と、現在の履歴I
D2とが一致するので、図3の処理ステップ 106で示さ
れているように、次のステップ迄の距離に記録されてい
るステップ数の最小値、即ち、ステップ1をプログラム
実行部 3に与える。
【0058】従って、ループの候補格納部 22 におい
て、「採用したステップ」は“1”となり、「採用した
ループの候補」の履歴IDは“2”となる。この状態で
の履歴情報格納部 20,ループの候補格納部 22 での履歴
情報の格納例を図5に示す。
【0059】プログラム実行部 3には、次の履歴情報収
集までの距離として、上記履歴情報aの次のステップ
迄の距離の最小値であるステップ数1が与えられる。
{図3の処理ステップ 109,105,106参照} プログラム実行部 3から次の履歴情報として、ステッ
プ e5 の上記と同じappend (〔a,b,c 〕, 〔d,e 〕,
〔a |A1〕) が通知される。この履歴情報は、ループ
の候補格納部 22 にループの基準候補(R) として格納
されている履歴IDの履歴情報と同一であり、且つ、採
用したステップ数は前述のように、ステップ1であるの
で、図3の処理ステップ 108,112,114から明らかなごと
く、ステップ1で、上記append (〔a,b,c 〕, 〔d,e
〕, 〔a |A1〕) が無限ループしていることが認識で
きる。
【0060】次に、図6によって、プログラムの制御変
数を履歴情報とした場合の実施例について説明す
る。{実施例2:請求項3,4に記載の実施例に対応} ここでは、M*NアレイのI行J列に、文字を書き込む
プログラムを例にする。このプログラムは、以下に示す
ものであり、説明の便宜上、上記MとNとを“4”とし
ている。
【0061】 p(I,W):-I>3,W をclose する処理 ─────────(1) p(I,W):-pp(0,I,W),p(I+1,W) ─────────(2) pp(J,A,B):-J>3 ─────────────────(3) pp(J,I,W)*−I行J列目に文字を書き込む処理,pp(J+1,I,W)─(4) このプログラムの(2) を(e-2) のように誤って記述した
とする。即ち、 p(I,W):-pp(0,1,W),p(I,W) ─────────(e-2) プログラムの実行制御に関する制御変数の状態の変化
は、pの変数Iと,ppの変数Jの値から得ることができ
るとする。
【0062】p(0,W)を入力したとき、上記の誤ったプロ
グラム p(I) と,pp(J)の値の実行状況を以下に示す。 e1 p(0) e19 p(0) e2 pp(0,0) (ID1) e20 pp(0,0) (ID6) e3 pp(0,1) e21 pp(0,1)e4 pp(0,2) (ID2) e22 pp(0,2) (ID7) e5 pp(0,3) e23 pp(0,3) e6 pp(0,4) e24 pp(0,4) e7 p(0) e25 p(0) e8 pp(0,0) e26 pp(0,0)e9 pp(0,1) (ID3) e27 pp(0,1) (ID8) e10 pp(0,2) e28 pp(0,2) e11 pp(0,3) e29 pp(0,3) e12 pp(0,4) e30 pp(0,4)e13 p(0) (ID4) e31 p(0) e14 pp(0,0) e32 pp(0,0) e15 pp(0,1) e33 pp(0,1)e16 pp(0,2) (ID5) e34 pp(0,2) e17 pp(0,3) e35 pp(0,3) e18 pp(0,4) e36 pp(0,4) 図1の乱数発生機構 1は、順に2,2,5,4,3,4
・・・を出力(但し、前述のように“2”以上の数の出
力)するとする。
【0063】既に、蓄積されている履歴情報と一致する
履歴情報を得るまで間、上記乱数発生機構 1の出力し
たステップ毎に、履歴情報 (上記実行ステップにおい
て、アンダラインで示す) が、履歴情報格納機構 2に通
知され収集される。
【0064】上記の e16の履歴情報は、それまでに蓄積
されている e4 の履歴情報と一致するので、ループの候
補{pp(0,2) }になる。この時点での履歴情報格納部
20と、ループの候補格納部 22 での履歴情報の格納例
を図6に示す。
【0065】図6のループの候補aは、上記ループの
候補の次のステップと一致する履歴情報、即ち、履歴
ID2の次の履歴(履歴ID3)の pp(0,1)である。履
歴ID5までと同様のステップ間隔(4,2,2,5,
・・・)で履歴情報を収集すると、上記の実行例に示
されているように、履歴ID7まで、全く同じ履歴が蓄
積される。そして、上記 e16を受信した時点で、ループ
の基準候補(R) は、図6に示されているよにう、履歴
ID5となる。
【0066】従って、履歴ID7が、上記ループの基準
候補(R) と一致するので、ここで、1ステップずつ6
個の履歴情報を収集すると、再度ループの基準候補
(R) と一致する。その時点で、「次のステップまでの
距離」の最大値を“6”に変更して、再度1ステップず
つ6個の履歴情報を収集すると、全く同じ履歴情報
が収集されることから、無限ループと認識される。
【0067】次に、図7〜図9によって、他の実施例
{実施例3}として、複数個のプログラム実行部で、複
数のプロセスを実行する場合の例を説明する。{請求項
5に記載の実施例に対応} この実施例では、図7〜図9に示されているように、例
えば、3人の警官が怪盗を捕まえる問題を示しており、
例えば、図2におけるプログラム実行部 30,31, 〜が複
数個、例えば、4個で実行する場合に対応し、上記3人
の警官の動作を、それぞれのプログラム実行部 30,31,3
2 が実行し、怪盗の動作をプログラム実行部 33 が実行
する。
【0068】上記3人の警官(図7〜図9では○印で示
す)が、式1に示す評価関数に従って、相対位置関係を
変化させながら、怪盗(図7〜図9では●印で示す)を
追跡し、怪盗は警官との距離が“2”にあると、逃げ出
すという問題を考える。
【0069】式1の協調度を大きくすると、警官が怪盗
の周りを囲んで回るだけで怪盗を捕まえることができな
いという現象が現れる。 評価関数=距離+協調度/包囲度*距離 ────────(式1) 上記式1の距離は、警官と怪盗との間の距離であり、協
調度は正の整数、包囲度は他の警官とを結んで生成した
三角計の重心とのずれの大きさを示す数である。図7〜
図9において、警官(○印)に付加されている (a,b/c)
内の情報の内、a:次のステップでの警官と怪盗との距
離を示し、b/c:警官が動いたときの上記三角計の重
心とのずれを示している。
【0070】各プログラム実行部 30,31, 〜での動作の
詳細な説明は省略するが、警官が怪盗の周りを囲んでい
るだけで、怪盗を捕獲することができない状態とは、図
7〜図9に示した状態(2)〜(6) を繰り返すときで
あり、協調度が大きいとき、例えば、上記の式1におい
ては、協調度が“4”より大きいとき、状態(1)〜
(6)に示すような状態の変化を繰り返す。
【0071】警官との距離が“1”より大きいときに
は、怪盗は動かないが、(6)で示したように、1人の
警官が距離を“1”に詰めてくると、矢印で示されてい
るように、反対側に逃げる。これによって、警官と怪盗
との相対位置関係でみたとき、(2)と同じ状態にな
る。従って、再度同様の状態を繰り返して、怪盗を捕獲
することができない。
【0072】前述のように、1人の警官の動きは、並列
に動作するプロセッサによって計算する。即ち、警官の
位置の決定を並列に実行する。このとき、プロセッサ間
で通信を行うことにより、他の警官の位置を知ることが
できる。包囲度の計算は、直前に通知された警官の位置
を元に、各プロセッサで計算し、前述の評価関数の値が
小さくなるように動作する。
【0073】このとき、総ての警官が移動した時点で、
図2の実行情報収集機構 4が、総ての警官の怪盗に対す
る相対位置関係の情報を収集して、その収集した情報の
論理積情報を履歴情報として保持し、履歴情報格納機
構 2に通知することにより、前述の実施例1と実施例2
と同様にして、各警官が怪盗の周りを囲んでいて、捕獲
できなき状態、即ち、無限ループの状態を検出すること
ができる。
【0074】
【発明の効果】以上、詳細に説明したように、本発明の
無限ループ検出装置,及び方法によれば、予め、無限ル
ープとなるステップ数を予測することなく、又、乱数
で、履歴情報収集ステップ数とすることで、実行時のオ
ーバヘッドを抑えて、無限ループを検出することができ
る効果がある。
【図面の簡単な説明】
【図1】本発明の原理説明図(その1)
【図2】本発明の原理説明図(その2)
【図3】本発明の原理説明図(その3)
【図4】本発明の一実施例を示した図(その1)
【図5】本発明の一実施例を示した図(その2)
【図6】本発明の一実施例を示した図(その3)
【図7】本発明の一実施例を示した図(その4)
【図8】本発明の一実施例を示した図(その5)
【図9】本発明の一実施例を示した図(その6)
【図10】従来の無限ループ検出方法を説明する図
【符号の説明】
1 乱数発生機構 2 履歴情報格
納機構 20 履歴情報格納部 21 履歴情報検
索部 22 ループの候補格納部 3,30,31,32, 〜 プログラム実行機構, プログラム
実行部 4 実行情報収集機構 (3),(30)〜(311) 履歴情報格納機構での処理 100 〜114 処理ステップ 履歴情報 ループの候
補の履歴情報 a ループの候補の「次のステップまでの距離」
が指示している履歴情報 ループの基準候補(R),ループの基準(R) ID 履歴識別子 (履歴ID)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 丸山 文宏 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】プログラムの実行に伴って、状態が変化す
    るデータ処理装置において、乱数発生機構(1) と、 上記乱数発生機構(1) から出力される数を、履歴収集ス
    テップとして、実行結果を履歴情報 () として出力す
    るプログラム実行機構(3) と、 上記プログラム実行機構(3) からの実行結果情報を、履
    歴情報 () として格納する履歴情報格納部(20)と, 上
    記プログラム実行機構(3) から得られた、上記履歴情報
    () と一致する上記履歴情報格納部(20)の履歴情報
    () と、その履歴情報 () の履歴識別子が指示する
    履歴情報をプログラムループの候補 ()とし、今得ら
    れた履歴情報 () を、プログラムループの基準候補
    (R)() として格納するループの候補格納部(22)と、上
    記上記プログラム実行機構(3) から得られた、上記履歴
    情報 () に基づいて、上記履歴情報格納部(20), 又
    は、上記ループ候補格納部(22)に格納されている履歴情
    報を比較する履歴情報検索部(21)とから構成される履歴
    情報格納機構(2) とを備えて、 上記プログラム実行機構(3) からの、所定の順序で得ら
    れる履歴情報 () に基づいて、上記ループ候補格納部
    (22)に記録されている上記ループ候補 () の次のステ
    ップが指示している履歴情報を検索, 比較して、一致し
    ないループの候補 () を削除し、上記ループの候補
    () の総てが消去されたとき、上記プログラムループ
    の基準候補(R)() も消去することを繰り返し、ある時
    点で生起した上記プログラムループの基準候補(R)()
    と一致するまでのプログラムステップを抽出して無限ル
    ープを検出することを特徴とする無限ループ検出装置。
  2. 【請求項2】プログラムの実行に伴って、状態が変化す
    るデータ処理装置において、乱数発生機構(1) が出力し
    た数を、履歴収集ステップとしてプログラム実行機構
    (3) に与え、 プログラム実行部(3) は、上記履歴収集ステップを実行
    したときの履歴情報 () を履歴情報格納機構(2) に通
    知し、 履歴情報格納機構(2) は、履歴情報格納部(20)に、上記
    通知された履歴情報 () に、所定の履歴識別子(20a)
    と、上記乱数発生機構(1) が出力する数値を、次のステ
    ップ迄の距離(20b) を付加して格納し、 ループの候補格納部(22)内での、ループの候補 () の
    有無を検索して、ループの候補 () がなければ、上記
    通知された履歴情報 () と同一の履歴情報が、履歴情
    報格納部(20)に蓄積されているか否かを検索し、蓄積さ
    れていなければ、上記乱数発生機構(1) に履歴収集ステ
    ップを要求して、プログラム実行部(1)に通知し、 上記通知された履歴情報 () と同一の履歴情報が、一
    つ, 又は、複数個が、上記履歴情報格納部(20)に存在し
    ていると、上記ループの候補格納部(22)に、上記蓄積さ
    れている履歴情報と、その履歴情報の上記履歴識別子が
    指示している履歴情報とを、ループの候補 () とし、
    今通知された履歴情報 () を、プログラムループの基
    準候補(R)() として、所定の領域に記録し、且つ、上
    記履歴情報の次のステップ迄の距離の最小値を、上記プ
    ログラム実行部(1) に通知し、 上記ループの候補格納部(22)での、ループの候補の有無
    を検索して、ループの候補 () が有ると、上記通知さ
    れてきた履歴情報 () が、各ループの候補 () の次
    のステップ迄の距離が指示してきるループの候補の履歴
    情報 (a)と一致しているかどうかを検索し、一致し
    ていれば、その履歴情報(a)で、上記ループの候補
    格納部(22)の内容を更新して、その履歴情報(a)の
    次のステップ迄の距離が指示しているステップ数の最小
    の数値を、上記プログラム実行部(1) に通知し、一致し
    ていなければ、その履歴情報(a)と、元の履歴情報
    ()とを、上記ループ候補格納部(22)から削除し、未
    だ、ループの候補 () が残っている場合には、その残
    っているループの候補 () の次のステップ迄の距離か
    ら、上記削除したループの候補 () の次のステップ迄
    の距離を減算して、次のステップ迄の距離を再計算した
    数値を、上記プログラム実行部(1) に通知し、ループの
    候補 () が残っていない場合には、上記ループの基準
    候補(R)()も削除して、乱数発生機構(1) に履歴収集
    ステップを要求して、プログラム実行部(1) に通知する
    ことを繰り返して、 上記プログラム実行部(1) から通知された履歴情報
    () が、上記プログラムループの基準候補(R)() と
    一致したとき、上記プログラム実行部(1) に通知するス
    テップ数を“1”とし、上記と同じ処理を繰り返して、
    再度、上記プログラム実行部(1) から通知された履歴情
    報 () が、上記プログラムループの基準候補(R)()
    と一致したとき無限ループが検出された判定することを
    特徴とする無限ループ検出方法。
  3. 【請求項3】上記履歴情報()として、プログラムの
    制御変数 () としたことを特徴とする請求項1に記載
    のループ検出装置。
  4. 【請求項4】上記履歴情報()として、プログラムの
    制御変数 () としたことを特徴とする請求項2に記載
    のループ検出方法。
  5. 【請求項5】複数のプロセスが、資源の共有,又は、所
    定の通信手段によって、同期しながら並列に処理を進め
    ることを記述した複数のプログラムの実行に伴って、複
    数のプロセスの状態が変化するデータ処理装置におい
    て、 上記複数のプログラムの実行を行うプログラム実行機構
    (30,31, 〜) と並列に実行される各プロセスの状態を収
    集する実行情報収集手段(4) と、請求項1に記載の乱数
    発生機構(1) と、履歴情報格納部(2) とから構成された
    ことを特徴とする無限ループ検出装置。
  6. 【請求項6】上記請求項5に記載の無限ループ検出装置
    を使用して、上記請求項2に記載と同様の手順で無限ル
    ープを検出することを特徴とする無限ループ検出方法。
  7. 【請求項7】上記請求項5に記載の無限ループ検出装置
    で使用する履歴情報()として、複数個のプログラム
    実行機構(30,31, 〜) から通知される各履歴情報 ()
    を論理積したものとすることを特徴とする請求項5に記
    載のループ検出装置。
  8. 【請求項8】上記請求項6に記載の無限ループ検出方法
    で使用する履歴情報()として、複数個のプログラム
    実行機構(30,31, 〜) から通知される各履歴情報 ()
    を論理積したものとすることを特徴とする請求項5に記
    載のループ検出方法。
  9. 【請求項9】上記請求項5に記載の無限ループ検出装置
    で使用する履歴情報()として、プログラムの制御変
    数 () とすることを特徴とする請求項5に記載のルー
    プ検出装置。
  10. 【請求項10】上記請求項6に記載の無限ループ検出方
    法で使用する履歴情報()として、プログラムの制御
    変数 () とすることを特徴とする請求項5に記載のル
    ープ検出方法。
JP5129853A 1993-06-01 1993-06-01 無限ループ検出装置及び、方法 Withdrawn JPH06342384A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5129853A JPH06342384A (ja) 1993-06-01 1993-06-01 無限ループ検出装置及び、方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5129853A JPH06342384A (ja) 1993-06-01 1993-06-01 無限ループ検出装置及び、方法

Publications (1)

Publication Number Publication Date
JPH06342384A true JPH06342384A (ja) 1994-12-13

Family

ID=15019881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5129853A Withdrawn JPH06342384A (ja) 1993-06-01 1993-06-01 無限ループ検出装置及び、方法

Country Status (1)

Country Link
JP (1) JPH06342384A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0978780A1 (en) * 1998-08-06 2000-02-09 Elonex I.P. Holdings Limited Low-power-consumption monitor standby system
WO2003048928A3 (de) * 2001-12-03 2004-02-19 Martin Huettlinger Algorithmus zur erkennung von endlos- und warteschleifen durch die erkennung eines doppelt angenommenen zustands

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0978780A1 (en) * 1998-08-06 2000-02-09 Elonex I.P. Holdings Limited Low-power-consumption monitor standby system
WO2003048928A3 (de) * 2001-12-03 2004-02-19 Martin Huettlinger Algorithmus zur erkennung von endlos- und warteschleifen durch die erkennung eines doppelt angenommenen zustands

Similar Documents

Publication Publication Date Title
EP0413485B1 (en) Performance improvement tool for rule based expert systems
JP3959027B2 (ja) 情報システムのためのデータ構造
US7509234B2 (en) Root cause diagnostics using temporal data mining
Sivaranjani et al. Crime prediction and forecasting in Tamilnadu using clustering approaches
Nazif et al. Low level image segmentation: an expert system
US7644078B2 (en) System and method for mining of temporal data
US9792359B2 (en) Providing training information for training a categorizer
CN105659263A (zh) 序列识别
Cao et al. Querying similar process models based on the Hungarian algorithm
WO2005055073A1 (en) Automated anomaly detection
US20060195423A1 (en) System and method for temporal data mining
US20200073738A1 (en) Error incident fingerprinting with unique static identifiers
US20130290368A1 (en) Bayesian networks of continuous queries
JP2009087190A (ja) ストリームデータ解析高速化装置、方法およびプログラム
Acheli et al. Discovering and analyzing contextual behavioral patterns from event logs
Heister et al. An architecture for maintaining case-based reasoning systems
JPH06342384A (ja) 無限ループ検出装置及び、方法
Severance A parametric model of alternative file structures
CN109002716A (zh) 一种移动应用的恶意代码入侵检测与防范方法
CN108536606B (zh) 一种基于复合依赖关系覆盖准则的efsm测试方法
Persia et al. An event detection framework supported by a smart graphical user interface
JP2001109647A (ja) 事態状況解析装置
EP3671467A1 (en) Gui application testing using bots
CN109271301A (zh) 一种学习任务的监控方法和设备
Ramanujam et al. Analysis of event synchronization in parallel programs

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000801