JPS63231543A - 論理型言語プログラムの実行トレ−ス表示方法 - Google Patents

論理型言語プログラムの実行トレ−ス表示方法

Info

Publication number
JPS63231543A
JPS63231543A JP62063993A JP6399387A JPS63231543A JP S63231543 A JPS63231543 A JP S63231543A JP 62063993 A JP62063993 A JP 62063993A JP 6399387 A JP6399387 A JP 6399387A JP S63231543 A JPS63231543 A JP S63231543A
Authority
JP
Japan
Prior art keywords
predicate
information
execution
display
term
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.)
Granted
Application number
JP62063993A
Other languages
English (en)
Other versions
JP2696210B2 (ja
Inventor
Tadashi Hirose
広瀬 正
Kazuo Nakao
中尾 和夫
Keiko Shinada
品田 啓子
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62063993A priority Critical patent/JP2696210B2/ja
Priority to US07/156,459 priority patent/US4943968A/en
Publication of JPS63231543A publication Critical patent/JPS63231543A/ja
Application granted granted Critical
Publication of JP2696210B2 publication Critical patent/JP2696210B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プログラムの実行トレースに関し。
特に、論理型言語で記述されたプログラムの実行トレー
スの表示に関する。
〔従来の技術〕
一般に、プログラムの実行トレースは、デバッグ作業の
支援のために行なわれるものであり、したがって、プロ
グラムのどの部分が目下実行中なのかを、表示されたト
レース情報からいつでも容易に把握できることが望まれ
る。従来における論理型言語プログラムの実行トレース
の表示は、項の制御点、例えば、呼出しくCALL)、
再呼出しくRED○)、成功終了(EXIT)、及び失
敗終了(FAIL)のどれを通過したかを、実行対象の
述語、項等と共に、文字列により順次羅列的に表示する
ものである(W、F、C1ockskin、C,S。
Mellish原著、中村克彦訳rPrologプログ
ラミング」マイクロソフトウェア社1983年発行参照
)。
第11図は、後述する第4図のPrologプログラム
について、従来技術に属する形式の実行トレース表示の
例を示す。この例では、制御点の種別として、前記の4
点に加えて、それらの特別な場合であるユニフィケーシ
ョン呼出しくUCALL)、ユニフィケーション再呼出
しくUREDO)、ユニフィケーション成功終了(UE
XIT )及びユニフィケーション失敗終了(UFAI
L、)が用いられている。文の先頭順(頭部項)につい
ては、先に′述べた制御点種別の代りに、これらの追加
された制御点種別が用いられる。第11図において、左
端の数字は述語のレベルを示し、その右の欄は通過した
前記8種類の制御点の一つを示し、その更に右の欄は、
実行対象の項その他を示す。例えば、第4行は、述語r
の試行を要求する項r (2,X)がCALL点を通過
したことを示し、第5行は、この述語r中の文r (1
,X)ニーs (X)の先頭順r(1,X)がUCAL
L点を通過したことを示し、第6行は、この項がUFA
IL点を通過したことを示し。
第7行は述語rの次の文r(2,X)ニーt (X)。
s (X)の先頭順r (2,X)がUCALL点を通
過したことを示し、第8行は、この項がUEXIT点を
通過したことを示し、そして、第9行は、この文の第2
項t (X)がCALL点を通過し、したがって、述語
tが次に試行されることを示す。
論理型言語のプログラムの各項を箱形図形で囲んで表示
し、この箱形図形の四辺を用いて各項に対する呼出しの
変化や過去の実行状態を表現することは、既に提案され
ている(特願昭60−195280号及び特願昭60−
195848号)、シかし、これらの提案は、実行トレ
ースの表示にまでは及んでいない。
〔発明が解決しようとする間頭点〕
第11図に示されるような従来の実行トレース表示は、
情報量については十分である。しかし、プログラムのど
の部分が実行中かをその表示から把握することは、決し
て容易ではない。加えて、論理型言語のプログラムでは
、バックトラッキングが頻発するため、単に現在の実行
点が指摘できるだけでは足りず、そこに至るまでの経緯
も把握できることが必要であるが、これは一層困難であ
る。
通常、プログラマは、言語仕様の許す範囲で、字下げ、
改行、注釈の挿入などにより、なるべく理解し易い形式
でプログラムを記述し、そして、この特定の記述形式で
そのプログラムを理解している。したがって、第11図
に示されるような形式のトレース表示を参照しながらデ
バッグを行なう場合に、多くのプログラム作成者は、自
分が記述したとおりの形式のプログラムソースリスト出
力を別に用意し、このプログラムソースリスト上におけ
る現在の実行点とそこに至る経緯とを、第11図のよう
なトレース情報から推考・判断することを余儀なくされ
る。この推考・判断のための労力が、デバッグの効率の
向上を妨げていた。
本発明の目的は、論理型言語のプログラムにおける現在
の実行点とそこに至る経緯が把握し易い形式の実行トレ
ース表示を提供し、それにより、前述した推考・判断の
ための労力を軽減して、デバッグの効率の向上に資する
ことにある。
〔間厘点を解決するための手段〕
本発明は、処理中の述語のプログラムソースリストを表
示するステップと、この表示されたプログラムソースリ
スト上で、実行された各項の最新の実行状態を、その項
の周辺に図式で表示するステップとを有する。
〔作用〕
前者諸ステップの結果、処理中の各述語が、プログラム
作成時の記述形式で表示され、かつ、このような形式の
表示上で、実行された各項がどのような実行状態に達し
ているかが、その項の近辺に簡潔に図式表示される。例
えば、各項が到達している実行状態が、呼出し、再呼出
し、呼出し後の成功終了又は失敗終了、あるいは再呼出
し後の成功終了又は失敗終了のいずれであるのかが、そ
の項を囲む箱形図形の辺と項点の一つによって示される
。したがって、プログラマは、自分の理解し易い形式で
示されたプログラム上で諸項の図式表示された実行状態
をたどることにより、現在の実行点とそこに至る経緯を
容易に把握することができる。
〔実施例〕
第2図は、本発明の一実施例を実行するためのデータ処
理装置の一例を示す。この装置は、中央処理装置1.主
メモリ2.補助メモリ3.CRT表示装置4.キーボー
ド5.及びそれらを結合するバス6からなる。
第3図は、第2図に示された装置のためのソフトウェア
構成の一例を示す。図番とおいて、実線は被処理情報の
伝達を表わし1点線は起動の制御を表わす。このソフト
ウェアは、主メモリ2内に用意される。制御部31は、
キーボード5から入力される間合せ情報とユーザプログ
ラム読込み指示を、推論部34と入力部32にそれぞれ
渡し、それらを起動する。入力部32は、ユーザプログ
ラム読込み指示に従って、補助メモリ3に格納されてい
るユーザプログラムをデータエリア33に読込む。デー
タエリア33は、ユーザプログラムをその実行期間中保
持するとともに、推論及び実行トレース表示の実行に必
要な各種の情報を保持する。推論部34は、間合せ情報
に応答して、データエリア33を参照しながら、推論を
実行する。
トレース表示部35は、推論部34から与えられる推論
情報と、データエリア33内の情報を処理して、推論実
行状態、すなわち実行トレース情報を、CRT表示装置
4上に表示する。
予め、ユーザはユーザプログラムを作成し、補助メモリ
3に格納しておく。第4図には、 Prologで記述
されたユーザプログラムの一例が示されている。第4図
において、文■ないし■がユーザプログラムを構成する
。 Prologプログラムは1通常。
規則文と事実文からなる6文のないし■は規則文であり
1文■ないし■は事実文である。例えば、規則文のは、
r (2,X)で示される事実が真であればp (X)
で示される事実は真であるという規則を表わし、事実文
■は、 t (a)で示される事実が真であるという事
実を表わす6文の先頭項の名称とその引数の個数を同じ
くする文の集合を述語と呼ぶ0例えば1文■ないし■は
一つの述語を構成し、その名称はrで5引数の個数は2
である。述語の名称と引数の個数を併せて述語名と呼び
、この用語は後記の説明中に用いられている。
ユーザは1文■ないし■からなるプログラムを補助メモ
リ3から読込むようにシステムに指示した後1文■のよ
うな形式の間合せ情報を、キーボード5を介して投入す
る0文■は、 p (X)で示される事実は真であるか
否かという問合せを表わす、システムは、僕の間合せに
対して、■に示されるような形式の応答を出力する。こ
の応答■は、問題の事実がX =aのとき、に真である
という趣旨のものである。
間合せ情報から応答を生成する処理は、推論部。
34により行なわれる。しかし、本発明の対象は。
応答生成処理それ自体ではなく、推論部34の実行過程
の表示であり、それはトレース表示部35により行なわ
れる。それゆえ、推論部34による応答生成処理の詳細
な説明は省略し、トレース表示部34によるトレース表
示過程を以下に詳述する。
まず、トレース表示過程で利用されるデータエリア33
内の情報の部分を説明する。第5図に示されるように、
データエリア33は、各画表51と、表示スタック52
と、スタックポインタエリア53と、ヒープエリア54
を含む。名画表51は、前述した述語名(述語の名称と
引数の個数)のそれぞれについて、関連情報へのポイン
タを保持するテーブルである。各述語名に1個のレコー
ドが割当てられ、各レコードは、述語名称フィールド5
11、テキスト情報ポインタフィールド。
512、位置情報ポインタフィールド513.及び木構
造情報ポインタフィールド514からなる。
ヒープエリア54は、前記のポインタが指す木構造情報
541、位置情報542.及びテキスト情報543を保
持する。木構造情報541は、ユーザプログラム中の各
文の木構造を表わす情報である。この情報は、各文を構
文解析することにより得られ、主に推論部34により使
用される。テキスト情報543は、ユーザプログラムを
ユーザがそれを記述したとおりの形式で表現する情報で
あり、それがCRT上に表示されると、ユーザが記述し
た形式におけるユーザプログラム、すなわちプログラム
ソーステキストが表示される。位置情報542は、プロ
グラムソーステキスト(以下テキストと略称する)中の
各文の各項の表示画面上における位置を示す情報である
第6図(a)は、位置情報542の詳細を、その一部に
ついて示す。各文に対応して1個の文ノード(61,6
2λが設けられ、各文中の各項に対応して1個の環ノー
ド(sa−Qs7)が設けられる。文ノードは2個のポ
インタからなり、第1のポインタは対応する文の先頭順
に対応する環ノードのアドレスを指し、第2のポインタ
は同じ述語に属する次の文に対応する文ノードのアドレ
スを指し、最後の文に対応する文ノードの第2ポインタ
には0が設定される0名前表51(第5図)中の各レコ
ードの位置情報フィールド513の内容は、対応する述
語の先頭文に対応する文ノードのアドレスを指す、各環
ノードは、1個のポインタと4個の位置情報からなる。
このポインタは、同じ文中の次の項に対応する環ノード
のアドレスを指し、最後の項に対応する環ノードにおい
ては0に設定される。各環ノードの4個の位置情報は、
テキストが表示された場合に、対応する項が表示される
べきCRT画面上の位置(第6図(b)参照)を示す。
第6図は、第4図に示されたプログラムにおける。述語
名r(引数個数2)に対応する位置情報の一部を例示し
たものである。この述語は、3個の文■〜■からなり1
文ノード61は第1の文■に対応し1文ノード62は第
2の文■に対応する。
第1文■は2個の項r(1,X)とs (X)からなり
、これらの項は、環ノード63と64にそれぞれ対応す
る。第2文■は3個の項r (2,X)とt (X)と
s (X)とからなり、これらの項は、環ノード65と
66と67にそれぞれ対応する。
環ノード67の4個の位置情報X z t X s t
 V t * V zは、第6図(b)に示されるよう
に、CRT画面68上で対応する項s (X)を囲う箱
形図形69の位置を示す。
第7図は、表示スタック52とスタックポインタエリア
53の詳細を示す0表示スタック52は。
スタックとして機能する記憶領域であって、推論部34
での実行過程を表示の制御のために記録する0表示スタ
ック52の各レコードは、呼出された各述語に対応し1
次の6個のフィールドからなる。
pidフィールド71: 当該述語名に対する各画表51中のレコードの番号(述
語名識別子pid)を格納するフィールド ppフィールド72: 呼出元述語に対応する表示スタック52中のレコードへ
のポインタ(親ポインタpp)を格納するフィールド cflpフィールド73: 当該述語の位置情報542における実行中の文に対応す
る文ノードへのポインタ(文ポインタc12p)を格納
するフィールド gflPフィールド74: 当該述語の位置情報542における実行中の項に対応す
る環ノードへのポインタ(項ポインタgQp)を格納す
るフィールド kdフィールド75: 当該述語に関して推論部34から送られた最新の制御点
種別を格納するフィールド fpフィールド76: ソーステキストの当該述語の部分のCRT表示のために
割当てられた出力ウィンドウのファイル番号を格納する
フィールド スタックポインタエリア53には゛、カレントポインタ
(CP)77と空ポインタ(EP)78が格納される。
カレントポインタ77は、現在実行中の述語に対応する
表示スタック52中のレコードのアドレスを指し、空ポ
インタ78は1表示スタック52の空きエリアの先頭ア
ドレスを指す。
推論部34は、各項について、その8個の制御点(CA
LL、 EXIT、REDO,FAIL。
UCALL、 UEXrT、 UREDO,UFAIL
) ノイずれかが実行された時点で、その述語名と制御
点種別を推論制御情報としてトレース表示部35に渡し
て、これを起動する。トレース表示部35は、起動され
ると、第8図に示されるように、制御点表示処理81と
スタック処理82を行ない1次いで、制御点種別がCA
LL又はREDOの場合に、テキスト表示処理83又は
テキスト再表示処理84をそれぞれ行なう。制御点表示
処理81は、処理された項がどの型の制御点を通過した
かを、カレントポインタ77(第7図)が指す表示スタ
ックレコード(以下カレントレコードとし−う)又はそ
のレコードのppフィールドが指すレコード(以下親レ
コードという)の内容と、推論部34からの制御点種別
情報とに基づいて、テキスト上に表示する。スタック処
理82は、次の処理結果あ表示に備えて、表示スタック
52と両ポインタ77゜78を、推論部からの制御点種
別情報に応じて更新する。テキスト表示処理83は、C
ALL処理の結果として次に処理される述語のテキスト
を表示し、テキスト再表示処理84は、REDO処理の
結果として次に処理のやり直しが行なわれる述語のテキ
ストを表示し直す。次にこれらの処理の詳細を説明する
が1便宜上、スタック処理82を最初に説明する。
第9図は、スタック処理82をやや詳細に示すフローチ
ャートである。まず、推論部34から受取った推論制御
情報中の制御点種別が判別される(処理90o)。制御
点種別がCALLであれば、次のような処理901〜9
04が行なわれる。
(1)カレントポインタ77が指すレコード(カレント
レコード)のkdフィールドに“CALL”を設定する
(901)。
(2)空ポインタ77が指すレコード位置に新しいレコ
ードを作成し、その諸フィールドの値を次のように設定
する(902)。
pid=推論制推論制御情報語名に対応する述語名識別
子(なお、述語名と述語名識 別子の対応を示すテーブルは予め用意 されている) pp”カレントポインタ77の値 cQp=前記pidが指す名前表レコード中の位置情報
ポインタフィールド513の 値、すなわち、対応する述語の最初の 文ノードのアドレス gQp=前記cQpが指す文ノードの第1ポインタの値
、すなわち、先頭順ノードの アドレス kd=設定無し fP=この述語に新しく割当てられた出力ウィンドウの
ファイル番号 (3)カレントポインタ77に空看インタ78の値を設
定する(9’03)、。
(4)空ポインタ78の値をルコード分だけ増加して、
空エリアの新先頭アドレスを指すようにする(904)
制御点種別がEXITであれば、次のような処理905
と906が行なわれる。
(1)カレントレコードのppフィールドが指すレコー
ド(親レコード)のgQPフィールドを。
次の環ノードを指すように変更する(905)。
詳述すれば、親レコードのgQP値がOでなければ、そ
れが指す環ノードのポインタ値(同じ文の次の環ノード
のアドレス)を、このgnpフィールドに設定する。た
だし、親レコードのgQP値が0であれば、このレコー
ドのaQp値が指す文ノードの第2ポインタ(次の文ノ
ードのアドレス)を取出して、それをこのaQpフィー
ルドに設定し、そして、gQPフィールドには、この新
cfip値が指す文ノードの第1ポインタの値を設定し
て、その文の先頭順ノードを指すようにする。
(2)カレントポインタ77の値を、それが現在指して
いるレコードのppフィールドの値(親レコードのアド
レス)に設定する(906)。
制御点種別がREDoであれば、次のような処理907
と908が行なわれる。
(1)カレントレコードのkdフィールドに“REDO
”を設定する(907)。
(2)空ポインタ78が指す位置からカレントポインタ
77が指す位置まで順にさかのぼって、カレントポイン
タの値をppフィールドに持つレコードを探し、このレ
コードを指すようにカレントポインタの値を変更する(
908)。
制御点種別がFAILであれば、次のような処理909
〜912が行なわれる。
(1)カレントレコードのfp フィールドが示すウィ
ンドウを消去する(909)。
(2)親レコードのgQPを、一つ前の環ノードを指す
ように変更する(910)。なお、FAILが生じる時
、親しP−ドのgQPが先頭順ノードを指していること
はない。  ′ (3)カレントポインタ77の値を、カレントレコード
のpp値に設定し、親レコードを指すようにする(91
1)。
(4)空ポインタ78の値を、カレントポインタ77の
旧位に設定する(912)。
制御点種別がUCALLであれば、カレントレコードの
kdフィールドに“CALL”を設定する(913)。
制御点種別がUEXITであれば、カレントレコードの
gQP値を、それが指す環ノードのポインタの値、すな
わち、同じ文の次の環ノードのアドレスに変更する(9
14)。もしも現gQPが最後の環ノードを指していれ
ば、その環ノードのポインタ値はOであり、したがって
、gQP値は0に設定される。
制御点種別がUREDOであれば、カレントレコードの
kdフィールドに” RE D O”を設定する(91
5)。
制御点種別がUFAILであれば、カレントレコードの
aQp値を、それが指す文ノードの第2ポインタの値、
すなわち、次の文ノードのアドレスに変更し、かつ、g
QP値を、新aQp値が指す文ノードの第1ポインタの
値、すなわち、この文の先頭順ノードのアドレスに変更
する(916)。
以上のようなスタック処理の後では、カレントポインタ
は、次の処理対象として通常予想される環ノードと、そ
れが前回にCALL又はREDOを通過したか否かを示
す。ただし、次に推論部から受取る制御点種別がEXI
T又はFAILの場合は、親レコードが対象項ノードと
その前回の制御点種別を示す。
次に、制御点表示処理81を説明する。第10図は、こ
の処理81をやや詳細に示すフローチャートである。ま
ず、推論部34から受取った推論制御情報中の制御点種
別が判別される(100)。
制御点種別がCALL又はUCALLであれば、カレン
トレコードのgQPフィールドが指す項ノード中の位置
情報(X 1 t X z e )’ 1e ’j z
 )に従って、表示画面上で、対座する項を囲む箱形図
