JPH01284936A - プログラムのデバッグ方式 - Google Patents

プログラムのデバッグ方式

Info

Publication number
JPH01284936A
JPH01284936A JP63115682A JP11568288A JPH01284936A JP H01284936 A JPH01284936 A JP H01284936A JP 63115682 A JP63115682 A JP 63115682A JP 11568288 A JP11568288 A JP 11568288A JP H01284936 A JPH01284936 A JP H01284936A
Authority
JP
Japan
Prior art keywords
program
cell
variable
prolog
question
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
JP63115682A
Other languages
English (en)
Inventor
Kazuhiro Koike
和弘 小池
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP63115682A priority Critical patent/JPH01284936A/ja
Publication of JPH01284936A publication Critical patent/JPH01284936A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、コンピュータプログラム、特にProlo
gプログラムのデバッグ方式に関する。
〔従来の技術〕
第5図は従来のProlog言語のデバッグ装置の構成
を示すものであり、図において1はPrologプログ
ラムの処理を行うprot。
gプログラムの処理を行うprolog処理系、2処理
−ザがProlog処理系に処理させるために必要な知
識であるpro logの事実と規則をあらかじめ貯え
ておく内部データベース、3はProlog処理系1で
実際にどういう処理をおこなうか指示する質問入力手段
、4は質問入力手段から入力された質問をProlog
処理系1が処理した結果を表示したり、prolog処
理系1における処理の過程を表示する表示手段、5は内
部データベースに貯える事実と規則を編集するための編
集手段、6はPro log処理系1が質問入力手段4
から受は取った質問を内部データベース2に貯えられた
事実と規則により処理する過程を、表示するモードと質
問に対する答えのみを表示するモードを切り換える実行
モード切換手段である。
prologプログラムは自から判断を行う推論マシン
であって、多くの具体的事実からルール作成プログラム
を用いて一般的ルール集を見つけ出す帰納的推論を行う
。即ち、知識獲得プログラムに従い知識ベースの一般的
規則を作り出す。又、演えき的推論では変数を含む一般
的規制(知識ベース)から推論プログラムに従い、与え
られた質問に関する具体的な答を作り出す。従って、演
えき的推論では予め与えられている一般的規則、知識が
正しくない場合、或いは質問を解釈できない場合は正し
くない答が出力されるおそれがある。
次に動作について説明する。Prolog処理系1に処
理させるために必要な知識、すなわちprologのプ
ログラムは事実と規則(知識)の集合であり、知識ベー
スを編集手段5によってあらかじめ編集して内部データ
ヘース2に貯えておく。第3図には、ものの並びを表現
する構造体であるリストを2つ結合して、結合結果を返
すプログラム(知識ベース)のく誤、った例〉と、〈正
しい例〉とを示す。
編集手段5により、内部データベース2に〈誤った例〉
のプログラム(規則)を入力する。次いで、質問入力手
段3により次の質問を入力する。
質問:append (<l。2.3>、<4゜5>、
Z)。
Prolog処理系1はこの質問を受は取り、内部デー
タベース2に貯えられた事実と規則をつかって処理をお
こない表示手段4に答えを出力する。この時実行モード
は、質問に対する答えのみを表示するモードになってい
るものとする。この質問に対してユーザが期待している
正しい答は、次のものである。
正しい答: Z=< 1.2,3.4.5 >。
しかしながら内部データベース2にあらかじめ貯えられ
たプログラムは誤りがあるため、次のような答が表示手
段4によって出力される。
表示された答:Z=<1.2.31A>。
ユーザは表示された答をみて、期待していた答と違うこ
とを知ると、プログラムのどこかに誤りがあるのではな
いかと思い実行モード切り換え手段6によって、実行モ
ードをprolog処理系1の処理過程を表示するモー
ドに切り換え、再び質問入力手段3をつかって同様の質
問を人力する。
Prolog処理系1の処理過程は、表示手段によ、っ
て第3図のように表示される。ユーザは表示された質問
に対するP r o 1. o g処理系1の処理過程
の文字列を目視によって追うことで、プログラムのどこ
でエラーが発生したかを知ろうとする。
エラーの発生した箇所がわかると、次に、編集手段5を
つかって内部データベース2に登録されているプログラ
ムの知識ベース中で、エラーが発生した規則の箇所を修
正する。
〔発明が解決しようとする課題〕
従来のprolog言語プログラムのデバッグツールは
以上のように構成されているので、複数行の文字列とな
って表示された実行過程からプログラムが正常に動作し
ているか否かを調べるために、目視により、実行過程の
表示を追っていかなければならなかった。また実行過程
がそのまま全て表示されるのでデイスプレィの表示範囲
を越えてしまう場合は、見たい部分が消えてしまうなど
の問題があった。
この発明は上記課題を解決するためになされたもので、
プログラムの実行過程を所定のきまった枠内の状態の変
化として示すことにより、その枠を注目しているだけで
、広い範囲のプログラムの実行過程がわかるようになり
、見たい部分が消えてしまうことがないようにし、ブロ
グラノ、の実行途中でエラーが発生した場合に、そのエ
ラー・がソースプログラム上のどの部分で発生したかを
容易に発見し易いようにしたプログラムのデバッグ方式
を提供することを目的とする。
〔課題を解決するための手段〕
この発明においては、プロログプログラムの知識を引数
や変数毎に行列状に定めた各セルにセル・変数変換手段
7により対応づけて割当て、この割当てた行列状の表を
記憶手段9に記憶するとともに、表示手段4に表示し、
該行列状の表中の各セルを夫々措定して入力手段3から
具体的な値を入力し、変数・セル変換手段8により数値
を該当する変数に代入するとともに、表示手段4に更新
して表示する。
〔作用〕
プロログのプログラムが処理されていく過程において、
変数に値が入力されると、その変数を表示している行列
状の定めたセルに、変数の値が出力されたものが表示さ
れる。変数に別の値がはいると該セルに出力されている
値もそれに伴って更新される。オペレータは行列状の表
を観察してプログラムのデバッグを行う。
〔実施例〕
以下、この発明の一実施例を図について説明する。第1
図において1はPrologの処理系、2はユーザがP
rolog処理系に処理させるために必要な知識である
Pro l ogの事実と規則、すなわちプログラムを
あらかじめ貯えておく内部データベース、3はProl
og処理系で実際にどういう処理をおこなうか指示する
質問入力手段、4は質問入力手段から入力された質問を
Prolog処理系1が処理した結果を表示したり、P
rolog処理系1における処理の過程を表示する表示
手段、5は内部データベースに貯えられた事実と規則を
編集するための編集手段、6はPr。
log処理系1が質問入力手段3から受は取った質問を
内部データベースに貯えられた事実と規則により処理す
る過程を表示するモードと、質問に対する答えのみを表
示するモードを切り換える実行モード切換手段であり、
7は質問入力手段3から表の枠(セル)に対して入力さ
れた値を、そのセルに対応する変数にいれるセル・変数
変換手段、8はProlog処理系lで処理系台こなわ
れた結果変数の値をその変数に対応するセルに出力する
変数・セル変換手段、9はセルと変数の対応を一時的に
記憶する記憶手段、10はセルから入力された個にの値
からProlog処理系lに処理系台問を生成する質問
生成手段、11はProlog処理系lで処理系台結果
の文字列から個々のセルに対応する変数に分解する答え
展開手段である。
即ち、第4図に示すように−の規則又は知識ベースを個
々の引数や変数及び主語、述語毎にマトリックスのセル
に入れ、これらの順序や行列を予め定めてプログラムを
形成するようにしておく。
このようなプログラム(知識ベース)が長い処理プログ
ラム中でサブルーチンとして繰り返し実行されるときは
、直ちに当該マトリックスの各セルを表示手段4上で観
察できるようにしておく。
第2図は、この考案のスプレッドシートPr。
logプログラムデバッグ装置を使ったデバッグ作業に
おける処理の流れを示したフローチャートである。
第3図は、実施例として使用するリスト結合プログラム
の誤った例と、正しい例である。誤った例を編集手段5
を使用して内部データベース2にあらかじめ貯えておく
第4図は、表示手段4の表示例を示し質問の入力及び質
問に対する答えを出力する表である。
以下第2図のフローチャートに従って、実施例の作用、
動作の説明をする。
先ず、ステップSIでは実行モード切換手段6を使用し
て、Prolog処理系1の実行モードをトレース実行
モードに切換える。次いで、ステップS2では内部デー
タベース2からプログラム(知識)を読み込んで、質問
の入力及び質問に対する答えを表形式に表示する。次い
でステップS:lで入力手段3を使用して、表の枠(変
数相当部)に質問の具体的な値を入力する。
ここでは、予め設定した表の1行目に、左のセルから順
番に次の質問の要素を入力する。この表はオペレータが
見易いようにした形式上のものであり、以下の内部処理
によりPrologプログラムとして認識される。
append、<l、2.3>、<4.5>。
Zの如く各セルに値が入れられると、表の何行目。
何列目のセルであるかという情報から、そのセルが表示
すべき値が何という述語名の何番目の引数、であるかと
いう情報を、セル・変数変換手段7によって変数し、セ
ル・変数対応−時記憶手段9に貯える。
次いで、ステップS4では、質問は終了していないので
、表の1行目の左のセルから順番に、入力した質問の要
素を質問生成手段10によって次のようなプログラムの
文字列に変換し、Prolog処理系1に対して質問を
発行する。
append  (<l、  2.3>、<4.5>。
Z)。
ステップS5でProlog処理系1はこの質問を受は
取ると、内部データベース2のプログラムの中の事実、
規則のうちこの人力要素に対して、パターンマツチ可能
なものを読み込む。このパターンマツチは、ユニフィケ
ーションと呼ばれる処理で、二つの構造をその中に現わ
れる変数に適当な値を代入することにより、一つのパタ
ーンにすることである。ここでは、第3図のプログラム
のく誤った例〉の2行目の規則とユニフィケーションさ
れ、次のようになる。
append  (<l l<2.3>、<4.5>。
<112>)。
ユニフィケーションの結果は、セル・変D 対応−時記
憶手段9を参照することにより、変数を表示すべきセル
の位置を得る。次いで、ステップS6では、答え展開手
段11により答をセルにいれるために分解し変数・セル
変換手段8によって変数の値を得、表示手段4によって
表示する。
今の場合はパターンマツチングはステップS?で成功し
ているのでステップS8に進み、本体部があるので更に
ステップS9で本体部に質問を続行し、ステップS4に
戻る。
次いで、次の質問として規則の本体部の述語がProl
og処理系1に読み込まれる。再びステップS5でその
結果は次のようにユニフィケーションされる。
append  (<2.3>、T、Z)。
次いで、ステップS6で変数の値を表示手段4により表
示する。今回のパターンマツチングは成功していないの
でステップS、。に進む。
ここで、ユーザは第2引数が未定義状態のままであるこ
とがわかり、同時にこの規則の本体部の述語の第2引数
の変数に誤りがあったことがわかる。ステップShoで
ユーザは、編集手段5をつかって内部データベース2の
プログラムの修正をおこなう。そしてステップS、で、
修正後に前の質問を再度行う。修正されたプログラムが
、第3図の〈正しい例〉である。
なお、上記実施例では、実行モード切換手段6を、トレ
ース実行モードにしたものを示したが、実行モード切換
手段6を自動実行モードにすることにより、質問に対す
る答えのみを得る装置として使用することもできる。
〔発明の効果〕
以上説明したようにこの発明によれば、プロログプログ
ラムの知識を引数や変数毎に行列状に定めた各セルにセ
ル・変数変換手段により対応づけて割当て、この割当て
た行列状の表を記憶手段に記憶するとともに、表示手段
に表示し、該行列状の表中の各セルを夫々指定して入力
手段から具体的な値を入力し、変数・セル変換手段によ
り咳値を該当する変数に代入するとともに、表示手段に
更新して表示するようにしたので、同一の知識ベースが
長いプログラム上で繰り返し使用された場合、同一の行
列状セルを観察することにより、プログラムの文字列を
全て見ることなくデバッグが行える。このようにして、
プログラムのエラー発生箇所の発見が簡単にできるよう
になる。
【図面の簡単な説明】
第1図は本発明のプロログプログラムのデバッグ方式が
通用されるデバッグ装置の構成図、第2図は本発明の詳
細な説明するためのフローチャート、第3図はデバッグ
されるプログラムの例を示す図、第4図は本発明の表示
の例を示す図であり、第5図は従来のデバッグ装置の構
成図である。 1・・・・・・プロログ処理系、2・・・・・・内部デ
ータベース、3・・・・・・入力手段、4・・・・・・
表示手段、5・・・・・・編集手段、6・・・・・・切
換手段、7・・・・・・セル・変数変換手段、8・・・
・・・変数・セル変換手段、9・・・・・・記憶装置、
10・・・・・・質問生成手段、11・・・・・・答え
展開手段。 代理人  大君 増雄(ほか2名) 77、ト斧舌イ曙プコク“ラム 〈喜県フた4判〉 append  (X 、T 、Z) 。 〈正しいイジn〉 append  (<>  、 W  y W、)ap
pend (<HIX>、 Y、<HIz> ) ニー
append   (X、  Y  、  Z)。

