JPH07334388A - Debugging device for function type information processor - Google Patents
Debugging device for function type information processorInfo
- Publication number
- JPH07334388A JPH07334388A JP6124945A JP12494594A JPH07334388A JP H07334388 A JPH07334388 A JP H07334388A JP 6124945 A JP6124945 A JP 6124945A JP 12494594 A JP12494594 A JP 12494594A JP H07334388 A JPH07334388 A JP H07334388A
- Authority
- JP
- Japan
- Prior art keywords
- function
- execution
- program
- language
- source program
- 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
Links
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、関数型言語のプログラ
ムのステップ実行を関数単位で行う関数型情報処理装置
のデバッグ装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a debugging device of a functional information processing device for performing step execution of a program of a functional language in units of functions.
【0002】[0002]
【従来の技術】関数型言語の基本構造は(F OP1
OP2 ・・・OPn)の形になっている。開き括弧
‘(’が関数開始子、閉じ括弧‘)’が関数終了子で、
‘F’は関数名、OP1,OP2,・・・OPnはその
関数のn個の引数である。なお、関数の引数は引数自体
を関数とすることもできる。2. Description of the Related Art The basic structure of a functional language is (F OP1
OP2 ... OPn). The opening parenthesis '(' is the function starter and the closing parenthesis ')' is the function ender,
“F” is a function name, and OP1, OP2, ... OPn are n arguments of the function. The argument of the function may be the function itself.
【0003】図7は関数型言語を処理する情報処理装置
とデバッグ装置の構成の一例を示す図である。情報処理
装置10は機械語メモリ1、データメモリ2、CPU3
とインターフェース部4から構成されている。データメ
モリ2は処理対象の関数型言語を記憶する。機械語メモ
リ1はこの処理対象の関数型言語を機械語に変換したプ
ログラムを記憶する。CPU3は機械語メモリ1に記憶
された機械語のプログラムの処理を行う。インターフェ
ース部4は情報処理装置10とデバッグ装置11との伝
送手段である。FIG. 7 is a diagram showing an example of the configurations of an information processing device and a debugging device for processing a functional language. The information processing device 10 includes a machine language memory 1, a data memory 2, a CPU 3
And an interface unit 4. The data memory 2 stores the functional language to be processed. The machine language memory 1 stores a program obtained by converting the functional language to be processed into a machine language. The CPU 3 processes a machine language program stored in the machine language memory 1. The interface unit 4 is a transmission unit between the information processing device 10 and the debug device 11.
【0004】デバッグ装置11はインターフェース部
5、入力装置6、表示装置7、CPU8とメモリ9から
構成されている。インターフェース部5は情報処理装置
10のインターフェース部4とデータの伝送を行う。入
力装置6はユーザからのデバッグのメニューの指定やブ
レイクポイントの指定等を入力する。表示装置7は入力
装置6からの指令に対する応答を表示し、また、ソース
プログラムおよびデバッグ時のメニューや実行中のデー
タの表示を行う。CPU8はメモリ9に記憶された制御
プログラムの実行や、情報処理装置10にユーザの作成
した関数型言語のプログラムを実行させて、デバッグ処
理を実行する。The debug device 11 comprises an interface section 5, an input device 6, a display device 7, a CPU 8 and a memory 9. The interface unit 5 transmits data with the interface unit 4 of the information processing device 10. The input device 6 inputs a debug menu specification, a breakpoint specification, and the like from the user. The display device 7 displays a response to a command from the input device 6, and also displays a source program, a menu at the time of debugging, and data being executed. The CPU 8 executes the control program stored in the memory 9 or causes the information processing apparatus 10 to execute the program of the functional language created by the user to execute the debugging process.
【0005】メモリ9は情報処理装置10のデータメモ
リ2や機械語メモリ1の代替として用いる場合もある。
また、デバッグ装置11はユーザが作成した関数型言語
を格納しておくための補助記憶装置が取り付けらる場合
もある。また、図7の例では情報処理装置10とデバッ
グ装置11とが分離されているが、インターフェース部
を介さず一体化している場合もある。The memory 9 may be used as a substitute for the data memory 2 and the machine language memory 1 of the information processing apparatus 10.
Further, the debug device 11 may be equipped with an auxiliary storage device for storing the functional language created by the user. Although the information processing device 10 and the debug device 11 are separated in the example of FIG. 7, they may be integrated without an interface unit.
【0006】ユーザがプログラムを作成した場合、机上
デバッグのみでは完成しないのが通常で、ユーザは上記
のようなデバッグ装置を用いデバッグを行ってプログラ
ムを完成させる。When a user creates a program, it is usually not completed only by desk debugging, and the user completes the program by performing debugging using the above-described debugging device.
【0007】関数型言語を処理する情報処理装置のデバ
ッグ方式としては、従来、後述の2通りの方法がとられ
てきた。第1の方法は、ユーザがプログラム中で予め特
定の関数を指定し、デバッグ装置11がその関数を実行
する時に停止信号を発生させて処理を中断、あるいは中
断しているのを再開させる。これによってユーザはプロ
グラム中の指定された関数で情報処理装置10を止め、
中間結果を確認することができる。As a debugging method for an information processing apparatus that processes a functional language, the following two methods have been conventionally used. In the first method, the user specifies a specific function in the program in advance, and when the debug device 11 executes the function, a stop signal is generated to interrupt the process or restart the interrupted process. As a result, the user stops the information processing device 10 with the designated function in the program,
You can check the intermediate results.
【0008】第2の方法は、引数が関数の時に引数とな
っている関数の処理結果を知りたい場合は、この関数の
処理結果をメモリに記憶させる関数をプログラム中に書
き込み、デバッグ装置が引数を含んだ関数を実行し、そ
の実行後に停止させて、メモリに記憶された内容から引
数である関数の処理結果を確認している。これは引数が
関数の場合、デバッグ装置はこの引数で実行を停止させ
ることができないことによるためである。In the second method, when it is desired to know the processing result of a function whose argument is a function when the argument is a function, a function for storing the processing result of this function in the memory is written in the program, and the debugging device makes the argument. The function including the is executed and then stopped, and the processing result of the function which is the argument is confirmed from the contents stored in the memory. This is because if the argument is a function, the debug device cannot stop execution with this argument.
【0009】[0009]
【発明が解決しようとする課題】第1の方法では、ユー
ザはプログラム中の任意の関数で停止させることができ
る。しかし、プログラムの動きを確認するためには、デ
バッグを行うユーザがプログラムの動きを予め知ってい
る必要があり、プログラムの停止位置を順次変更しなが
ら実行する必要がある。プログラムの実行を細かく追う
と、中断させるための指定あるいは中断の取消を頻繁に
行わなければならず、デバッグ作業が非常に煩わしくな
るという問題があった。In the first method, the user can stop at any function in the program. However, in order to confirm the movement of the program, the user who performs debugging needs to know the movement of the program in advance, and it is necessary to execute the program while sequentially changing the stop position of the program. If the execution of the program is followed in detail, there is a problem in that it is necessary to frequently specify or cancel the interruption so that the debugging work becomes very troublesome.
【0010】さらに、関数型言語は関数内で引数となっ
ている関数の処理順序が定義されておらず、その順序は
処理系に依存しているため、この方法でプログラムの完
全な実行順序を確認することはできないという問題があ
った。Furthermore, in a functional language, the processing order of the functions that are arguments in the function is not defined, and that order depends on the processing system. Therefore, the complete execution order of the programs is determined by this method. There was a problem that it could not be confirmed.
【0011】また、関数型言語は、たとえば引数が関数
の場合、引数の関数の処理結果が関数の値として、その
外側の関数でそのまま使用されることがある。このた
め、ユーザは引数の関数の処理結果を確認する手段がな
く、引数の関数の処理結果を確認するためには第2の方
法を用いなければならなかった。Further, in the functional language, for example, when the argument is a function, the processing result of the function of the argument may be used as it is by the function outside thereof as the value of the function. For this reason, the user has no means for confirming the processing result of the argument function, and must use the second method to confirm the processing result of the argument function.
【0012】しかし、第2の方法は、ユーザが処理結果
を知ろうとする関数の結果を、メモリに書き出す関数を
プログラム中に書き込む必要があるため、本来の処理に
関係しない関数がプログラムに書き込まれることになり
プログラムが冗長になるという問題があった。また、デ
バッグが終了し、冗長なプログラムから不要な関数を削
除する際にミスが発生する可能性もあった。However, in the second method, since it is necessary to write in the program a function for writing the result of the function for which the user wants to know the processing result to the memory, a function not related to the original processing is written in the program. There was a problem that the program became redundant. In addition, there is a possibility that a mistake may occur when unnecessary functions are deleted from a redundant program after debugging is completed.
【0013】本発明は、関数型言語で作成されたプログ
ラムのデバッグを簡単化するデバッグ装置を目的とす
る。An object of the present invention is to provide a debugging device that simplifies the debugging of a program created in a functional language.
【0014】[0014]
【課題を解決するための手段】図1は本発明の原理ブロ
ック図である。本発明は関数型言語を処理する情報処理
装置のデバッグ装置に係るものである。FIG. 1 is a block diagram showing the principle of the present invention. The present invention relates to a debug device of an information processing device that processes a functional language.
【0015】位置情報テーブル15は、前記関数言語で
記述されたソースプログラム中の関数開始子の位置と関
数終了子との位置に対応して実行形式の位置を記憶す
る。言語翻訳手段13は、前記ソースプログラムを実行
形式のプログラムに変換してプログラムメモリ12に格
納する際に、前記対応関係を前記位置情報テーブル15
に格納する。The position information table 15 stores the position of the execution format corresponding to the positions of the function starter and the function ender in the source program described in the functional language. The language translation unit 13 converts the correspondence relationship into the position information table 15 when converting the source program into an executable program and storing it in the program memory 12.
To store.
【0016】ステップ実行手段14は、前記位置情報テ
ーブル15を参照して、実行形式のプログラムを前記関
数単位でステップ実行する。表示手段16は前記ステッ
プ実行手段14がステップ実行する際に、実行位置を関
数単位で表示する。さらにステップ実行の処理結果の関
数値を読み、前述実行位置と共に関数値を表示する。The step executing means 14 refers to the position information table 15 and executes the program in the execution format step by step on a function basis. The display unit 16 displays the execution position in function units when the step execution unit 14 executes the steps. Further, the function value of the processing result of step execution is read, and the function value is displayed together with the execution position.
【0017】[0017]
【作用】言語翻訳手段13は入力したソースプログラム
を翻訳した際、実行形式プログラムをプログラムメモリ
12に格納すると共に、関数言語に係る関数開始子と関
数終了子とに対する実行形式のプログラム位置の対応関
係を位置情報テーブル15に格納する。When the language translation means 13 translates the input source program, it stores the execution format program in the program memory 12 and also associates the position of the execution format program with the function starter and function end element related to the functional language. Is stored in the position information table 15.
【0018】ステップ実行手段14は、プログラムメモ
リ12内に格納されている実行形式プログラムを実行す
る際に位置情報テーブル15を参照し、関数単位で実行
を停止する。そして、表示手段16で実行位置やその得
られた関数値を表示する。The step executing means 14 refers to the position information table 15 when executing the executable program stored in the program memory 12, and stops the execution in function units. Then, the execution position and the obtained function value are displayed on the display means 16.
【0019】実行形式プログラムの格納位置と関数開始
子、終了子の位置関係を位置情報テーブル15に格納し
てあるので、関数のステップ実行に係る関数値をステッ
プ単位で得るとともに表示することができる。Since the positional relationship between the storage position of the executable program and the function starter and ender is stored in the position information table 15, the function value related to the step execution of the function can be obtained and displayed in steps. .
【0020】[0020]
【実施例】本発明の関数型言語を処理する情報処理装置
のデバッグ装置の実施例である図2〜図6を用いて以下
詳細に説明する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A detailed description will be given below with reference to FIGS. 2 to 6 which are embodiments of a debugging device of an information processing device for processing a functional language according to the present invention.
【0021】図2は、関数開始子と関数終了子のソース
プログラムでの行番号と桁位置、そして関数開始子と関
数終了子に対応した機械語アドレスの情報を1レコード
とし、ソースプログラム中の関数と同数のレコードから
なるテーブルを作成するフローチャートである。このテ
ーブルは、プログラミング装置が関数型言語を機械語、
すなわち言語翻訳手段13が実行形式プログラムに変換
する際に作成される。In FIG. 2, the line number and column position in the source program of the function starter and the function endator, and the machine language address information corresponding to the function starter and the function ender are set as one record, and the source program in the source program is stored. It is a flowchart which creates the table which consists of the same number of records as a function. In this table, the programming device uses a functional language as a machine language,
That is, it is created when the language translation means 13 converts it into an executable program.
【0022】ここで、プログラミング装置はソースプロ
グラムを作成あるいは編集したり、作成したソースプロ
グラムを機械語に変換する装置である。なお、デバッグ
装置がプログラミング装置を兼ねる場合もある。Here, the programming device is a device for creating or editing a source program and converting the created source program into a machine language. The debug device may also function as the programming device.
【0023】図2のルーチンは、ソースプログラムから
各関数の関数開始子と関数終了子の行と桁位置のレコー
ドを作成し、全関数のレコードのテーブルを作成する前
処理と、次に、前処理で作成されたレコードを参照しな
がら関数を機械語に変換し、変換された機械語からレコ
ード内に関数開始子と関数終了子とに対応する機械語ア
ドレスを追加格納してレコードを完成させ、全関数に対
し機械語アドレスを格納してテーブルを作成する後処理
とより成る。The routine of FIG. 2 creates a record of the row and column positions of the function starter and function ender of each function from the source program, and creates a table of the records of all the functions. The function is converted into a machine language while referencing the record created by the process, and the machine language address corresponding to the function starter and function endator is additionally stored in the record from the converted machine language to complete the record. , Post-processing of storing machine language addresses for all functions and creating a table.
【0024】図2のルーチンに入ると、まずステップS
31でソースプログラムの1キャラクタが最終を示すコ
ードであるかを確認する。ソースプログラムの1キャラ
クタが最終を示すコードでないならば(ステップS3
1,N)、ソースプログラム中の1キャラクタをステッ
プS32で読み出し、その読み出されたプログラム中の
1キャラクタが関数の閉じ括弧(関数終了子)であるか
確認する。この1キャラクタが閉じ括弧でないならば
(ステップS33,N)、ステップS31で再度プログ
ラムの最終であるかを判別し、さらにソースプログラム
中の1キャラクタをステップS31で読み出す。そし
て、ステップS32とステップS33により、読み出さ
れた1キャラクタが閉じ括弧になるまでソースプログラ
ム中のキャラクタを読み出す。When the routine of FIG. 2 is entered, first, step S
At 31 it is confirmed whether one character of the source program is a code indicating the end. If one character of the source program is not the code indicating the end (step S3)
1, N), one character in the source program is read in step S32, and it is confirmed whether the one character in the read program is a closing bracket (function terminator) of a function. If this one character is not a closing parenthesis (step S33, N), it is again determined in step S31 whether the program is the last one, and one character in the source program is read in step S31. Then, in steps S32 and S33, the characters in the source program are read until the read one character becomes a closing parenthesis.
【0025】プログラム中の1キャラクタが閉じ括弧を
検出した場合は(ステップS33,Y)、ステップS3
4でこの閉じ括弧に対応する開き括弧(関数開始子)を
検索する。そして、開き括弧に対応する括弧を検出する
と、ステップS35で開き括弧のソースプログラム中で
の行番号と桁位置、および閉じ括弧のソースプログラム
中での行番号と桁位置を1レコードとしてテーブル中に
書き込む。この処理により、1つの関数の関数開始子と
関数終了子がテーブルに登録される。1レコードの書き
込みが終了すると、ステップS31に戻る。When one character in the program detects a closing bracket (Y in step S33), step S3
In step 4, the opening parenthesis (function starter) corresponding to this closing parenthesis is searched. When the parenthesis corresponding to the opening parenthesis is detected, the line number and the digit position in the source program of the opening parenthesis and the line number and the digit position in the source program of the closing parenthesis are recorded in the table as one record in step S35. Write. By this processing, the function starter and function ender of one function are registered in the table. When the writing of one record is completed, the process returns to step S31.
【0026】前述した動作をソースプログラムの最終を
示すコードが確認されるまで繰り返す。この繰り返しに
より全部の関数のレコードがテーブルに書き込まれる。
ソースプログラムの最終を示すコードが確認されると
(ステップS31,Y)、ここで前処理か終了する。続
いてステップS36でソースプログラム中の位置を示す
ポインタを先頭に戻す。なお、ソースプログラムの最後
には例えばEOF等のコードが格納されている。The above operation is repeated until the code indicating the end of the source program is confirmed. By repeating this, the records of all the functions are written in the table.
When the code indicating the end of the source program is confirmed (step S31, Y), the preprocessing is ended here. Then, in step S36, the pointer indicating the position in the source program is returned to the beginning. A code such as EOF is stored at the end of the source program.
【0027】ステップS36の処理が終了すると後処理
に入り、ソースプログラムをCPU(マイクロプロセッ
サ)が実行できる機械語にすなわち実行形式のプログラ
ムに変換すると共に、関数の開き括弧と閉じ括弧に対応
する機械語アドレスをレコードに格納する。When the processing of step S36 is completed, post-processing is started, and the source program is converted into a machine language that can be executed by the CPU (microprocessor), that is, an executable program, and a machine corresponding to the opening parenthesis and closing parenthesis of the function. Store the word address in the record.
【0028】先ず、ステップS37でソースプログラム
の1キャラクタが最終を示すコードかを確認する。ソー
スプログラムの1キャラクタが最終を示すコードでない
ならば(ステップS37,N)、前処理で作成されたテ
ーブルからソースプログラムの行、桁データが格納され
ている1番目のレコードをステップS38で読み出す。
このレコードは1つの関数に対応し、さらに開き括弧と
閉じ括弧の行番号および桁位置の位置情報を持っている
ので、ステップS39でこの位置情報からソースプログ
ラム中の1つの関数を読み出す。そして、ステップS4
0でこの読み出した関数の機械語を生成する。First, in step S37, it is confirmed whether one character of the source program is a code indicating the end. If one character of the source program is not the code indicating the end (step S37, N), the first record in which the row and digit data of the source program are stored is read from the table created in the preprocessing in step S38.
Since this record corresponds to one function and further has the positional information of the line number and the column position of the opening parenthesis and the closing parenthesis, one function in the source program is read from this positional information in step S39. And step S4
At 0, the machine language of this read function is generated.
【0029】ステップS41で1つの関数を機械語に生
成しメモリに展開した時の最初の機械語アドレスが開き
括弧に対応し、展開した時の最後の機械語アドレスが閉
じ括弧に対応するので、ステップS41でそれに対応す
る機械語の開始アドレスと終了アドレスとをテーブルの
1レコードに追加格納する。これにより、1番目のレコ
ードがテーブルに作成される。In step S41, the first machine language address when one function is generated in the machine language and expanded in the memory corresponds to the opening parenthesis, and the last machine word address when expanding corresponds to the closing parenthesis. In step S41, the start address and end address of the corresponding machine language are additionally stored in one record in the table. As a result, the first record is created in the table.
【0030】1レコードが作成されると、ステップS3
7に戻り、ソースプログラムの1キャラクタが最終を示
すコードか確認する。ソースプログラムの1キャラクタ
が最終を示すコードでないならば(ステップS37,
N)、前述したと同様に、再度ステップS38で前処理
で作成されたテーブルからソースプログラムの行、桁デ
ータが格納されている2番目のレコードを読み出す。そ
して、レコードが読み出されるとステップS39で1番
目のレコードと同様に1つの関数を読み出し、この関数
をステップS40で機械語に変換して機械語を生成し、
その機械語から開き括弧と閉じ括弧に対応する機械語ア
ドレスをステップS41で2番目のレコードに格納する
(ステップS41)。When one record is created, step S3
Returning to 7, it is confirmed whether one character of the source program is a code indicating the end. If one character of the source program is not the code indicating the end (step S37,
N) Similarly to the above, the second record in which the row and digit data of the source program are stored is read again from the table created in the preprocessing in step S38. Then, when the record is read, one function is read in the same manner as the first record in step S39, and this function is converted into a machine language in step S40 to generate a machine language,
The machine language address corresponding to the opening parenthesis and the closing parenthesis from the machine language is stored in the second record in step S41 (step S41).
【0031】このように、ソースプログラムの最終を示
すコードが確認されるまでステップS37〜ステップS
41の処理を繰り返して全関数の機械語を生成し、また
レコードを作成してテーブルを完成させる。Thus, steps S37 to S are executed until the code indicating the end of the source program is confirmed.
The processing of 41 is repeated to generate the machine language of all functions, and records are created to complete the table.
【0032】ソースプログラムの最終を示すコードが確
認されると(ステップS37,Y)全処理を終了(ステ
ップS42)する。前述した処理により作成されたテー
ブルは、レコードの閉じ括弧をキーとして検索し、その
閉じ括弧に対応する開き括弧を検索しながらテーブルを
作成することにより、テーブルには閉じ括弧の出てくる
順番で開き括弧と閉じ括弧の対が登録される。これによ
り、例えば関数に3つの引数A1,A2,A3があると
し、この引数全てが関数だとすると、テーブルは関数A
1、関数A2、関数A3の順にレコードが生成されて登
録される。したがって、デバッグ装置が、ステップ実行
を行う際に、関数A1、関数A2、関数A3の順番に実
行するため、プログラムの流れがわかりやすく非常にデ
バッグしやすくなる。When the code indicating the end of the source program is confirmed (step S37, Y), all the processes are finished (step S42). The table created by the above process is searched by using the closing bracket of the record as a key, and the table is created while searching for the opening bracket corresponding to the closing bracket, so that the closing bracket appears in the table in the order in which it appears. A pair of open and close brackets is registered. Thus, for example, if the function has three arguments A1, A2, A3, and if all these arguments are functions, the table is the function A
Records are generated and registered in the order of 1, function A2, and function A3. Therefore, since the debug device executes the function A1, the function A2, and the function A3 in this order when performing the step execution, the flow of the program is easy to understand and it is very easy to debug.
【0033】図3は図2の処理フローの実行により作成
されるソースプログラムの括弧位置と機械語アドレスの
対応のテーブルで、以下にテーブルの構成について説明
する。FIG. 3 is a table showing correspondence between parenthesis positions and machine language addresses of a source program created by executing the processing flow of FIG. 2. The table structure will be described below.
【0034】このテーブルは、関数開始子および関数終
了子のソースプログラムの括弧と機械アドレスの位置情
報とを1対1に対応させて1レコードとし、関数開始子
と関数終了子の組み合わせの数だけレコードが作成され
る。In this table, the parentheses of the source program of the function starter and the function endator are associated with the position information of the machine address on a one-to-one basis to make one record. A record is created.
【0035】1レコードは、1つの関数における関数開
始子の開き括弧‘(’のソースプログラムの行番号及び
桁位置と、ソースプログラムが機械語に変換された時の
開き括弧‘(’の位置の機械語アドレスと、関数終了子
の閉じ括弧‘)’のソースプログラムの行番号及び桁位
置と、閉じ括弧‘)’の位置の機械語のアドレスの6つ
の要素から構成されている。One record consists of the opening parenthesis '(' of the source program of the function starter in one function and the line number and column position of the source program and the opening parenthesis '(' of the position when the source program is converted into a machine language). It consists of six elements: the machine language address, the line number and column position of the source program of the closing parenthesis ')' of the function terminator, and the machine language address of the closing parenthesis ')' position.
【0036】デバッグ装置が関数を実行する時に、1レ
コードが1つの関数に対応しているので、CPU(マイ
クロプロセッサ)は関数開始子の機械語アドレスから実
行を始め、関数終了子の機械語アドレスまで実行するこ
とにより、1つの関数を実行することができる。Since one record corresponds to one function when the debug device executes the function, the CPU (microprocessor) starts execution from the machine language address of the function starter and the machine language address of the function endator. By executing up to, one function can be executed.
【0037】図4は作成したテーブルを使用して、デバ
ッグ装置が情報処理装置にステップ実行をさせる処理の
フローチャートである。図4の処理フローにより1回の
ステップ実行が行われる。FIG. 4 is a flowchart of a process in which the debug device causes the information processing device to perform step execution using the created table. One step execution is performed according to the processing flow of FIG.
【0038】ユーザがステップ実行を選択するとこのル
ーチンに入る。まず、デバッグ装置の処理は情報処理装
置から現在の機械語上での停止位置の機械語アドレスを
読み出す(ステップS61)。読み出されたステップ実
行開始の機械語アドレスとテーブル内の閉じ括弧の機械
語アドレスをステップS62で設定する。すなわちテー
ブルから現在の停止位置より後ろにあり、最も近い閉じ
括弧のレコードに対する機械語アドレスをステップ実行
の新たな停止位置とする。そして、ステップS64でこ
のときのレコードの開き括弧(関数開始子)および閉じ
括弧(関数終了子)のソースプログラムの行番号と桁位
置をメモリのある領域に保存する。This routine is entered when the user selects stepping. First, the processing of the debug device reads the machine language address of the current stop position on the machine language from the information processing device (step S61). In step S62, the read machine language address for starting step execution and the machine language address for the closing parenthesis in the table are set. That is, the machine language address for the record of the closest closing bracket, which is after the current stop position in the table, is set as the new stop position for step execution. Then, in step S64, the line number and the column position of the source program of the opening parenthesis (function starter) and the closing parenthesis (function endator) of the record at this time are stored in an area of the memory.
【0039】次に情報処理装置に対して、ステップS6
4で、現在の停止位置から機械語の1コードずつの実行
を行わせ、その停止位置がステップ実行の新たな停止位
置を越えるまで機械語の1コードの実行を順々に行う。
ステップS61,S62,S63,S64の順次の処理
の実行により、1つの関数が実行され、処理結果の関数
値が情報処理装置の特定のメモリ領域に保存される。Next, for the information processing apparatus, step S6
At 4, the machine code is executed one code at a time from the current stop position, and one machine code is executed in sequence until the stop position exceeds a new stop position for step execution.
One function is executed by sequentially executing the processing of steps S61, S62, S63, and S64, and the function value of the processing result is stored in a specific memory area of the information processing device.
【0040】つづいてステップS64で保存しておいた
関数開始子と関数終了子の各々のソースプログラムの行
番号と桁位置を読み出し、これらの位置を用いてソース
画面に表示されているソースプログラムの実行した関数
の強調表示を行う。これにより、ユーザは実行した関数
が一目でわかる。Subsequently, the line numbers and column positions of the source programs of the function starter and the function ender stored in step S64 are read out, and these positions are used to store the source program displayed on the source screen. Highlight the executed function. This allows the user to see at a glance which function has been executed.
【0041】そして、ステップS66で実行した関数の
処理結果の関数値を情報処理装置の特定のメモリ領域か
らから読み出し、表示装置の画面上の所定領域に関数値
を表示する(ステップS67)。Then, the function value of the processing result of the function executed in step S66 is read from the specific memory area of the information processing apparatus, and the function value is displayed in a predetermined area on the screen of the display device (step S67).
【0042】以上の如くステップ実行が選択されると、
デバッグ装置は一つの関数をステップ実行し、レコード
の関数開始子と関数終了子の位置情報を用いて、画面上
に表示されているソースプログラムの実行した関数を強
調表示し、実行した関数の関数値を画面の所定位置に表
示する。When step execution is selected as described above,
The debug device step-executes one function, highlights the executed function of the source program displayed on the screen using the position information of the function starter and function ender of the record, and executes the function of the executed function. Display the value in place on the screen.
【0043】ステップ実行が選択されていて、さらにス
テップ実行を連続的に選択すると、ユーザが停止位置を
指定しなくても、連続的なステップ実行が図4の処理フ
ローを実行することにより関数単位で行われる。それに
ともない画面上で関数単位の強調表示がステップ実行に
したがって移動する。If step execution is selected and further step execution is continuously selected, continuous step execution executes the processing flow of FIG. Done in. Along with that, the highlighting of each function moves on the screen as the step is executed.
【0044】図5は本発明によるステップ実行時のソー
ス画面の表示の変化を示す図である。ここで、ソース画
面は、デバッグ装置が関数型言語をデバッグする際に、
ソース画面内のソースプログラムのみを取り出した図で
ある。FIG. 5 is a diagram showing changes in the display of the source screen during step execution according to the present invention. Here, the source screen, when the debug device debugs the functional language,
It is the figure which extracted only the source program in a source screen.
【0045】前述したように、閉じ括弧をキーとして検
索しているため、テーブル内のレコードは関数K71,
関数K72,関数K73,関数K74,関数K75の順
になっている。ステップ実行が連続的に選択されると、
ステップ実行はテーブルに記憶されている順番に、関数
K71,関数K72,関数K73,関数K74,関数K
75が関数単位で順々に実行される。その実行にともな
って、画面上では関数K71,関数K72,関数K7
3,関数K74,関数K75の順に強調表示されてい
る。As described above, since the closing parenthesis is used as a key for retrieval, the record in the table is the function K71,
The order is function K72, function K73, function K74, and function K75. When step execution is continuously selected,
Step execution is performed in the order stored in the table in the order of function K71, function K72, function K73, function K74, function K.
75 are sequentially executed in function units. Along with the execution, the function K71, the function K72, and the function K7 are displayed on the screen.
3, the function K74 and the function K75 are highlighted in this order.
【0046】このようにステップ実行が関数単位で連続
して実行されるため、ユーザは次の停止位置を指定する
必要がなく、また、ステップ実行の経過がわかりやすく
表示されるので、デバッグを簡単に行うことができる。As described above, since step execution is continuously executed in function units, the user does not need to specify the next stop position, and the progress of step execution is displayed in an easy-to-understand manner, so debugging is easy. Can be done.
【0047】図6は本発明によるデバッグ装置のステッ
プ実行時のソース画面の図である。図6のソース画面で
は、デバッグ装置のメニュー、関数型言語のソースプロ
グラム、ステップ実行の状況、実行された関数の関数値
等が表示されている。画面の上部にはデバッグ装置のメ
ニューとしてファイル(F)、編集(E)、操作
(O)、表示(D)、検索(S)、試験(M)が表示さ
れ、特に図示しない入力装置の専用キー、あるいはメニ
ューに対応させたファンクションキー等によって指定さ
れる。FIG. 6 is a diagram of a source screen during step execution of the debug device according to the present invention. In the source screen of FIG. 6, a menu of the debug device, a source program of a functional language, the status of step execution, the function value of the executed function, etc. are displayed. File (F), edit (E), operation (O), display (D), search (S), and test (M) are displayed on the upper part of the screen as a menu of the debug device, and are exclusively for an input device not shown. It is designated by a key or a function key corresponding to the menu.
【0048】図6におけるソース画面は、ユーザがステ
ップ実行を選択して関数K84を実行した後、関数K8
5の引数の関数K86を実行したことを表している。こ
の実行した関数K86のソースプログラムの表示を反転
し、強調表示している。ここで、関数K86の前に実行
した関数K84の強調表示は、関数K86を強調表示す
る前に解除している。これにより、実行した関数を関数
単位で表示するとともに強調しているのでデバッグにか
かる動作が非常にわかりやすくなる。なお、実行した関
数を強調表示する方法は反転表示だけでなく、下線を付
ける、色を変える、ブリンクをする等、いろいろな表示
方法がある。The source screen in FIG. 6 shows the function K8 after the user selects step execution and executes the function K84.
This indicates that the function K86 having the argument of 5 is executed. The display of the executed source program of the function K86 is highlighted and highlighted. Here, the highlighted display of the function K84 executed before the function K86 is canceled before the highlighted display of the function K86. As a result, the executed function is displayed and highlighted for each function, so the operation related to debugging becomes very easy to understand. The method of highlighting the executed function is not limited to reverse display, and there are various display methods such as underlining, changing colors, and blinking.
【0049】また、関数K86の処理結果の関数値を小
ウィンドウの関数値の領域K81に表示する。領域K8
1は関数K86の関数値‘1234’の表示用である。
これにより、引数である関数K86の処理結果をメモリ
に書き出す関数をプログラム中に書き込む必要がなくな
る。なお、この小ウィンドウにはステップ実行中を表す
ため、‘ステップ実行中’が表示されている。さらに次
の関数K87を実行するための‘実行’あるいはステッ
プ実行を中止するための‘取消’を表示し、図示しない
入力装置の指定されたキーにより選択される。ユーザは
‘実行’を連続的に指定することにより、デバッグ装置
では前述した図4の処理フローの実行により関数単位の
ステップ実行を連続して行い、順次実行した関数の処理
結果の関数値を自動的に関数値の領域K81に表示す
る。Further, the function value of the processing result of the function K86 is displayed in the function value area K81 of the small window. Area K8
1 is for displaying the function value '1234' of the function K86.
This eliminates the need to write a function for writing the processing result of the function K86, which is an argument, in the memory in the program. It should be noted that in this small window, "step being executed" is displayed to indicate that the step is being executed. Further, "execution" for executing the next function K87 or "cancel" for stopping the step execution is displayed, and is selected by a designated key of an input device (not shown). By continuously specifying'execution 'by the user, the debug device continuously performs step execution in function units by executing the processing flow of FIG. 4 described above, and automatically calculates the function value of the processing result of the sequentially executed functions. It is displayed in the function value area K81.
【0050】なお、ソース画面例では関数の処理結果の
表示には小ウィンドウを用いているが、小ウィンドウで
なく、ソース画面中の特定の領域を使用してもよい。Although the small window is used to display the processing result of the function in the source screen example, a specific area in the source screen may be used instead of the small window.
【0051】[0051]
【発明の効果】本発明により、ステップ実行を行う際
に、ユーザが次の停止位置を指定しなくても、デバッグ
装置はプログラム中の関数を関数単位で順次実行し、ソ
ースプログラムが表示された画面上でステップ実行の経
過をユーザにわかりやすく表示するとともに、順次実行
した関数の処理結果の関数値を自動的に所定位置に順次
表示する。このようにステップ実行中の関数の処理結果
の関数値を関数単位で表示するため、プログラムをデバ
ッグ用に書き替える必要がなく、開始型言語で作成され
たプログラムのデバッグを簡単に行うことができる。According to the present invention, when step execution is performed, the debug device sequentially executes the functions in the program in function units, and the source program is displayed even if the user does not specify the next stop position. The progress of the step execution is displayed on the screen so that the user can easily understand it, and the function values of the processing results of the sequentially executed functions are automatically and sequentially displayed at predetermined positions. In this way, since the function value of the processing result of the function during step execution is displayed for each function, it is not necessary to rewrite the program for debugging, and it is possible to easily debug a program created in the start-type language. .
【図面の簡単な説明】[Brief description of drawings]
【図1】本発明の原理ブロック図である。FIG. 1 is a principle block diagram of the present invention.
【図2】テーブル作成のフローチャートである。FIG. 2 is a flowchart for creating a table.
【図3】ソースプログラムの括弧位置と機械語アドレス
の対応のテーブルの図である。FIG. 3 is a diagram of a table in which parenthesis positions in a source program correspond to machine language addresses.
【図4】ステップ実行のフローチャートである。FIG. 4 is a flowchart of step execution.
【図5】本発明によるステップ実行時のソース画面の表
示の変化を示す図である。FIG. 5 is a diagram showing a change in display of a source screen during step execution according to the present invention.
【図6】本発明によるステップ実行時のソース画面の図
である。FIG. 6 is a diagram of a source screen during step execution according to the present invention.
【図7】関数型言語を処理する情報処理装置とデバッグ
装置の構成の一例を示す図である。FIG. 7 is a diagram showing an example of configurations of an information processing device and a debugging device that process a functional language.
12 プログラムメモリ 13 言語翻訳手段 14 ステップ実行手段 15 位置情報テーブル 16 表示手段 12 Program Memory 13 Language Translation Means 14 Step Execution Means 15 Position Information Table 16 Display Means
Claims (3)
バッグ装置において、 前記関数型言語で記述されたソースプログラム中の関数
開始子の位置と関数終了子の位置に対応して、実行形式
の位置の対応関係を記憶する位置情報テーブル(15)
と、 前記ソースプログラムを実行形式のプログラムに変換し
てプログラムメモリ(12)に格納する際に前記対応関
係を前記位置情報テーブル(15)に格納する言語翻訳
手段(13)と、 前記位置情報テーブル(15)を参照して、実行形式の
プログラムを前記関数単位でステップ実行するステップ
実行手段(14)とを有することを特徴とする関数型情
報処理装置のデバッグ装置。1. A debugging device of an information processing device for processing a functional language, wherein an execution form of an execution format is associated with a position of a function starter and a position of a function ender in a source program written in the functional language. Position information table (15) that stores the positional correspondence
A language translation means (13) for storing the correspondence in the position information table (15) when the source program is converted into an executable program and stored in a program memory (12), and the position information table (15) A debug device for a functional information processing device, comprising: step execution means (14) for stepwise executing an executable program in the function unit.
数開始子の位置と前記関数終了子の位置と前記実行形式
の位置の情報を用いてステップ実行する際に、実行位置
を関数単位で表示する表示手段(16)を有することを
特徴とする請求項1記載の関数型情報処理装置のデバッ
グ装置。2. When the step execution means (14) performs step execution using the information of the position of the function starter, the position of the function ender, and the position of the execution format, the execution position is displayed in function units. The debug device for a functional information processing apparatus according to claim 1, further comprising a display means (16) for performing the operation.
数開始子の位置と前記関数終了子の位置と前記実行形式
の位置の情報を用いてステップ実行する際に、前記情報
処理装置からステップ実行の処理結果の関数値を読み、
実行位置と共に前記関数値を表示する表示手段(16)
を有することを特徴とする請求項1記載の関数型情報処
理装置のデバッグ装置。3. The step execution from the information processing device when the step execution means (14) performs step execution using the information of the position of the function starter, the position of the function ender and the position of the execution format. Read the function value of the processing result of
Display means (16) for displaying the function value together with the execution position
The debugging device for a functional information processing device according to claim 1, further comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6124945A JPH07334388A (en) | 1994-06-07 | 1994-06-07 | Debugging device for function type information processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6124945A JPH07334388A (en) | 1994-06-07 | 1994-06-07 | Debugging device for function type information processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07334388A true JPH07334388A (en) | 1995-12-22 |
Family
ID=14898091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6124945A Withdrawn JPH07334388A (en) | 1994-06-07 | 1994-06-07 | Debugging device for function type information processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07334388A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012104065A (en) * | 2010-11-12 | 2012-05-31 | Fuji Electric Co Ltd | Language conversion apparatus and language conversion program |
-
1994
- 1994-06-07 JP JP6124945A patent/JPH07334388A/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012104065A (en) * | 2010-11-12 | 2012-05-31 | Fuji Electric Co Ltd | Language conversion apparatus and language conversion program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02272645A (en) | Method for supporting program debugging | |
JPH08137678A (en) | Program generating method | |
JPH07334388A (en) | Debugging device for function type information processor | |
US5448736A (en) | Method for generating a program comprised of such a portion of a series of operator-inputted commands as will produce an operator-selected one of a number of results | |
JPH0934698A (en) | Software generating method and software developing and supporting method | |
JPH02151908A (en) | Numerical controller with simulation function | |
JPH0528088A (en) | Method for automatically generating hardware constitution information | |
JPH02275539A (en) | Debugging system | |
JP2570593B2 (en) | Debug device | |
JP2000207085A (en) | On-demand interface device and computer readable recording medium | |
JP2752827B2 (en) | Debugger processing method | |
JPH05150970A (en) | Program generation supporting device | |
JP3190172B2 (en) | Numerical control unit | |
JP2860054B2 (en) | Program debugging device | |
JPH08297601A (en) | Device and method for file management | |
JPH01307844A (en) | Editing device | |
JPH103390A (en) | Table managing system and preparing method for the same | |
JPH0264747A (en) | Function trace/step trace switching control system | |
JPS63196939A (en) | Initial line set processing system for screen editor | |
JPH1069381A (en) | Program generation support device | |
JPH06250881A (en) | Symbolic debugging system | |
JPH0887403A (en) | Program development support device | |
JPH07210414A (en) | Test supporting system | |
JPH04318663A (en) | Editor | |
JPH02267671A (en) | Retrieval display device for table format database |
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: 20010904 |