形の左上項点を点滅表示する(101)、’ 制御点種別がEXIT又はUEXITであれば、まず、
前回の制御点種別が調べる(102)。前回の制御点種
別は、EXITの場合には親レコード(カレントレコー
ドのppフィールドが指すレコード)のkdフィールド
に記録されており、 UEXITの場合にはカレントレ
コードのkdフィールドに記録されている。前回制御点
種別がCALLであれば、対応する項を囲む箱形図形の
上辺を太線表示しく103)、前回制御点種別がRED
Oであれば、この箱形図形の右辺を太線表示する(10
4)。
この箱形図形の位置は、EXITの場合は親レコード、
UEXITの場合はカレントレコードの。
gQpフィールドが指す環ノード中の位置情報により指
定される。
制御点種別がREDO又はUREDOならば、カレント
レコードのgQPフィールドが指す環ノード中の位置情
報に従って、対応する項を囲む箱形図形の右下項点を点
滅表示する(105)。
制御点種別がFAIL又はUFAILであれば、まず、
前回制御点種別を調べ(106)、それがCALLであ
れば、対応する項を囲う箱形図形の左辺を太線表示しく
107)、REDOであれば、この箱形図形の下辺を太
線表示する(108)。
前回制御点の種別と箱形図形の位置は、FAILとUF
AILのとき°と同様に、EXITの場合は親レコード
から得られ、 UEXITの場合はカレントレコードか
ら得られる。
テキスト表示処理83においては、推論部34から受け
た制御点種別がCALLであったことに応答して、まず
、カレントレコード(第9図の処理902により作成さ
れたレコード)のf−フィールドを参照して画面上に新
しいウィンドウを作る。次いで、pidフィールドが指
す名前表レコードを調べて、そのテキスト情報ポインタ
512が指すテキスト情報を、テキスト情報543から
選択し、前記ウィンドウに表示する。
テキスト再表示処理84においては、推論部から受けた
制御点種別がREDOであったことに応答して、カレン
トレコード(第9図の処理908により更新されたカレ
ントレコードが指すレコード)のpidフィールドが指
す名前表レコードを調べ、そのテキスト情報ポインタ5
12が指すテキスト情報を、fp フィールドが示すウ
ィンドウに再度表示する。
以上に述べた実施例では、CALL及びREDOの結果
呼出されるすべての述語のテキストが表示される。しか
し、ユーザが指定した述語のテキストのみを表示するよ
うに変更してもよい、それには、例えば、述語名と述語
名識別子(p i d)の対応テーブルに1表示の要否
を示すユーザの設定可能なフラグを付加し、これに従っ
てテキストの表示を制御すればよい。
第1図(a)は、第4図のプログラムに対する第11図
と同じトレースを、前記の実施例により表示したCRT
画面の一例を示す、ただし、この例では、述語tとSと
Uのテキスト表示は抑止されている。第1図(b)は、
前述した制御点の表示形式を総覧的に示す、第1図(a
)において、CRT画面10上に出力ウィンドウ11と
12が開かれている。第11図の第1行のCALLにお
いて出力ウィンドウ11に述語pのテキストが表示され
1次のUCALLにおいて先頭順p (X)にCALL
が表示され1次の0EXITにおいてそれはCALL−
EXITに変わる。第4行(7)CAI、Lにおいて、
述語pの文の第2項r (2,X)にCALLが表示さ
れるとともに、出力ウィンドウ12に述語rのテキスト
が表示され、次のUCALLにおいて第1文の先頭順r
(1,X)にCALLが表示される。その後、第6行の
UFAILにおいてこの先頭順の表示はCALL−FA
ILに変り、第8行のUEXITにおいて述語rの第2
文の先頭順にCALL−EXITが表示され、次のCA
LLにおいて第2文の第2項t (X)にCALLが表
示される。この時に、もしも抑止されていなければ、述
語tのテキストが新しいウィンドウに表示されることに
なる。第12行のEXITにおいて第2文の第2項t 
(X)!、−CALL−EXITが表示されて、最後の
行のCALLにおいて第2文の第3項s (X)にCA
LLが表示される。述語Sのテキスト表示は抑止されて
)Nる。
図示された現在の画面の視察から、次のことが容易に理
解できる。すなわち、現在は述語rの処理中で、目下の
実行点は項s (X)のCALL点であること、この実
行点に到るまでに、述語rの第1文の第1項を失敗終了
し、第2文の第1項と第2項を成功終了したこと、した
がって、この項s (X)に制御が渡るのは初めてであ
ること、である。
本実施例では、トレース表示部35専用の表示スタック
52が設けられているが、推論部34が使用する推論実
行用スタックにトレース表示制御用の領域を付加し、こ
こに表示スタック52に格納すべき情報を格納して、こ
のスタックをトレース表示部35と共用してもよい。ま
た、最初から全部の頂を箱形図形で囲んで表示して、制
御点を点滅、太線表示その他で強調表示してもよいし、
あるいは、未実行の項に対しては箱形図形を表示せずに
、実行された頂に対する制御点の表示のみを行なっても
よい。制御点の表現形式も、前記の実施例に限られず、
各項の周囲に表示しうる任意のシンボルを利用できる。
〔発明の効果〕
本発明によれば、論理型言語プログラムにおける現在の
プログラム実行点とそこに到る各点の実行状態が、プロ
グラマが記述したままの形式のソースリスト上に、直観
的に理解しやすい形式で表示される。したがって、普通
ならば把握の困難な論理型言語プログラムの実行過程を
、容易に把握することができ、その結果、デバッギング
効率の著しい改善が期待できる。
【図面の簡単な説明】 第1図は本発明の一実施例によって得られる表示画面を
示す図、第2図は本発明の実行に用いられるデータ処理
装置のハードウェア構成の一例を示すブロックダイヤグ
ラム、第3図は本発明の一実施例のためのソフトウェア
構成を示すブロックダイヤグラム、第4図はProlo
gによるプログラムの一例を示す図、第5図は第3回に
おけるデータエリアの詳細を示す図、第6図は第5図に
おける位置情報領域の一例を示す図、第7図は第5図に
おける表示スタックとスタックポインタエリアの一例を
示す図、第8図は本発明の一実施例によるトレース表示
処理の概略を示すフローチャート、第9図は第8図にお
けるスタック処理の詳細を示すフローチャート、第10
図は第8図における制御点表示処理の詳細を示すフロー
チャート、第11図は従来技術によるトレース表示の一
例を示す図である。 81.100〜108・・・実行状態表示ステップ。 82.900〜916・・・表示制御情報更新ステップ
、83.84・・・プログラムソースリスト表示ステッ
プ。