Claims (1)

    【特許請求の範囲】
  1. プロログプログラムの知識を引数や変数毎に行列状に定
    めた各セルにセル・変数変換手段により対応づけて割当
    て、この割当てた行列状の表を記憶手段に記憶するとと
    もに、表示手段に表示し、該行列状の表中の各セルを夫
    々指定して入力手段から具体的な値を入力し、変数・セ
    ル変換手段により該値を該当する前記変数に代入すると
    ともに、前記表示手段に更新して表示するプログラムの
    デバッグ方式。
JP63115682A 1988-05-12 1988-05-12 プログラムのデバッグ方式 Pending JPH01284936A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63115682A JPH01284936A (ja) 1988-05-12 1988-05-12 プログラムのデバッグ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63115682A JPH01284936A (ja) 1988-05-12 1988-05-12 プログラムのデバッグ方式

Publications (1)

Publication Number Publication Date
JPH01284936A true JPH01284936A (ja) 1989-11-16

Family

ID=14668663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63115682A Pending JPH01284936A (ja) 1988-05-12 1988-05-12 プログラムのデバッグ方式

Country Status (1)

Country Link
JP (1) JPH01284936A (ja)

Similar Documents

Publication Publication Date Title
US4730315A (en) Diagrammatic method of testing program
US7505817B2 (en) Programming automation by demonstration
US4152765A (en) Programmer unit for N/C systems
US5557774A (en) Method for making test environmental programs
US5555179A (en) Control method and control apparatus of factory automation system
US5408587A (en) Expert system with a frame explanation system
JPH01284936A (ja) プログラムのデバッグ方式
JPH01298435A (ja) 自動プログラミング装置
JPH02128820A (ja) 射出成形技術支援エキスパートシステム
JPH0343802A (ja) ファジィコントローラ
JPH01108602A (ja) シーケンス制御装置
JPS5942884B2 (ja) シ−ケンス制御プログラムのデバツギング装置
JPH06266726A (ja) 生産計画作成装置
JPH01309146A (ja) プロセス監視装置及びそれに使用されるネットワーク図の作成方法
JP2533374B2 (ja) 制御プログラム作成方法
KR820002369B1 (ko) 프로세스 제어장치
JPH06138913A (ja) プログラマブルコントローラ
JPS60247706A (ja) 設備群制御装置のシステム状態トラツキング方式
JP2512215B2 (ja) プログラム作成装置
Brahan et al. A designer's consultant
JP3385790B2 (ja) 言語変換装置
JPS62157910A (ja) 数値制御装置の表示方法
JPH02148327A (ja) フローチャートによるlispプログラミング装置
JPS6381505A (ja) シ−ケンサシユミレ−タ
JPS62262107A (ja) エミユレ−タ用pioシミユレ−タ装置