JPS6280739A - 関数型情報処理装置のデバツグ制御方式 - Google Patents
関数型情報処理装置のデバツグ制御方式Info
- Publication number
- JPS6280739A JPS6280739A JP60221464A JP22146485A JPS6280739A JP S6280739 A JPS6280739 A JP S6280739A JP 60221464 A JP60221464 A JP 60221464A JP 22146485 A JP22146485 A JP 22146485A JP S6280739 A JPS6280739 A JP S6280739A
- Authority
- JP
- Japan
- Prior art keywords
- function
- stack
- frame
- execution
- debugging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
関数型言語によるプログラムのデバッグにおいて、任意
の関数位置で実行を停止させあるいは再開させるため、
特定関数のフレームを指定し、その実行、再開を制御で
きるようにする。
の関数位置で実行を停止させあるいは再開させるため、
特定関数のフレームを指定し、その実行、再開を制御で
きるようにする。
本発明は、LISP等の関数型言語プログラムの処理を
行う情報処理装置に関するものであり。
行う情報処理装置に関するものであり。
特にマイクロプログラムを用いて関数処理を実行する情
報処理装置におけるデバッグ制御方式に関する。
報処理装置におけるデバッグ制御方式に関する。
LISP等の関数型言語を用いて記述されたプログラム
を処理するのに適するように構成された情報処理装置と
して、各関数をインタプリタ形式でマイクロプログラム
により実行する方式、のちのがある。
を処理するのに適するように構成された情報処理装置と
して、各関数をインタプリタ形式でマイクロプログラム
により実行する方式、のちのがある。
関数型言語プログラムでは、ある関数の処理に゛おいて
、さらに他の関数を呼び出すことができる。
、さらに他の関数を呼び出すことができる。
一般に、これらはスタック上に関数フレームを設けて管
理される。
理される。
第3図に、関数F+(Fz)を処理する場合のスタック
の状態を示す。図中、30はスタック。
の状態を示す。図中、30はスタック。
301および302は関数F1およびFtのフレーム。
31はフレームポインタである。
関数F、はその処理のために、さらに関数F。
の処理を必要とする。そのため、スタック30上に関数
F、の処理のために、フレーム301を獲得し1次に関
数Fzの処理のためにフレーム302を獲得する。関数
F、の処理が終了したとき、結果を関数F+に引き渡し
て、関数F:の関数フレームを解放する方法がとられる
。
F、の処理のために、フレーム301を獲得し1次に関
数Fzの処理のためにフレーム302を獲得する。関数
F、の処理が終了したとき、結果を関数F+に引き渡し
て、関数F:の関数フレームを解放する方法がとられる
。
このような関数の呼び出し関係(あるいはリスト構造)
は任意多重のレベルで設定されることができる。
は任意多重のレベルで設定されることができる。
スタック30上に設けられる関数フレームのアドレスは
、フレームポインタ31によって指定される。フレーム
ポインタ31には、実行段階にある関数フレームのアド
レスが設定される。
、フレームポインタ31によって指定される。フレーム
ポインタ31には、実行段階にある関数フレームのアド
レスが設定される。
このような情報処理装置において、関数型言語のプログ
ラムをデバッグする場合、任意の関数位置を指定して実
行を停止あるいは実行を再開できることが望ましい。
ラムをデバッグする場合、任意の関数位置を指定して実
行を停止あるいは実行を再開できることが望ましい。
従来の情報処理装置では、マイクロプログラムが格納さ
れている制御記憶(C3)に対してアドレスを指定し、
そのアドレス位置で実行を停止させるアドレスコンベア
ストップ機能が設けられている。しかし、インタプリタ
がマイクロプログラム化されている場合、どのLISP
関数を実行するときも同一のマイクロ命令が起動される
ため。
れている制御記憶(C3)に対してアドレスを指定し、
そのアドレス位置で実行を停止させるアドレスコンベア
ストップ機能が設けられている。しかし、インタプリタ
がマイクロプログラム化されている場合、どのLISP
関数を実行するときも同一のマイクロ命令が起動される
ため。
これを用いて途中にある特定関数の実行を任意に制御す
ることは容易ではなかった。
ることは容易ではなかった。
従来の情報処理装置には、関数型言語を用いたプログラ
ムのデバッグを能率的に行わせるための適切な機能がそ
なえられていないため、プログラム開発に際して、デバ
ッグ作業のための時間が長くなり、また大きな労力負担
を強いられていた。
ムのデバッグを能率的に行わせるための適切な機能がそ
なえられていないため、プログラム開発に際して、デバ
ッグ作業のための時間が長くなり、また大きな労力負担
を強いられていた。
本発明は、LISP等の関数型言語をスタック上にフレ
ーム展開して処理する際、フレームを特定する関数を表
すデータを利用して、高級言語レベルでの処理の中断、
再開を可能にするものである。
ーム展開して処理する際、フレームを特定する関数を表
すデータを利用して、高級言語レベルでの処理の中断、
再開を可能にするものである。
第1図に9本発明の原理的構成を示す。図において、l
は中央処理装置、10はスタック、11はフレームポイ
ンタ、12は比較部、 101.102は関数F ll
−1* Fllのフレームを表す。
は中央処理装置、10はスタック、11はフレームポイ
ンタ、12は比較部、 101.102は関数F ll
−1* Fllのフレームを表す。
スタック10には、処理すべき一連の関数のフレームが
展開されており、フレームポインタ11には、スタック
10の先頭のフレーム102のアドレスが設定されてい
る。
展開されており、フレームポインタ11には、スタック
10の先頭のフレーム102のアドレスが設定されてい
る。
比較部12の一方の入力には、デバッグ時に。
実行を停止したい関数のデータが与えられ、また他方の
入力には、スタック10の実行段階にある先頭のフレー
ム102から読み出される関数(図示の例ではF、)の
データが与えられる。
入力には、スタック10の実行段階にある先頭のフレー
ム102から読み出される関数(図示の例ではF、)の
データが与えられる。
比較部12は、2つの入力データが一致したとき停止信
号を出力する。これにより、中央処理装置lはプログラ
ムの実行を停止、すなわち処理を中断する。
号を出力する。これにより、中央処理装置lはプログラ
ムの実行を停止、すなわち処理を中断する。
本発明によれば、関数型言語を用いたプログラムのデバ
ッグ時に、任意の関数を指定することにより、走行中の
プログラムを任意の位置で停止させ、さらにはその位置
から再開させることができ。
ッグ時に、任意の関数を指定することにより、走行中の
プログラムを任意の位置で停止させ、さらにはその位置
から再開させることができ。
高級言語レベルでのデバッグ制御を可能にする。
第2図に本発明の1実施例の構成を示す。図中。
1は中央処理装置(CPU)、2はサービスプロセッサ
(SVP)、10はスタック、11はフレームポインタ
、12は比較部、13は関数データ指定レジスタ、14
は制御部を表す。
(SVP)、10はスタック、11はフレームポインタ
、12は比較部、13は関数データ指定レジスタ、14
は制御部を表す。
デバッグ時に、サービスプロセッサ(SVP)2は、デ
バッグ操作用の監視装置として使用される。中央処理装
置(CPU)1は、サービスプロセッサ(SVP)2か
らの操作信号により動作を制御され、所定の状態信号お
よびデータをサービスプロセッサ(SVP)2に出力す
る。
バッグ操作用の監視装置として使用される。中央処理装
置(CPU)1は、サービスプロセッサ(SVP)2か
らの操作信号により動作を制御され、所定の状態信号お
よびデータをサービスプロセッサ(SVP)2に出力す
る。
なお、中央処理装置(CPU)1内に示されている構成
は、簡単化のため、デバッグ時に本発明に関連する要素
のみを取り出して示してあり2通常動作時に必要となる
部分は、全て省略しである。
は、簡単化のため、デバッグ時に本発明に関連する要素
のみを取り出して示してあり2通常動作時に必要となる
部分は、全て省略しである。
関数データ指定レジスタ13には、サービスプロセッサ
(SVP)2から、実行を停止させたいすなわち処理を
中断したい関数のデータが設定される。
(SVP)2から、実行を停止させたいすなわち処理を
中断したい関数のデータが設定される。
制御部14は、マイクロプログラムにより動作する制御
機構であり、スタック10.フレームポインタ11.比
較部12の動作は、制御部14からの制御に基づいて行
われる。
機構であり、スタック10.フレームポインタ11.比
較部12の動作は、制御部14からの制御に基づいて行
われる。
デバッグ処理中、オペレータは、ある特定の関数位置で
処理を中断したい場合、関数データ指定レジスタ13に
、停止位置の関数を示すデータを設定し、同時に制御部
14をフレームポインタ停止モードに設定する。
処理を中断したい場合、関数データ指定レジスタ13に
、停止位置の関数を示すデータを設定し、同時に制御部
14をフレームポインタ停止モードに設定する。
制御部14は、フレームポインタ停止モードを設定され
たとき、スタック10に展開されている各フレームの関
数の処理状態を監視する。すなわち、フレームポインタ
11の値が変化する度に。
たとき、スタック10に展開されている各フレームの関
数の処理状態を監視する。すなわち、フレームポインタ
11の値が変化する度に。
フレームポインタ11によって指示されるフレーム内の
関数のデータを読み出し、これを比較部12により、関
数データ指定レジスタ13に設定されている関数データ
と比較させる。そして一致が得られたとき、5TOP信
号をサービスプロセッサ(SVP)2に発信し、処理を
中断させる制御を行わせるものである。
関数のデータを読み出し、これを比較部12により、関
数データ指定レジスタ13に設定されている関数データ
と比較させる。そして一致が得られたとき、5TOP信
号をサービスプロセッサ(SVP)2に発信し、処理を
中断させる制御を行わせるものである。
これにより、関数データ指定レジスタ13に予め設定さ
れている関数データと一致する関数を含むスタックlO
内の最初のフレームにおいて、関数の実行は停止される
。
れている関数データと一致する関数を含むスタックlO
内の最初のフレームにおいて、関数の実行は停止される
。
本発明によれば、関数を用いた高級言語レベルでのデバ
ッグ制御を直接的に行うことができるため、効率のよい
デバッグ環境が実現される。
ッグ制御を直接的に行うことができるため、効率のよい
デバッグ環境が実現される。
第1図は本発明の原理的構成図、第2図は本発明の1実
施例の構成図、第3図は関数型言語のプログラム処理に
用いられるスタックの説明図である。 第1図中。 1:中央処理装置(CPU) 10ニスタツク 11:フレームポインタ 12:比較部
施例の構成図、第3図は関数型言語のプログラム処理に
用いられるスタックの説明図である。 第1図中。 1:中央処理装置(CPU) 10ニスタツク 11:フレームポインタ 12:比較部
Claims (1)
- 【特許請求の範囲】 関数型言語を用いたプログラムを処理するため、スタッ
ク上に関数のフレームを展開し、マイクロプログラム制
御により実行する関数型情報処理装置において、 スタック(10)上の関数のフレームの関数に対応する
データと、予め指定した特定の関数の関数に対応するデ
ータとを比較する比較部(12)を設け、 特定の関数の実行時に上記比較部(12)が一致を検出
することに応じて、処理の中断あるいは再開を可能にす
ることを特徴とする関数型情報処理装置のデバッグ制御
方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60221464A JPS6280739A (ja) | 1985-10-04 | 1985-10-04 | 関数型情報処理装置のデバツグ制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60221464A JPS6280739A (ja) | 1985-10-04 | 1985-10-04 | 関数型情報処理装置のデバツグ制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS6280739A true JPS6280739A (ja) | 1987-04-14 |
Family
ID=16767125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60221464A Pending JPS6280739A (ja) | 1985-10-04 | 1985-10-04 | 関数型情報処理装置のデバツグ制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6280739A (ja) |
-
1985
- 1985-10-04 JP JP60221464A patent/JPS6280739A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0290942B1 (en) | Guest machine execution control system for virtual machine system | |
JPS6280739A (ja) | 関数型情報処理装置のデバツグ制御方式 | |
JPH0552535B2 (ja) | ||
JPH01205343A (ja) | 電子計算機システムにおけるプロセスの中断再開方式 | |
JPH0283749A (ja) | マイクロプロセッサの内部割込み制御方式 | |
JP3330767B2 (ja) | 情報処理装置および情報処理装置におけるトレース取得方法 | |
JPH0772874B2 (ja) | 割込み受取り装置 | |
JP2684966B2 (ja) | 入出力処理装置のデバッグ装置 | |
JPS61166631A (ja) | マイクロプログラム制御処理方法 | |
JPS61241843A (ja) | 情報処理装置 | |
JPS6116338A (ja) | 仮想計算機システムにおける割込み処理方式 | |
JPS62107354A (ja) | マイクロプログラム制御装置 | |
JPS62113238A (ja) | 電子計算機システムにおけるプログラム修正装置 | |
JPH02103636A (ja) | 付加演算装置 | |
JPH0652482B2 (ja) | シーケンスコントローラ | |
JPH03228145A (ja) | Osのテスト方法 | |
JPH01288931A (ja) | Pl/iプログラムのデバック方式 | |
JPS6349942A (ja) | 演算処理装置 | |
JPS61267137A (ja) | 割込み動作制御方式 | |
JPH07104781B2 (ja) | マイクロプログラム制御方式 | |
JPH08179958A (ja) | 制御用電子装置 | |
JPH04167032A (ja) | プログラムデバツグ方式 | |
JPS629950B2 (ja) | ||
JPS6275734A (ja) | エミユレ−シヨン方式 | |
JPS61161556A (ja) | 情報処理装置 |