Claims (1)

  1. 【特許請求の範囲】 1、少なくとも一つの述語を含み、各述語は少なくとも
    一つの文からなり、各文は少なくとも一つの項を含む、
    論理型言語で記述されたプログラムを、データ処理装置
    で実行する過程において、処理される述語のプログラム
    ソースリストを表示するステップと、表示されたプログ
    ラムソースリスト上で実行された各項の最新実行状態を
    その項の周辺に図式で表示するステップとを有する、実
    行トレース表示方法。 2、特許請求の範囲1において、前記図式は対象項を囲
    む箱形図形であり、その4辺と4項点の少なくとも一部
    の表示形態が前記最新実行状態を示す、実行トレース表
    示方法。 3、特許請求の範囲2において、前記最新実行状態は、
    呼出し、再呼出し、呼出し後の成功終了及び失敗終了、
    並びに再呼出し後の成功終了及び失敗終了を含み、前記
    箱形図形の2項点が前記呼出し及び再呼出しにそれぞれ
    対応し、前記箱形図形の4辺が前記呼出し後の成功終了
    及び失敗終了並びに再呼出し後の成功終了及び失敗終了
    にそれぞれ対応する、実行トレース表示方法。 4、特許請求の範囲1において、その方法は、プログラ
    ム実行過程における実行状態を示す実行状態情報に応答
    して関連する述語のための表示制御情報を更新するステ
    ップを有し、前記両表示ステップは、前記実行状態情報
    と表示制御情報とに基づいて制御される、実行トレース
    表示方法。 5、特許請求の範囲4において、前記表示制御情報は、
    それぞれが一つの述語に対応してその述語の実行状態表
    示の制御に用いられる複数の情報ブロックと、前記情報
    ブロックの一つを指すポインタ情報とを含み、前記更新
    ステップは、新しい情報ブロックを生成するステップと
    、既成情報ブロックの内容を変更するステップと、前記
    ポインタ情報を変更するステップとを含む、実行トレー
    ス表示方法。 6、特許請求の範囲5において、前記情報ブロックは、
    対応する述語を示す部分と、述語間の呼出関係を示す部
    分と、処理対象項を示す部分と、実行経歴の少なくとも
    一部を示す部分とを含む、実行トレース表示方法。
