JPS60103460A - 関数型言語における実行過程追跡方法 - Google Patents

関数型言語における実行過程追跡方法

Info

Publication number
JPS60103460A
JPS60103460A JP58210507A JP21050783A JPS60103460A JP S60103460 A JPS60103460 A JP S60103460A JP 58210507 A JP58210507 A JP 58210507A JP 21050783 A JP21050783 A JP 21050783A JP S60103460 A JPS60103460 A JP S60103460A
Authority
JP
Japan
Prior art keywords
interruption
evaluation
flag
program
equation
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
JP58210507A
Other languages
English (en)
Inventor
Yasunori Kimura
康則 木村
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 JP58210507A priority Critical patent/JPS60103460A/ja
Publication of JPS60103460A publication Critical patent/JPS60103460A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 発明の技術分野 本発明は、関数型言語特にL i S P言語における
マクロ定義関数の実行時の動的特性の追跡、エラー発生
時のデバッグ方法に関する。
従来技術と問題点 関数型言語特にLtSPにおいては、マクロと呼ばれる
関数定義方式がある。マク1:I関数は、その関数に作
用させるべき式が与えられるとその式を評価しくLi5
Pでは計算することを評価するという)、その結果の式
を改めて評価する。つまり評価は2回しかも連続して行
なわれる。そこでマクロ関数を実行して結果がエラーと
なっても、エラーは1回目の評価で生じたのか2回目の
評価で生じたのかプログラマには分らないことが多い。
これは1回目の評価結果が2回目の評価の正当な対象と
なっているかどうかを判定することが、マクロ関数とそ
の引数だけからは予想が困難であることに起因している
。そこで、特にデバッグ時には、1回目の評価結果従っ
て2回目に評価しようとする式を検査することが必要と
されている。
1回目の評価結果を検査するにはそれを端末に表示又は
プリントアウト う)させるとよいが、1回目の評価結果の表示はLiS
Pでm・かれたユーザ定義関数では簡単であるが、組込
み関数のようなコンパイルしてあったりマイクロプログ
ラムで書い−であったりされているプログラムまで、展
開された結果(1回評価した結果)を表示させるのは、
ユーザーには触れられない領域のことであり、困難であ
る。
発明の目的 本発明は、1回目の1i′l′価が終り、2回目の評価
に移る直前にマイクロプロゲラムレヘルの割込みを発生
さ一U、割込み処理ルーチンで、2回目に評価しようと
する式を端末に表示させ、デバッグを容易にしようとす
るものである。
発明の構成 本発明は一7クロ定義関数に作用させるべき式が与えら
れるとその式を評価し、その結果の式を改めて評価する
関数型言語に才Njる該−7クロ定義関数の実行過程追
跡、デパソグカ法におい−(、1回目の評(illiを
するマイクロルーチンの後に、マイクロレベルの割込み
受伺りを指示するビットフィールドを持つマイクロ命令
を置き、またマク1:J定義関数の実行に際して予め割
込の原因レジスタに、外部へ表示させる処理を実行さ一
已るフラグを立てるようにし、プログラム実行が前記”
フイクiコ命令まで進んだときIliJ目の評価結果に
対しtiii記フラグにより定まる処理を行なわせるこ
とを特徴とするものである。
発明の実施例 本方式は2回目に評価ずべき式をソフI・ウェア的に表
示するのではなく、マイクロプロゲラムレ−・ルの割込
みを用いることによって表示する。ソフイ的に行なう方
式を採用すると二1ンパイルされたユーザ定義マクロ関
数やシステム組込関数のマクL1関数は、2回目に評価
すべき式をプリントアウトすることはできないが、本方
式を採用するとシステム組込マクロ関数やコンパイルさ
れたマクロ関数もプリントアウトできるようになり、よ
りきめ細かなデバッグツールを提供することができる。
図面で説明すると第1図は木兄すノの41!II念図を
示し、IOはマクロ関数を実行するプログラム、12は
その中の1つのマイクロ命令を示す。本発明では1マイ
クロ命令中にマイクロレベルの割込みを受付りるか否が
を示ず1ピッ1−のフィールドFを設け、これに1が書
込まれていたら割込みを受イζjけ、0が書込まれてい
たら割込みは受イ1けないとする。また各種割込み原因
フラグr i,r 2。
・・・・・・を立てられるレジスタ14の、その一度評
価した式をプリントアウトすることを示すフラグf1の
欄に、ブUグラム実行前に予め1を立“ごておく。この
ようにしておいてプログラム1oを実行し、その実行順
番がマイクロ命令12になると割込めが受(1げられ、
割込処理ルーチンが(+$jいて割込み原因レジスタ1
4の各フラグ欄を眺め、フラグ[1が立っていることが
分ると(他のフラグはマクロ関数実行ブしtグラム10
とは関係がなく、従ってオールOであることが充分予想
できる)、その直1);Iの式(これは1回目のi″P
価結果であり、2回目に評価しようとする式でもある)
を表示する。
第2図はその処理手順を模式的にボづもので、M R 
l ハ1回目の評価をするマイク1ツルーチン、MR2
は2回目のMl 1曲をするマイク1ツルーチン、I2
はこれらの間に挿入された前述のマイク1」命令で、こ
れが実行されると割込み処理のマイクl」ステップSに
入る。Flはマイクロブレグラム実行順序を示す。実行
順番がマイクロ命令12にくるとマイクロルーチンMR
Jで評価した結果がプリントアウトされ、それが終了す
ると2回目の評価をするルーチンMR2に戻り、ブし1
グラム実行を再開する。マイク1ルーチンMRIとMR
2は同種のものであるから、マイクロ命令12はマイク
ロルーチンの先頭においてもよい。割込み原因フラグを
格納するレジスタ14はメモリ (上記19)上の任意
の所においてもよいし、フリソブフ日ノブなどで別個に
構成してもよい。
次に具体例を示すに、第3図はl−iSP言語によるl
から10までの和,轟iをめるプログラムの例である。
こ\でDO.LETはマク1.1定義関数である.I)
0はフォートランのI)0文と間し、Iは制御変数で初
期値はo、1回実行する毎に→−1する。J、にの初期
値は10.0である。
((>rJ)K)ばI > 、JならB1算終り、結果
をKに返せを意味し、フA−トランのIF文と同しであ
る。5ETQは代入を意味し、(Sl■1゛QK (+
K I) )はK = K −1−1を行なう、■二J
であるからI=Jまで行なう、を意味する。次のLET
は初期値設定を意味し、LOO”Pば循環さ−Uるごと
を示す。(>IJ)はI>Jならば・・・、であり、E
 X ] i”はループがら出ろを意味3′る。
1) ROG N・・・・・・は・・・を実行を意味し
、こ−で行なうことは上記の00文の(SETQ K 
(+K I) )と同しであるが、1、ET文では(S
E”rQ I(1→−I)を(=J加してやる必要があ
る。このLETもマクロであるから次のLAMBDA・
・・・・・に展開される。
L i S P 言語のプログラムが走っていて00文
が現われると第3図■の如き展開が11なわれ、次いで
■、■の展開がなされ、■が実行され°ζ結果55が表
示される。本例ではΣiという節j11な演鳳=1 算のプログラムの例であるが、更に複雑な演算のプログ
ラムになるとマクロの中にマク1)が入っζいζそれが
次々と展開され、やがて結果が表示されるが、それがコ
ニラー゛であってもど、二”ご:I−ラーが生じたのか
、発見は容易でない。そこC各段階■。
■、・・・・・・の展開を行なうマイクロルーチンの次
のマイクロ命令に前記ビットフィールI” Fを設番ノ
、それに1を立てておき、L i S P 、’4’語
のマクロ命令実行に先立ってオペレータが割込め原因レ
ジスタ14のフラグflにlを立てておけば(これもマ
クロ命令により行なう)、展開■が終了した段階でそれ
が表示され、展開■が終了した段階で・・・・・・以下
同様となり、オペレータはこれをめでエラーがあるか否
かチェックすることができる。従来方式であると展開■
、■、■がなされ′(結果が表示されるだけであり、途
中経過は分らない。
上記のように、マクロの展開がなされる度に表示させる
他、マイクロ命令ルの細かい内容を各ゾロツク毎に表示
さ−lることも同様手法で11能である。表示不要なら
割込の原因レジスタ■4のフラグf1の七ソトをしなけ
ればよく、こればユーザーが自由に選択できる。システ
ム製作者側で用意するのは、各段階の次のマイクロ命令
にビットフィールドFを設け、表示が望まれるかも知れ
ないと思われるものには該フィールI゛に1を立ててお
くことである。
マイクロ命令のビットフィールドFに1が立っていると
き実行されることは表示、プリントアウト(展開■.■
などを宿込む)などでもよく、とのよ・うな処理をする
かは割込み原因レジスタI4へ立てるフラグtこよる。
IIJちこのフラグにより処理内容を適宜変更すること
ができる。メモリi!1込みの場合は多数の計1i1!
i結果をメモリに記IQさl、実時間または実行後にそ
れを読出して11:1グラムの動作解析、デハソグなど
を行なうことができ、処理効率、「目11度が」−る、
等の利点がある。
発明の詳細 な説明したように本発明によれば、コンパイルされたマ
クロ定義関数もその展開形(lhla・F li[li
 した結果)を見ることができ、マクロ定義関数の実行
追跡過程、デハソグに関し′(多大の幼果がある。
【図面の簡単な説明】
第1図はマイクロフィールドと割込め原因フラグについ
ての説明図、第2図は割込発生のマイクロステップの使
用例を模式的に示す説明図、第3図はLiSPインクブ
リタをマイクlJプL1グラム化して本発明を適用した
ときの具体例を示す図である。 図面でMRlは1回目の評価をするマイクロルーチン、
MR2は2回目の評価をするマイクロルーチン、I2は
割込み発生のマイクロステップを生じさせるマイクロ命
令、Fはそのビットフィールド、I4は割込み原因レジ
スタ、「1はその評り111結果表示を示すフラグ欄で
ある。 出1rIR人 富士通株式会社 代理人弁理士 Pi 柳 稔 第3図 (DO((IO(++I)) (JIO) ((>IJ)K)(SETQ K(+KI”))廿 ((LAM BDA (KJ 1)(LOOP(AND
 (>IO(PROGN( (SETQ r U実行 o、+o、、、’o) K)) K工))) J)(EXLT に)) SETQK(十に1))) (1十工))))

Claims (1)

  1. 【特許請求の範囲】 関数型言語のマクロ定義関数に作用させるべき式が与え
    られるとその式を評価し、その結果の式を改めて評価す
    る関数型言語における実行過程追跡方法において、 前記マクロ定義関数の1回目の評価をするマイクロルー
    チンの後に、マイクロレベルの割込み受(;Jけを指示
    するビット領域を持つマイクロ命令を設定し、また該マ
    クロ定義関数の実行に際して予め割込み原因レジスタに
    、外部へ表示する処理を実行さ−lるフラグを立てるよ
    うにし、プログラム実行が前記マイクロ命令まで進んだ
    とき1回目の評価結果に対し前記フラグにより定まる処
    理を行なわせることを特徴とする関数型言語における実
    行過程追跡方法。
JP58210507A 1983-11-09 1983-11-09 関数型言語における実行過程追跡方法 Pending JPS60103460A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58210507A JPS60103460A (ja) 1983-11-09 1983-11-09 関数型言語における実行過程追跡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58210507A JPS60103460A (ja) 1983-11-09 1983-11-09 関数型言語における実行過程追跡方法

Publications (1)

Publication Number Publication Date
JPS60103460A true JPS60103460A (ja) 1985-06-07

Family

ID=16590508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58210507A Pending JPS60103460A (ja) 1983-11-09 1983-11-09 関数型言語における実行過程追跡方法

Country Status (1)

Country Link
JP (1) JPS60103460A (ja)

Similar Documents

Publication Publication Date Title
KR19990034145A (ko) 동적-비주얼 통합 병렬 디버깅 장치 및 디버깅 방법
JPH02272645A (ja) プログラム・デバツグ支援方法
KR100339697B1 (ko) 반도체 시험장치의 프로그램 작성 시스템
Fauth et al. Automated generation of DSP program development tools using a machine description formalism
Razouk The use of Petri Nets for modeling pipelined processors
JPS6019028B2 (ja) 情報処理装置
JPS60103460A (ja) 関数型言語における実行過程追跡方法
JPS62113244A (ja) プログラムテスト装置
JPH0454636A (ja) プロセッサ
Mutlu et al. Java-XCOM Component Integration on Linux Operating System
Klassen et al. S*(QM-1) An instantiation of the high level microprogramming language scheme S* for the nanodata QM-11
Ebrahim et al. City-based approach for GPU kernel execution trace visualisation
JP2001290857A (ja) タイミングシミュレータ
JPS6143347A (ja) ベクトル命令シミユレ−シヨン方法
JPS58200349A (ja) マイクロプログラム制御装置
JP2751423B2 (ja) プログラムデバッグ処理方式
Ten et al. COMPARATIVE ANALYSIS OF TWO MOST POPULAR JAVASCRIPT FRAMEWORKS FOR MOBILE APPLICATION DEVELOPMENT
KR100218696B1 (ko) 프로그램 수행경로 역추적 기능을 가지는 프로그램가능 논리제어기
JPH01277941A (ja) 推論ステップ方式
JPH09297695A (ja) シンボリッククロスデバッガおよび作成システム
Davidson A case study of the migration of an algorithm across software-firmware boundaries
JPH03141436A (ja) デバッグ装置
JPH02275538A (ja) デバッグ処理方式
JPS61208126A (ja) 被テスト・プログラム実行制御方式
JPS61208143A (ja) 情報処理装置