JPS61202241A - 高級言語プログラムのデバツグ方式 - Google Patents

高級言語プログラムのデバツグ方式

Info

Publication number
JPS61202241A
JPS61202241A JP60044095A JP4409585A JPS61202241A JP S61202241 A JPS61202241 A JP S61202241A JP 60044095 A JP60044095 A JP 60044095A JP 4409585 A JP4409585 A JP 4409585A JP S61202241 A JPS61202241 A JP S61202241A
Authority
JP
Japan
Prior art keywords
variable
program
interpreter
state
flag
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
JP60044095A
Other languages
English (en)
Inventor
Takashi Kinugasa
衣笠 隆司
Kenzo Kobayashi
賢造 小林
Kazumi Kamihatsu
神初 嘉津美
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 JP60044095A priority Critical patent/JPS61202241A/ja
Publication of JPS61202241A publication Critical patent/JPS61202241A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔(概要〕 高級言語で記述されたプログラムを処理するインタプリ
タにおいて、該インタプリタの実行に先立って、該イン
タプリタのメモリマツプ上に設けられている変数管理フ
ラグを“オン° とし、制御管理フラグによって変数追
跡条件を設定することにより、例えばRASIC等の高
級言語で記述されたプログラム中に使用されている複数
個の変数の内、特定の変数の状態の変遷を追跡す゛るこ
とができるようにしたものである。
〔産業上の利用分野〕
本発明は、高級言語プログラムのデバッグ方式最近のコ
ンピュータ技術の発展と、ユーザ側での処理すべきデー
タ量の増加に伴って、コンピュータの4人が一般化して
きており、該コンピュータを稼働させる為のプログラム
は、ユーザ側での記述が容易な1例えばRASIC言語
の如き高級言語で記述されることが多い。
然して、一般に、人手で作成したプログラムにはバグは
付きものである為、該高級言語で記述されたプログラム
を実行するインタプリタにおいて、該プログラムのバグ
を効果的に検出できるデバッグ方式が要求されるように
なってきた。
〔従来の技術〕
高級言語の内で、その最も基本的なりASIC言語のイ
ンタプリタにおける、従来のデバッグ方式を以下に説明
する。
第3図(a)は、該RASICインクブリタの概念を模
式的に示したものであり、(b)は該[IASICイン
クプリタにおけるメモリマツプを示したものである。
一般に、例えば、RASIC言語で記述されたプログラ
ムを実行するインタプリタは、多数のマシン語ルーチン
の有機的結合体であり、大別して、■ 高級言語をマシ
ンが処理できる中間言語に変換する為の「テキスト作成
部」と。
■ 該中間言語プログラムを解読、実行する「解読・実
行部」 02つから成っている。
先ず、(b)のメモリマツプ上に格納されXいるBAS
ICインタプリタ9が起動されると、キーボード、或い
は記録媒体等から入力されたRASIC言語で記述され
たプログラムは、「テキスト作成部」lにおいて、1行
毎に中間言語に翻訳される。
この時、該プログラムの行の先頭に「行番号」がないと
、ダイレクト実行文と見なされ、即「解読・実行部」2
に制御が移されるが、「行番号」がある場合には、該翻
訳文を上記メモリマツプ上のプログラムエリア6に格納
した後、次の高級言語プログラムの翻訳に戻るように動
作する。
「解読・実行部」2においては、上記ダイレクト実行文
の時には即、その他の時には、プログラムエリア6から
読み出した後、それぞれのコマンドを解読して、選択部
3で、該コマンドに対応したコマンド処理ルーチンの先
頭アドレスを認識し、コマンド処理サブルーチン群4の
当該サブルーチンを取り出し各行毎のプログラムを実行
する。
ここで、該RASIC言語で記述されたプログラムのバ
グを検出する為に、該プログラムのトレースを行いたい
時、予め、該プログラムの先頭の行に、例えば、r T
R0N J文を挿入し、該プログラムの最後にrTRO
N 0PFJ文を付加しておくことにより、実際に実行
された「行番号」の軌跡を知ることができる。
即ち、上記インタプリタの実行手順に従って、該r T
R0N J文が認識されると、以降において、「テキス
ト作成部」1で生成された中間言語のプログラムが「解
読・実行部」2で実行される毎に、その「行番号」が、
「行管理処理部」5°で読み取られ、例えば、プリンタ
等の外部表示装置に出力されるので、その表示内容を見
ることにより、プログラムの実行状態を知ることができ
る。
該トレース処理は、当該プログラムの最後に付加されて
いるrTRON 0FFJ文を「解読・実行部」2が認
識することにより終了する。
〔発明が解決しようとする問題点〕
然しなから、上記従来のデバッグ方式においては、実際
に実行されたプログラムの「行番号」を知ることはでき
るが、当該プログラム中に設定されている複数個の変数
の状態の遷移については知ることができない為、プログ
ラムバグの個所の検出に時間がかかると云う問題があっ
た。
本発明は上記従来の欠点に鑑み、RASIC等の高級言
語で記述されたプログラムをデバッグするのに、該プロ
グラム中に記述されている幾つかの特定の変数を監視し
、該変数の状態の変化を追跡できるようにして、効率の
良いデバッグ環境を提供することを目的とするものであ
る。
〔問題点を解決する為の手段〕
第1図は本発明の概念を示したもので、(a)は当該イ
ンタプリタにおいて使用するメモリマツプ上に設けられ
た変数管理エリ′?J7.変数管理フラグ8.及び制御
管理フラグ8゛で、(b)は上記制御管理フラグ8”で
示された条件に従ってトレーヌした結果を格納している
上記「変数管理エリア」7の構造図である。
先ず、「解読・実行部」2において、解読されたコマン
ドに対応するサブルーチンを実行する際、上記変数管理
フラグ8が“オン°であると、当該インタプリタは変数
管理状態にあることを認識して、該サブルーチンの実行
時に変数を読み込んだ時点において、該変数が登録済み
変数であることを確認した後、上記制御管理フラグ8で
示された、変数の追跡条件(例えば、変数名と、トレー
スしたい条件(値、属性等))に従って、それぞれの変
数の状態を、例えば「変数管理エリア」7内に、(b)
で示したテーブルの形に編集して格納していくように構
成されている。
ここで、 変数名二制御管理フラグ8゛で指定されている変数で、
ある行のプログラムに対応したサブルーチンを実行した
時に読み込まれた変数の名称(例えば、A、B等) 状態 :該サブルーチンを実行した時の、上記変数の状
態(例えば、A:10.B:20.^:200等)変数
属性:該変数が文字型(数字、アルファベット)/数値
型(2進、 10進等)等を示す情報ポインタ:該変数
が記述されているプログラムの格納番地(プログラムエ
リア6の番地)をそれぞれ示している。
従って、RASIC言語で記述されたプログラムを、当
該RASICインクブリタで実行した後、上記「変数管
理エリア」7の内容を見ることにより、制御管理フラグ
8′で指定した変数の実行状態を知ることができる。
〔作用〕
即ち、本発明によれば、例えば、RASICインクプリ
タで、RASIC言語で記述されたプログラムを実行す
るに先立って、メモリマツプ上の変数管理フラグを′オ
ン” とすると共に、制御管理フラグによって、トレー
スしたい変数に対するトレース条件を設定しておくこと
により、該各行毎のプログラムに対応したサブルーチン
を実行した時、上記制御管理フラグで指定した条件で、
該変数の状態を、例えば「変数管理エリア」に格納する
ようにしたものであるので、該「変数管理エリア」の内
容を見ることにより、該RASIC言語で記述されたプ
ログラムのデバッグを効果的に行うことができる。
〔実施例〕
以下本発明の実施例を図面によって詳述する。
第2図は本発明の一実施例を模式的に示した図であり、
(a) はBASICインタプリタ構造図、(b)はR
ASICシステムのメモリマツプであって、変数管理処
理部5.及び、「変数管理エリア」7.変数管理フラグ
8.制御管理フラグ8゛が本発明を実施するのに必要な
機能ブロック、及びフラグである。
本図において、第3図と同じ符号は同じ対象物を示して
いる。又、本実施例においても、RASICインタプリ
タを例にして説明する。
RASICインクブリタの基本的な動作は、第3図で説
明した従来方式と全く同じであるので省略し、ここでは
本発明の変数管理方法を中心に説明する。
先ず、BASICインタプリタ9が、選択部3で選択し
たコマンドに対応したコマンド処理ルーチンを、コマン
ド処理サブルーチン群4から取り出して、「解読・実行
部」2で実行する時、上記RASICインクプリタメモ
リマップ(b)上の変数管理フラグ8が“オン′である
ことを認識すると、当該BASICインタプリタ9は変
数管理状態にあるので、変数管理処理部5に行き、当該
変数が登録されているかどうかを検索し、若し登録され
ていれば、上記制御管理フラグ8”が示すトレース条件
に従って、該サブルーチンを実行した後の状態を、例え
ば、「変数管理エリア」7内に、第1図(b)で示した
テーブルの形に編集して格納する。
若し、未登録の場合には、例えば、未登録変数であるこ
とを示すメツセージを出力すると共に、上記「変数管理
エリア」7への出力は無視するように機能する。
尚、本実施例においては、制御管理フラグ8゛で指定し
た変数の、プログラム実行後の状態を「変数管理エリア
」7内に格納する方法で説明したが、該変数の状態を、
サブルーチンの実行の都度、外部装置(例えば、プリン
タ)に表示するようにしても良いことは云う迄もないこ
とである。
又、本実施例においては、RASIC言語で記述された
プログラムの実行過程をトレースする例で説明したが、
本発明の主旨から考えて、RASIC言語に限定する必
要のないことは明らかである。
〔発明の効果〕
以上、詳細に説明したように、本発明の高級言語プログ
ラムデバッグ方式は、例えば、RASICインクプリタ
で、BASIC言語で記述されたプログラムを実行する
に先立って、メモリマツプ上の変数管理フラグを゛オン
゛ とすると共に、制御管理フラグによって、トレース
したい変数に対するトレース条件を設定しておくことに
より、該各行毎のプログラムに対応したサブルーチンを
実行した時、上記制御管理フラグで指定した条件で、該
変数の状態を、例えば「変数管理エリア」に格納するよ
うにしたものであるので、該「変数管理エリア」の内容
を見ることにより、該BASIC言語で記述されたプロ
グラムのデバッグを効果的に行うこ七ができる。
【図面の簡単な説明】
第1図は本発明の詳細な説明する図、 第2図は本発明の一実施例を模式的に示した図。 第3図は従来技術によるデバッグ方式を模式的に示した
図 である。 図面において、 1は「テキスト作成部」。 2は「解読・実行部」13は選択部。 4はコマンド処理サブルーチン群。 5は変数管理処理部、5゛は行管理処理蝿。 6はプログラムエリア、7は1数管理エリ苔。 8は変数管理フラグ、 8”は制御管理フラグ。 9はBASICインタプリタ。 をそれぞれ示す。 殉(交毒プ?フラグ8 儀ΣI理エリアノ絢捏ta 庁くS3月9Jキづ訃’u2洲すi11番1 の インタブツタ×モソヱッグ 本発明り呪灼苑σ゛1と截期すふ吊 手 2  口

Claims (1)

  1. 【特許請求の範囲】 高級言語で記述されたプログラムを処理するインタプリ
    タにおいて、 該高級言語で記述されたプログラム中で使用される複数
    の変数の状態の変遷を追跡する機能(5、88′)を設
    けたことを特徴とする高級言語プログラムのデバッグ方
    式。
JP60044095A 1985-03-06 1985-03-06 高級言語プログラムのデバツグ方式 Pending JPS61202241A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60044095A JPS61202241A (ja) 1985-03-06 1985-03-06 高級言語プログラムのデバツグ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60044095A JPS61202241A (ja) 1985-03-06 1985-03-06 高級言語プログラムのデバツグ方式

Publications (1)

Publication Number Publication Date
JPS61202241A true JPS61202241A (ja) 1986-09-08

Family

ID=12682056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60044095A Pending JPS61202241A (ja) 1985-03-06 1985-03-06 高級言語プログラムのデバツグ方式

Country Status (1)

Country Link
JP (1) JPS61202241A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09179753A (ja) * 1995-12-26 1997-07-11 Nec Software Ltd リターン処理を契機とするスタック情報収集方式
KR100340049B1 (ko) * 1999-09-16 2002-06-12 오길록 시나리오를 이용한 칠 프로그램 시험 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09179753A (ja) * 1995-12-26 1997-07-11 Nec Software Ltd リターン処理を契機とするスタック情報収集方式
KR100340049B1 (ko) * 1999-09-16 2002-06-12 오길록 시나리오를 이용한 칠 프로그램 시험 방법

Similar Documents

Publication Publication Date Title
Dougherty et al. sed & awk: UNIX Power Tools
US6546365B1 (en) System for national language support and automated translation table
US4943968A (en) Method of displaying execution trace in a logic programming language processing system
Nielsen et al. The experience of learning and using Smalltalk
JPS61202241A (ja) 高級言語プログラムのデバツグ方式
Lin et al. Data structure visualization on the web
Booth Conceptions of Programming: A Study into Learning To Program.
JPS61213936A (ja) 高級言語プログラムのステツプ実行方式
KR100588729B1 (ko) 문자형 온라인 서비스에서 사용자 화면 제공장치 및 방법
JPH05108404A (ja) デバツガシステム
JPS5894041A (ja) 高級言語のデバツク支援装置
JPH03144833A (ja) デバッグ・システム
JPH01209544A (ja) シミュレートデバッグ方式
JP2811804B2 (ja) 変数出力範囲指定方式
Metzger A toolbox for APL programmers
JPH01280866A (ja) 日本語ワードプロセツシング方式
JPS58166375A (ja) 学習装置
JPH01316842A (ja) バッチプログラム・デバッグツール
JPS63314676A (ja) 機械翻訳システム
KR970011897B1 (ko) 언어해석 처리장치
De Kerf Introduction à APL
Rutter Using a high level language as a cross assembler
Sutton Extending the online public access catalog into the microcomputer environment
JPS6051903A (ja) プロセス制御プログラムの作成方法
Ives Review of" Introduction to Computers and Data Processing, by Gary B. Shelly and Thomas J. Cashman", Anaheim Publishing Co., 1980