JP62063993A 1987-03-04 1987-03-20 論理型言語プログラムの実行トレース表示方法 Expired - Lifetime JP2696210B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP62063993A JP2696210B2 (ja) 1987-03-20 1987-03-20 論理型言語プログラムの実行トレース表示方法
US07/156,459 US4943968A (en) 1987-03-04 1988-02-16 Method of displaying execution trace in a logic programming language processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62063993A JP2696210B2 (ja) 1987-03-20 1987-03-20 論理型言語プログラムの実行トレース表示方法

Publications (2)

Publication Number Publication Date
JPS63231543A true JPS63231543A (ja) 1988-09-27
JP2696210B2 JP2696210B2 (ja) 1998-01-14

Family

ID=13245309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62063993A Expired - Lifetime JP2696210B2 (ja) 1987-03-04 1987-03-20 論理型言語プログラムの実行トレース表示方法

Country Status (1)

Country Link
JP (1) JP2696210B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6255739A (ja) * 1985-09-04 1987-03-11 Hitachi Ltd 論理型言語処理方法
JPS6257033A (ja) * 1985-09-06 1987-03-12 Hitachi Ltd 論理型言語の動作範囲表示方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6255739A (ja) * 1985-09-04 1987-03-11 Hitachi Ltd 論理型言語処理方法
JPS6257033A (ja) * 1985-09-06 1987-03-12 Hitachi Ltd 論理型言語の動作範囲表示方法

Also Published As

Publication number Publication date
JP2696210B2 (ja) 1998-01-14

Similar Documents

Publication Publication Date Title
US6003143A (en) Tool and method for diagnosing and correcting errors in a computer program
US5509116A (en) Graphical user interface management system
JP4448881B2 (ja) コンピュータプログラムを発生する方法及びシステム
US6026362A (en) Tool and method for diagnosing and correcting errors in a computer program
US4943968A (en) Method of displaying execution trace in a logic programming language processing system
US5812847A (en) Rule-based method for designing user interfaces for applications
JPH02272645A (ja) プログラム・デバツグ支援方法
JPS63231543A (ja) 論理型言語プログラムの実行トレ−ス表示方法
US6014514A (en) System for generating and graphically displaying call stack information for processing elements in a parallel processing system
JP2007226685A (ja) アプリケーションメンテナンス支援装置、アプリケーション生成装置、アプリケーションメンテナンス支援方法、およびコンピュータプログラム
JPH0934698A (ja) ソフトウェア生成方法及び開発支援方法
JPH02275539A (ja) デバッグ処理方式
US8132146B2 (en) Input of program instructions in imperative programming languages
WO2022249358A1 (ja) ロボット制御装置及びロボット制御システム
JP2575664B2 (ja) 画面制御方法
JPH05113818A (ja) 多重プログラム機能を有する数値制御装置
JP3722854B2 (ja) データ編集装置
JP3079825B2 (ja) 電子計算機装置
JPS63223931A (ja) 論理図実行ル−ト出力処理方式
CN117075874A (zh) Scade模型与c代码的映射工具
JPH05342052A (ja) デバッグ方式
JPH01162922A (ja) 表示ウィンドウ管理方式
JP2601533B2 (ja) データ処理装置
JPH05197762A (ja) データベース管理システム
JPH0383137A (ja) ルール実行装置