JPH0375936A - 言語処理プログラムのデバック情報出力方式 - Google Patents

言語処理プログラムのデバック情報出力方式

Info

Publication number
JPH0375936A
JPH0375936A JP1212264A JP21226489A JPH0375936A JP H0375936 A JPH0375936 A JP H0375936A JP 1212264 A JP1212264 A JP 1212264A JP 21226489 A JP21226489 A JP 21226489A JP H0375936 A JPH0375936 A JP H0375936A
Authority
JP
Japan
Prior art keywords
line
processing
source
output
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.)
Pending
Application number
JP1212264A
Other languages
English (en)
Inventor
Kaoru Matsuo
松尾 薫
Yoichi Hirasawa
平澤 陽一
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP1212264A priority Critical patent/JPH0375936A/ja
Publication of JPH0375936A publication Critical patent/JPH0375936A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は言語処理プログラムの実行方式に関し、特にソ
ースプログラムによるデバッグを行なうプログラムの開
発(修正)に必要なデバッグ用ソースライン情報を作成
する機能を有する言語処理プログラムのデバッグ情報出
力方式に関する。
〔従来の技術〕
従来の技術では、高級言語で書かれたソースプログラム
から作成された実行ファイルをデバッグする際、高級言
語デバッガ(以後、旧gh LevelLanguag
e Debugger=HLLDと呼ぶ)と呼ばれるア
プリケーション・ソフトに依って、実際に実行ファイル
を実行にかけながら、ソース・プログラムの行単位で処
理を停止(以後、ブレークと呼ぶ)させ、ブレークされ
た時点での各変数値やレジスタ値を表示させて、デバッ
グを行なっていた。
これは、高級言語デバッガが入力ソースプログラムの行
単位のデバッグを実現する上で必要となるライン・デバ
ッグ情報テーブルが、以下の様な過程で生成されている
為である。
先ず、言語処理プログラムによって、ソースプ□ダラム
の1行毎の行数とその相対アドレスをセットされたライ
ン・デバッグ情報テーブルが、オブジェクト情報と共に
オブジェクト・ファイルに出力される。次に、前述のオ
ブジェクト・ファイルを入力ファイルとするリンカが、
前記オブジェクトファイル保有のライン・デバッグ情報
テーブルとその他のオブジェクト情報から、前述のライ
ン・デバッグ情報テーブルの行単位に絶対アドレスを決
定する。これにより前記リンカは、高級言語デバッガの
入力ソースプログラムの行単位のデバッグを可能にする
デバッグ情報を生威し、これを実行形式のファイル(以
降、ロードモジュール・ファイルと呼ぶ)中に他の情報
と共に出力する。
前記高級言語デバッガを組込んだデバッグ装置に、前記
ロードモジュール・ファイルをダウンロードし、これを
実行させると、高級言語デバッガはライン・デバッグ情
報テーブルから得られるソースプロダラムの行単位の実
アドレスと、デバッグ装置で捉えた実行中のロードモジ
ュール・ファイルのアドレスとを比較し、これと一致し
たら処理を停止させる。また、前記の高級言語デバッガ
の機能として、シンボル情報やセグメント情報などをデ
バッグ装置に付属する表示装置に出力することが可能で
ある。この様に、高級言語デバッガはロードモジュール
・ファイル中に生成されたライン・デバッグ情報に依っ
て、入力ソースプロダラムの行単位でのデバッグが可能
となる。
〔発明が解決しようとする課題〕
現在、ソフトウェアの構築の段階に於いて、その作法に
於ける手段として、構造化プログラミング手法が特に重
要視されてきている。また、C言語や構造化アセンブラ
等、構造化プログラミングを可能とする高級言語処理プ
ログラムの種類も多様化してきた。こうした現状から、
特に大規模なプログラムの開発のデバッグの初期段階に
於いては、複雑なソースプログラム情報よりは、まず、
そのプログラムがどのような構造を持っているか、どの
様な処理の流れになっているかといった大まかな情報を
読取るために、簡略された構造ブロック単位のデバッグ
が効果的である。
ここで述べる構造化プログラミングとは、プログラムの
1つの命令を表す基本部と、順次処理ルーチンを表す連
続部と、同じ部分が繰返しあられれる構成要素の繰返し
処理部と、複数の選択肢から1個を選択する選択処理部
をプログラムの構成要素として構築するプログラミング
手法である。
また、構造ブロックとは、前記構造化プログラミングの
構成要素のうち繰返し処理部と選択処理部として言語処
理プログラムが認識する1つの文の集合体である。前記
言語処理プログラムは、1個の構造ブロックを構造ブロ
ックの始りと機能を示す予約後によって、構造ブロック
の終りを同じく予約後かあるいは文字によって認識する
ものである。
上述した従来の言語処理プログラムの実行形式のファイ
ルでは、高級言語デバッガは単に入力ソースプログラム
の16単位のライン・デバッグを可能にしているだけで
あるため、ソースプログラムの大きな処理の流れを理解
する上で、情報を収集する単位としては細かく、情報が
多すぎて理解しにくいものとなっている。
上述した従来の言語処理プログラムの実行形式が入力ソ
ースプログラムの16単位のブレークのみを可能にする
ライン・デバッグ情報だけ出力していたのに対して、本
発明は前述のライン・デバッグ情報出力機能に加え、構
造ブロックを構成するソースの始りと終りを表すソース
ラインに対して、構造ブロック単位のデバッグを可能に
するソースライン情報(以降、構造ブロック・デバッグ
情報と呼ぶ)を出力する機能を付加したところに相違点
がある。
〔課題を解決するための手段〕
本発明は、言語処理プログラムの実行方式において、キ
ーボードから入力される起動待を解析し保存する手段と
、ソースプログラム情報を入力する手段と、入力された
ソースプログラム情報を解析してオブジェクト情報を生
成する手段と、入力されたソースプログラム情報を解析
して構造ブロック・デバッグ情報を生成する手段と、オ
ブ6 ジェクト情報と構造ブロック・デバッグ情報を付加情報
としてオブジェクト・ファイルに出力する手段とをもつ
言語処理プログラムの実行方式において、構造ブロック
・デバッグ情報をもつ実行形式な生成する事を特徴とす
る。
〔実施例〕
以下に、本発明の実施例について図面を参照しながら、
説明する。第1図は、本発明の一実施例を示すシステム
構成図である。第1図において、本発明の一実施例にお
ける言語処理プログラム102は、キーボード105か
ら入力された起勤行を解析する起勤行解析部106、前
記起勤行解析部106の解析結果を保存する保存部10
7、入力ファイル101からソースプログラム情報を入
力する入力部108、前記入力部108から入力された
ソースプログラムの行情報をリスト・ファイル103に
出力するリスト出力部110、同じく前記入力部108
から入力されたソースプログラムを解析してオブジェク
ト情報を出力する構文解析部109、前記構文解析部1
09の解析−7ス 結果である入力ソースプログラム情報から各種オブジェ
クト情報(セグメント情報、シンボル情報、テキスト・
コード情報等)を生成するオブジェクト情報生成部11
1.同じく前記構文解析部109の解析結果である入力
したソースプログラム情報から構造ブロック・デバッグ
情報を生成する構造ブロック・デバッグ情報生成部11
2、生成されたオブジェクト情報をオブジェクト・ファ
イル104に出力するオブジェクト出力部113とを含
む。
第2図は前記入力ファイル101の内容である。
左側の数字は説明のために付けたソースプログラムの行
番号である。
ここで、第2図に示した入力ファイル101の各ソース
行の解析内容を説明する。
前述の高級言語デバッガは、実行形式のロードモジュー
ル・ファイルに実行をかけながら入力ソースプログラム
の行単位のデバッグを可能にするために、デバッグ情報
として入力ソースプログラムの実行時の絶対アドレス情
報が必要であるが、8− これらの情報は入力ソースプログラムの全ラインから得
る必要はない。この為、言語処理プログラムは入力ソー
スプログラムから得られるライン・デバッグ情報の収集
時に、必要とするソースラインの情報のみを選抜してオ
ブジェクト・ファイルに出力する必要がある。従って、
各ソース行の構文解析時には、第1〜2行目はプログラ
ムの各関数の始りを表す行として、また第6〜10行目
と12行目はプログラムソース行として、それぞれソー
スの行数とその相対アドレス情報をセットしたライン・
デバッグ情報を生威しオブジェクト・ファイルに出力す
る必要がある。第3〜4行目はデータ記述行で、第5行
目と第11行目は空白行であるため、いずれも前述のラ
イン・デバッグ情報をオブジェクト・ファイルに生成す
る必要がない。また、第6行目と第8行目は構造ブロッ
ク・プログラミングの始りを示す予約語行として、第3
〜4行目と第5行目と第11行目はその他のソース行と
して、それ以外の行は一般予約語行としてみなされる。
一般予約語の中でも第9〜1〇−9ぐ 行目は構造ブロックの終りを表す一般予約語行とみなさ
れる。
第3図は、従来の言語処理プログラム102が第2図の
ソースプログラムから行単位のデバッグ情報を出力する
ライン・デバッグ情報テーブル301で、第4図は第1
の実施例の言語処理プログラムが構造ブロック単位のデ
バッグ情報を出力するデバッグ情報テーブル401であ
る。また、前記ライン・デバッグ情報テーブル301と
デバッグ情報テーブル401のテーブル・フォーマット
は同一形式である。
第6図は従来の、第7図は第1の実施例の言語処理プロ
グラム102のフローチャートである。
ここで第6図のフローチャートを参照しながら、従来の
言語処理プログラム102の各処理の機能を説明する。
従来の言語処理プログラム102は、行数カウンタ初期
化処理601.1行ソース入力処理602、ソース終り
判定処理603、終了処理604、行数カウントアツプ
処理605、相対アドレス計算処理606、構文解析処
理607、10− オブジェクト出力処理608、リスト出力判定処理60
9.1行ソース出力処理610の処理、デバッグ・オプ
ション判定処理611、ライン・デバッグ情報テーブル
出力処理612から構成されている。
行数カウンタ初期化処理601は入カンースフログラム
の行数カウンタをOデータで初期化する処理である。
1行ソース入力処理602は、現在読み込みポインタが
指している入力ファイル101からソースプログラムを
1行単位で読み込む。この後の読み込みポインタは、読
み込んだソースプログラムノ次の行を指している。
ソース終り判定処理603は、前記1行ソース入力処理
602で入力ファイル101からソースプログラムを1
行読み込んだ結果、それが入力ファイル101の終りで
あるか否かの判定を行なう。
終了処理604は、前記ソース終り判定処理603によ
って入力ファイル101の終りであった場合に行なう終
了処理である。
行数カウントアツプ処理605は入力ソースプログラム
を1行読み込む度にその読み込んだ行数をカウントアツ
プする処理である。
相対アドレス計算処理606は、読み込んだソースプロ
グラムの始る相対アドレスを算出する。
構文解析処理607は、1行ソース入力処理602で読
み込んだソースプログラム情報を解析しオブジェクト情
報(セグメント情報、シンボル情報、テキスト・コード
情報等)を生成する。
オブジェクト出力処理608は、前記構文解析処理60
7が生成したオブジェクト情報をオブジェクト・ファイ
ル104に出力する。
リスト出力判定処理609は、第1図の保存部107に
リスト出力を行なう命令があるか否かの判定を行なう。
1行ソース出力処理610は、1行ソース入力処理60
2で読み込んだソースプログラム情報に行番号等を付加
してリスト・ファイル103に出力する。
デバッグ・オプション判定処理611は、保存部107
内にライン・デバッグ情報のテーブル出力の命令がある
か否かを判定する。
ライン・デバッグ情報テーブル出力処理612は、読み
込んだソースプログラムの行数とその相対アドレスをオ
ブジェクト・ファイル104内のライン・デバッグ情報
テーブル301に出力する。
ここで第6図で示した従来の言語処理プログラム102
の処理の流れを追いながら、第2図に示したソースプロ
グラムから第3図に示したライン・デバッグ情報テーブ
ル301が生成される過程を説明する。
以下に従来の言語処理プログラム102の処理の流れを
説明する。
先ず、入力ソースプログラムの行数カウンタをOデータ
で初期化する。次に、入力ファイル101から1行ソー
スプログラムを読み込む為の1行ソース入力処理602
を実行する。1行ソース入力処理602によって入力さ
れたソースプログラム情報は、ソース終り判定処理60
3によって3 ソースプログラムの終りか否かが判定される。判定の結
果路りであれば、終了処理604を行なって処理を終了
する。ソースプログラムの終りでなければ、行数をカウ
ントアツプする処理605と、その入力ソースプログラ
ムの相対アドレス計算処理606を行ない、次に入力し
たソースプログラム1行の構文解析処理607を行なう
。構文解析処理607は1行ソース入力処理602で読
み込んだソースプログラム情報を解析しオブジェクト情
報を生成する。前記構文解析処理607によって生成さ
れたオブジェクト情報はオブジェクト出力処理608が
オブジェクト・ファイル104に出力する。次に、リス
ト出力判定処理609が行なわれる。リスト出力判定処
理609では保存部107内にリスト出力を行なう命令
があれば1行ソース出力処理610を実行し、続いてデ
バッグ・オプション判定処理611を行なう。前記リス
ト出力判定処理609の判定の結果、リスト出力命令が
保存部107に無い場合1行ソース出力処理610は行
なわず、デバッグ・オプション判定=14− 処理611を行なう。デバッグ・オプション判定処理6
11は、保存部107内にライン・デバッグ情報のライ
ン・デバッグ情報テーブル301の出力の命令があれば
、読み込んだソースプログラムの行数とその相対アドレ
スをライン・デバッグ情報テーブル出力処理612を行
なう。前記デバッグ・オプション判定処理611の判定
の結果、ライン・デバッグ情報のテーブル出力命令が保
存部107に無い場合ライン・デバッグ情報テーブル出
力処理612は行なわない。その後、処理は再び1行ソ
ース入力処理602に移る。この様にしてソースプログ
ラムの終りが来るまでオブジェクト出力とリスト出力と
ライン・デバッグ情報テーブル301の出力が繰返し行
なわれる。
次に、第7図のフローチャートを参照しながら、第1の
実施例の言語処理プログラム102の各処理の機能を説
明する。実施例1の言語処理プログラム102は、行数
カウンタと予約語フラグの初期化処理701,1行ソー
ス入力処理702、ソース終り判定処理703、終了処
理704、行数カウントアツプ処理705、相対アドレ
ス計算処理706、構文解析処理707、オブジェクト
出力処理708、リスト出力判定処理709.1行ソー
ス出力処理710、デバッグ・オプション判定処理71
1、予約語フラグ判定処理712、構造ブロック終り判
定処理713、予約語フラグOFF処理714、予約語
判定処理715、予約語フラグON処理717、デバッ
グ情報テーブル出力処理718から構成される。
以下に第1の実施例の各処理の機能を説明する。
但し、1行ソース入力処理702、ソース終判定処理7
03、終了処理704、行数カウントアツプ処理705
、相対アドレス計算処理706、構文解析処理707、
オブジェクト出力処理708、リスト出力判定処理70
9.1行ソース出力処理710、及び全体の処理の流れ
は第6図で説明した従来の処理と同様である。
その他の各処理内容は以下の通りである。
行数カウンタと予約語フラグの初期化処理701は、行
数カウンタを0データで、予約語フラグをOFFで初期
化する。
デバッグ・オプション判定処理711は、保存部107
内にライン・デバッグ情報あるいは構造ブロック・デバ
ッグ情報の第4図のデバッグ情報テーブル401への出
力命令があるか否かを判定する。
予約語フラグ判定処理712は、現在処理中の入力ソー
スプログラムが構造ブロックプログラミング(以降、構
造ブロック・プログラミングと呼ぶ)か否かを判定する
処理である。
構造ブロック終り判定処理713は、現在読み込んだソ
ースが構造ブロック・プログラミングの終了を示す予約
語行か否かを判定する処理である。
予約語フラグOFF処理714は、現在構造ブロック・
プログラミングが終了したことを示す為に、予約語フラ
グをOFFする処理である。
予約語判定処理715は、1行ソース入力処理702が
読み込んだソースプログラム構造ブロックの始りを示す
予約語行か、一般予約語行か、その他のソース行かを判
定する処理を行なう。
17− 予約語フラグON処理717は、構造ブロック・プログ
ラミング中であることを示す為に、予約語フラグをON
する処理である。
デバッグ情報テーブル出力処理718は、読み込んだソ
ースプログラムの行数とその相対アドレスを、オブジェ
クト・ファイル104内のデバッグ情報テーブル401
に出力する。
ここで第1の実施例の言語処理プログラム102の処理
の流れを追いながら、第2図に示したソースプログラム
から第4図に示したデバッグ情報テーブル401が生成
される過程を説明する。
先ず、入力ソースプログラムの行数カウンタを0データ
で、予約語フラグをOFFで初期化する処理701を行
なう。次に、入力ファイル101から1行ソースプログ
ラムを読み込む為の1行ソース入力処理702を実行す
る。1行ソース入力処理702によって入力されたソー
スプログラム情報は、ソース終り判定処理703によっ
てソースプログラムの終りか否かが判定される。判定の
結果路りであれば、終了処理704を行なっ18− て処理を終了する。ソースプログラムの終りでなければ
、行数をカウントアツプする処理705と、その入力ソ
ースプログラムの相対アドレス計算処理706を行ない
、次に入力したソースプログラム1行の構文解析処理7
07を行なう。構文解析処理707は1行ソース入力処
理702で読み込んだソースプログラム情報を解析しオ
ブジェクト情報を生成する。前記構文解析処理707に
よって生成されたオブジェクト情報はオブジェクト出力
処理708がオブジェクト・ファイル104に出力する
。次に、リスト出力判定処理709が行なわれる。リス
ト出力判定処理709では保存部107内にリスト出力
を行なう命令があれば1行ソース出力処理710を実行
し、続いてデバッグ・オプション判定処理711を行な
う。前記リスト出力判定処理709の判定の結果、リス
ト出力命令が保存部107に無い場合1行ソース出力処
理710を行なわず、デバッグ・オプション判定処理7
11を行なう。以上の処理は、データの初期化処理の一
部分を除いて従来の言語処理プログラム102の処理の
流れとほぼ同様である。
続いて、水弟1の実施例の言語処理プログラム102の
特徴を示す処理の流れについて説明する。
前記デバッグ・オプション判定処理711は、保存部1
07内にライン・デバッグ情報あるいは構造ブロック・
デバッグ情報のデバッグ情報テーブル401への出力命
令があるか否かを判定する処理である。前記デバッグ・
オプション判定処理711の判定の結果、ライン・デバ
ッグ情報のテーブル出力命令及び構造ブロック・デバッ
グ情報のテーブル出力命令が保存部107に無い場合、
処理はそのまま1行ソース入力処理702に移る。
保存部107内にライン・デバッグ情報のテーブル出力
の命令があれば、読み込んだソースプログラムの行数と
その相対アドレスをデバッグ情報テーブル401に出力
するデバッグ情報テーブル出力処理718を行なう。保
存部107内に構造ブロック・デバッグ情報のテーブル
出力の命令があれば、以下の処理を行なう。先ず、現在
処理中の入力ソースプログラムが構造ブロック・プログ
ラミング内か否かを判定する予約語フラグ判定処理71
2を行なう。予約語フラグ判定処理712の判定結果、
予約語フラグが構造ブロック・プログラミング中である
ことを示すON状態の場合、現在読み込んだソースが構
造ブロック・プログラミングの終了を示す予約語行であ
るか否かを判定する構造ブロック終り判定処理713を
行なう。
構造ブロック終り判定処理713の結果が構造ブロック
・プログラミングの終了を示す予約語ではなかった場合
、処理はそのまま1行ソース入力処理702に移る。構
造ブロック終り判定処理713の判定の結果、現在読み
込んだソースが構造ブロック・プログラミングの終了を
示す予約語行であった場合、予約語フラグをOFFにし
、処理は再び1行ソース入力処理702に移る。前記予
約語フラグ判定処理712の判定結果、予約語フラグが
構造ブロック・プログラミング中ではないことを示すO
FF状態の場合、次の様な処理を行なう。まず、1行ソ
ース入力処理702が読み込んだソースプログラムが構
造ブロックの始りを示す一21= 予約語の行か、一般予約語の行か、その他のソース行か
を判定する予約語判定処理715を行なう。
判定の結果その他のソース行を示した場合、そのまま1
行ソース入力処理702に移る。安定の結果が構造ブロ
ック・プログラミングの始りを示す予約語の場合、予約
語フラグをONする。判定の結果が一般予約語を示した
場合、予約語フラグをOFFにする。その後、デバッグ
情報テーブル401へ読み込んだソースプログラムの行
数とその相対アドレスを出力するデバッグ情報テーブル
出力処理718を行ない、1行ソース入力処理702に
戻る。
この様にしてソースプログラムの終りが来るまでオブジ
ェクト出力とリスト出力と行単位あるいは構造ブロック
単位のデバッグ情報テーブル401の出力が繰返し行な
われる。
ここで上記第1の実施例の言語処理プログラム102の
処理の流れを追いながら、第2図に示した入力ソースプ
ログラムから第4図に示した構造ブロックのデバッグ情
報テーブル401が生成さ2 れろ過程を順に説明する。但し、行数カウンタと予約語
フラグの初期化処理701から1行ソース出力処理71
0迄の処理は従来の言語処理プログラム102の処理の
流れと同様である。ここでは特にデバッグ・オプション
が構造ブロック・デバッグ情報のデバッグ情報テーブル
401への出力命令になっている場合に関して、デバッ
グ・オプション判定処理711以降の処理の流れを説明
する。
デバッグ・オプション判定処理711が処理される時点
では入力ソースプログラムの各行は読み込まれ、その行
数カウント及び相対アドレスの値が既に求められている
デバッグ・オプション判定処理711は起勤行の解析結
果が保存された保存部107からデバッグ・オプション
命令として構造ブロック・デバッグ情報のデバッグ情報
テーブル401への出力命令を見つけると、予約語フラ
グ判定処理712へ処理を進める。予約語フラグは初期
値ではOFF状態なので、予約語フラグ判定処理712
の判定結果は1行ソース入力処理702が読み込んだ入
力ソースの予約語判定処理715へ処理を進める。
第2図の入力プログラム1〜2行目は一般予約語として
扱われるので、予約語判定処理715の判定結果、次に
その行の行数と相対アドレスをデバッグ情報テーブル4
01へ出力するデバッグ情報テーブル出力処理718を
行ない、2行目を読み込む為に1行ソース入力処理70
2へ処理を進める。入力ソースプログラムの2行目に関
しても1行目同様にその行の行数と相対アドレスをデバ
ッグ情報テーブル401へ出力するデバッグ情報テーブ
ル出力処理718が行なわれ、3行目を読み込む為にま
た1行ソース入力処理702へ処理を進める。3〜5行
目はその他の予約語として扱われるので、予約語判定処
理715で判定された結果、デバッグ情報テーブル40
1へは何も出力せず、次の行を読み込む為に1行ソース
入力処理702へ処理が進められる。6行目は構造ブロ
ック・プログラミングの始りを示す予約語として扱われ
るので、予約語判定処理7150判定後、予約語フラグ
ON処理717を実行し、そのソース行の行数カウント
と相対アドレスをデバッグ情報テーブル401に出力す
る処理718を行なう。
その後、7行目を読み込む為に1行ソース入力処理70
2へ進む。7〜9行目の処理は、予約語フラグ判定処理
712では予約語フラグが先の入力ツースフログラムの
6行目の処理の流れの中でON状態にされているので、
予約語フラグ判定処理712の結果、構造ブロック終り
判定処理713を実行する。7〜9行目のソースは構造
ブロック終り判定処理7130判定結果、先に読み込ん
だ6行目の構造ブロック・プログラミングの終りを表し
ているのではないので、そのまま次の行を読み込む為に
1行ソース入力処理702へ処理を進める。10行目の
処理は、予約語フラグ判定処理712では予約語フラグ
がON状態なので構造ブロック終り判定処理713を実
行する。10行目は先に読み込んだ6行目の構造ブロッ
ク・プログラミングの終わりを表しているので、構造ブ
ロック終り判定処理713の判定結果、予約語フラグ5 OFF処理714を実行し、11行目を読み込む為に1
行ソース入力処理702へ進む。11行目は3〜5行目
同様、その他の予約語として扱われるので、予約語判定
処理715で判定された結果、デバッグ情報テーブル4
01へは何も出力せず、12行目を読み込む為に1行ソ
ース入力処理702へ処理が進められる。12行目は一
般の予約語として扱われるので、予約語判定処理715
の判定後、そのソース行の行数カウントと相対アドレス
をデバッグ情報テーブル401に出力する処理718を
行なう。その後、次の行を読み込む為に1行ソース入力
処理702へ進む。1行ソース入力処理702実行後、
その行が入力ファイル101の終了かどうかを判定する
ソース終り判定処理703が実行される。第2図に示し
た入力ソースプログラムにはこの時点で終了したと判定
され、終了処理704が実行され、この第1の実施例の
言語処理プログラム102は第2図の入力ソースプログ
ラムの処理を終了する。
以上の説明により、本発明の第1の実施例は構6 造ブロック単位のデバッグ情報をオブジェクト・ファイ
ル104に出力する事が可能となる。また、リンカは前
述のオブジェクト・ファイル104から得られるデバッ
グ情報テーブル401の形式が、従来のライン・デバッ
グ情報テーブル301と同様の形式であることから、従
来通りの処理によって、入力ソースプログラムの構造ブ
ロック単位のデバッグを可能にするデバッグ情報をロー
ドモジュール・ファイルに出力することが可能となる。
第1の実施例では構造ブロックの中に更に構造ブロック
があった場合でも、外側の構造ブロックに関する構造ブ
ロック単位のデバッグ情報出力のみ行なっていた。これ
に対し第2の実施例では構造ブロックの中に更に構造ブ
ロックがあった場合でも、外側の構造ブロックのデバッ
グ情報出力に加えて中にある構造ブロックのデバッグ情
報テーブルの出力を行なう点が異なる。
本発明の第2の実施例について図面を参照しながら詳し
く説明する。
第5図は、第2の実施例の言語処理プログラム102が
第2図のソースプログラムから構造ブロック単位のデバ
ッグ情報を出力するデバッグ情報テーブル501である
。また、第3図の従来のライン・デバッグ情報テーブル
301と第4図の第1の実施例のデバッグ情報テーブル
401と第5図の第2実施例のデバッグ情報テーブル5
01のテーブル・フォーマットは同一形式である。
第8図は第2の実施例の言語処理プログラム102の処
理を表したフローチャートである。
第2の実施例の言語処理プログラム102は、行数カウ
ンタとブロック終了フラグと構造ブロック・カウンタの
初期化処理801.1行ソース入力処理802、ソース
終り判定処理803、終了処理804、行数カウントア
ツプ処理805、相対アドレス計算処理806、構文解
析処理807、オブジェクト出力処理808、リスト出
力判定処理809.1行ソース出力処理8101デバツ
グ・オプション判定処理811、予約語判定処理812
、構造ブロック・カウントアツプ処理813、ブロック
終了フラグ判定処理814、ブロック終了フラグOFF
処理815、デバッグ情報テーブル出力処理816、構
造ブロック・カウント判定処理817、ブロック終了フ
ラグ判定処理818、ブロック終了フラグOFF処理8
19、デバッグ情報テーブル出力処理820、構造ブロ
ック終り判定処理821、ブ□ツク終了フラグON処理
822、構造ブロック・カウンタのレベル合せ処理82
3から構成される。
ここで第2の実施例の各処理の機能を説明する。
但し、1行ソース入力処理802、ソース終り判定処理
803、終了処理804、行数カウントアツプ処理80
5、相対アドレス計算処理806、構文解析処理807
、オブジェクト出力処理808、リスト出力判定処理8
09.1行ソース出力処理810、デバッグ・オプショ
ン判定処理811、予約語判定処理812、デバッグ情
報テーブル出力処理816と820、構造ブロック終り
判定処理821及び全体の処理の流れは第7図で説明し
た第1の実施例の処理と同様である。
その他の各処理内容は以下の通りである。
29、− 行数カウンタとブロック終了フラグと構造ブロック・カ
ウンタの初期化処理801は、行数カウンタと構造ブロ
ック・カウンタをOデータで、ブロック終了フラグをO
FFで初期化する。
構造ブロック・カウントアツプ処理813は、1行ソー
ス入力処理802の読み込んだソースが構造ブロック・
プログラミングの始りを表す予約語であった場合に、そ
の構造ブロックの階層の深さをカウントアツプする為の
処理である。
ブロック終了フラグ判定処理814と818は、現在読
み込んでいるソース行の1行前のソースが構造ブロック
・プログラミングの終りを表す行であったか否かを判定
する処理である。
ブロック終了フラグOFF処理815と819は、前記
ブロック終了フラグがON状態の場合にこれをOFF状
態にする処理である。
構造ブロック・カウント判定処理817は、構造ブロッ
ク・プログラミングの現在の階層の深さを判定する処理
である。
ブロック終了フラグON処理822は、構造ブ0− ロック終り判定処理8210判定結果、現在読み込んだ
ソース行が構造ブロック・プログラミングの終りを表す
行であった場合に、前記ブロック終了フラグをON状態
にする処理である。
構造ブロック・カウンタのレベル合せ処理823は、構
造ブロック終り判定処理8210判定結果、現在読み込
んだソース行が構造ブロック・プログラミングの終りを
表す行であった場合に、構造ブロック・プログラミング
の階層レベルを合せる処理を行なう。
ここで第2の実施例の言語処理プログラム102の処理
の流れを追いながら、第2図に示したソースプログラム
から第5図に示したデバッグ情報テーブル501が生成
される過程を説明する。
先ず、入力ソースプログラムの行数カウンタと構造ブロ
ック・カウンタを0データで、ブロック終了フラグをO
FFで初期化する処理801を行なう。次に、入力ファ
イル101から1行ソースプログラムを読み込む為の1
行ソース入力ソース入力処理802を実行する。1行ソ
ース入力処理802によって入力されたソースプログラ
ム情報は、ソース終り判定処理803によってソースプ
ログラムの終りか否かが判定される。判定の結果路りで
あれば、終了処理804を行なって処理を終了する。ソ
ースプログラムの終りでなげれば、行数をカウントアツ
プする処理805と、その入力ソースプログラムの相対
アドレス計算処理806を行ない、次に入力したソース
プログラム1行の構文解析処理807を行なう。構文解
析処理807は1行ソース入力処理802で読み込んだ
ソースプログラム情報を解析しオブジェクト情報な生成
する。前記構文解析処理807によって生成されたオブ
ジェクト情報はオブジェクト出力処理808がオブジェ
クト・ファイル104に出力する。次に、リスト出力判
定処理809が行なわれる。リスト出力判定処理809
では保存部107内にリスト出力を行なう命令があれば
1行ソース出力処理810を実行し、続いてデバッグ・
オプション判定処理811を行なう。前記リスト出力判
定処理809の判定の結果、リスト出力命令が保存部1
07に無い場合1行ソース出力処理810を行なわず、
デバッグ・オプション判定処理811を行なう。以上の
処理は、データの初期化処理部分を一部除いて第1の実
施例の言語処理プログラム102の処理の流れと同じで
ある。
続いて、第2の実施例の言語処理プログラム102の特
徴を示す処理の流れについて説明する。
前記デバッグ・オプション判定処理811は、保存部1
07内にライン・デバッグ情報あるいは構造ブロック・
デバッグ情報のデバッグ情報テーブル401への出力命
令があるか否かを判定する処理である。前記デバッグ・
オプション判定処理711の判定の結果、ライン・デバ
ッグ情報のテーブル出力命令及び構造ブロック・デバッ
グ情報のテーブル出力命令が保存部107に無い場合、
処理はそのまま1行ソース入力処理802に移る。
保存部10.7内にライン・デバッグ情報のテーブル出
力の命令があれば、読み込んだソースプログラムの行数
とその相対アドレスをデバッグ情報テーブル501に出
力するデバッグ情報テーブル33− 出力処理816を行なう。保存部107内に構造ブロッ
ク・デバッグ情報のテーブル出力の命令があれば、以下
の処理を行なう。先ず、1行ソース入力処理802が読
み込んだソースプログラムが構造ブロックの始りを示す
予約語の行か、一般予約語の行か、その他のソース行か
を判定する予約語判定処理812を行なう。判定の結果
その他のソース行を示した場合、そのまま1行ソース入
力処理802に移る。判定の結果が構造ブロック・プロ
グラミングの始りを示す予約語の場合、構造ブロック・
プログラミングの階層レベルを表す構造ブロック・カウ
ントアツプ処理813を行なう。
この後、ブロック終了フラグ判定処理814を実行し、
判定結果がブロック終了フラグがON状態で、現在読み
込んでいるソース行の1行前のソースが構造ブロック・
フログラミングの終りを表す行であった場合、ブロック
終了フラグをOFF状態にする処理815を行ない、デ
バッグ情報テーブル501に読み込んだソースの行数と
相対アドレスを出力する処理816を行ない、ブロック
終31.4− 了フラグがOFF状態の場合は、そのまま前記デバッグ
情報テーブル出力処理816を行なう。その後、1行ソ
ース入力処理802に処理を戻す。
前記予約語判定処理812の判定結果が一般予約語の場
合、構造ブロック・カウント判定処理817を行なう。
構造ブロック・プログラミングの現在の階層を深さを示
す構造ブロック・カウンタの値が0の場合、読み込んだ
その行の行数と相対アドレスをデバッグ情報テーブル5
01に出力し、そのまま1行ソース入力処理802へ処
理を戻す。前記構造ブロック・カウンタがO以外の値の
場合、ブロック終了フラグ判定処理818を行なう。ブ
ロック終了フラグが現在読み込んでいるソース行の1行
前の行が構造ブロック・フログラミングの終りを表す行
であったことを示すON状態の場合、現在読み込んでい
るソース行の行数と相対アドレスをデバッグ情報テーブ
ル501に出力し、構造ブロック終り判定処理821を
行なう。
ブロック終了フラグがOFFの場合、そのまま構造ブロ
ック終り判定処理821を行なう。構造ブロック終り判
定処理821の判定の結果、現在読み込んだソース行が
構造ブロック・プログラミングの終りを表す行であった
場合に、ブロック終了フラグをON状態にする処理82
2を行ない、続いて構造ブロック・プログラミングの階
層レベルを合せる処理823を行なう。そうでなかった
場合、そのまま1行ソース入力処理802へ処理を戻す
この様にしてソースプログラムの終りが来るまでオブジ
ェクト出力とリスト出力と行単位あるいは構造ブロック
単位のデバッグ情報テーブル501の出力が繰返し行な
われる。
ここでこの第2の実施例の言語処理プログラム102の
処理の流れを追いながら、第2図に示した入力ソースプ
ログラムから第5図に示した構造ブロックのデバッグ情
報テーブル501が生成される過程を順に説明する。但
し、行数カウンタと構造ブロック・カウンタとブロック
終了フラグの初期化処理801からデバッグ・オプショ
ン判定処理811迄の処理は第1の実施例の言語処理プ
ログラム102の処理の流れと同様である。ここでは特
にデバッグ・オプションが構造ブロック・デバッグ情報
のデバッグ情報テーブル501への出力命令になってい
る場合に関して、予約語判定処理812以降の処理の流
れを説明する。
予約語判定処理812が処理される時点では入力ソース
プログラムの各行は読み込まれ、その行数カウント及び
相対アドレスの値が既に求められている。デバッグ・オ
プション判定処理811が保存部107からデバッグ・
オプション命令として構造ブロック・デバッグ情報のデ
バッグ情報テーブル501への出力命令を見つけると、
予約語判定処理812へ処理を進める。第2図の入力プ
ログラム1〜2行目は一般予約語として扱われるので、
予約語判定処理812の判定結果、構造ブロック・カウ
ント判定処理817へと処理を進める。構造ブロック・
カウンタは初期値の0データのままなので、次にその行
の行数と相対アドレスをデバッグ情報テーブル501へ
出力するデバッグ情報テーブル出力処理816を行ない
、?37−。
行目を読み込む為に1行ソース入力処理702へ処理を
戻す。入力ソースプログラムの2行目に関しても1行目
同様にその行の行数と相対アドレスをデバッグ情報テー
ブル501へ出力するデバッグ情報テーブル出力処理8
16が行なわれ、3行目を読み込む為にまた1行ソース
入力処理802へ処理を戻す。3〜5行目はその他の予
約語として扱われるので、予約語判定処理812で判定
された結果、デバッグ情報テーブル501へは何も出力
せず、次の行を読み込む為に1行ソース入力処理802
へ処理が戻される。6行目は構造ブロック・プログラミ
ングの始りを示す予約語として扱われるので、予約語判
定処理812の判定後、構造ブロック・カウントアツプ
処理813を行ない、続いてブロック終了フラグ判定処
理814を行なう。ブロック終了フラグはこの時点では
まだOFFの状態なので、6行目の行数と相対アドレス
をデバッグ情報テーブル501に出力する処理816を
行なう。その後、7行目を読み込む為に1行ソース入力
処理802へ進む。7行目の処理=38−\ は、前記予約語判定処理812で一般予約語として判定
され、続いて構造ブロック・カウント判定処理を行なう
。構造ブロック・カウンタはこの時点では1なので、次
にブロック終了フラグ判定処理818が行なわれる。ブ
ロック終了フラグはこの時点ではOFFである為、次に
そのソースが構造ブロック・プログラミングの終りを示
す行かどうかを判定する構造ブロック終り判定処理82
1を行ない、7行目が構造ブロックの終りではないこと
から、8行目の読み込みを行なう為の1行ソース入力処
理802へ処理を戻す。8行目は構造ブロック・プログ
ラミングの始りを表す予約語なので、予約語判定処理8
12以降は、6行目同様に構造ブロック・カウントアツ
プ処理813を行ない、続いてブロック終了フラグ判定
処理814を行なう。ブロック終了フラグはこの時点で
はまだOFFの状態なので、8行目の行数と相対アドレ
スをデバッグ情報テーブル501に出力する処理816
を行なう。その後、9行目を読み込む為に1行ソース入
力処理802へ進む。9行目のソースは前述の8行目の
構造ブロック・プログラミングの終りを表す一般予約語
である為、その処理の流れは、先ず、予約語判定処理8
12で一般予約語として判定された後、構造ブロック・
カウント判定処理817を行なう。構造ブロック・カウ
ンタはこの時点では2なので、次にブロック終了フラグ
判定処理818が行なわれる。ブロック終了フラグはこ
の時点ではOFFである為、次のそのソースが構造ブロ
ック・プログラミングの終りを示す行かどうかを判定す
る構造ブロック終り判定処理821を行なう。構造ブロ
ック・プログラミングの終りを表す一般予約語であるの
で、判定の結果ブロック終了フラグをON状態する処理
822に処理を進める。次に、構造ブロック・カウンタ
のレベル合せ処理823を行なう。ここでは8行目の構
造ブロック・プログラミングの開始以前の階層レベルに
構造ブロック・カウンタを戻す為、構造ブロック・カウ
ンタは1となる。その後処理は10行目の読み込みの為
に1行ソース入力処理802に戻る。10行目のソース
は前述の6行目の構造ブロック・プログラミングの終り
を表す一般予約語である為、その処理の流れは、先ず、
予約語判定処理812で一般予約語として判定された後
、構造ブロック・カウント判定処理817を行なう。構
造ブロック・カウンタはこの時点では土なので、次にブ
ロック終了フラグ判定処理818が行なわれる。ブロッ
ク終了フラグはこの時点では立Xである為、次にブロッ
ク終了フラグをOFF状態する処理819に処理を進め
、その10行目の行数と相対アドレスをデバッグ情報テ
ーブル501に出力する処理820を行なう。
続いてそのソースが構造ブロック・プログラミングの終
りを示す行かどうかを判定する構造ブロック終り判定処
理821を行ない、判定の結果ブロック終了フラグをO
N状態する処理822に処理を進める。次に、構造ブロ
ック・カウンタのレベル合せ処理823を行なう。ここ
では6行目の構造ブロック・プログラミングの開始以前
の階層レベルに構造ブロック・カウンタを戻す為、構造
ブロック・カウンタは立となる。その後処理は1141
− 行目の読み込みの為に1行ソース入力処理802に戻る
。11行目はその他の予約語として扱われるので予約語
判定処理812の判定結果、そのまま12行目を読み込
む為に1行ソース入力処理802に戻る。12行目は一
般予約語として扱われるので予約語判定処理812以降
、次の様な処理に進む。前記予約語判定処理812の判
定結果構造ブロック・カウント判定処理817を行ない
、構造ブロック・カウンタがこの時点でOである為、1
2行目の行数とその相対アドレスをデバッグ情報テーブ
ル501に出力する処理816をおこなう。その後、次
の行を読み込む為に1行ソース入力処理802へ処理が
戻る。1行ソース入力処理802実行後、その行が入力
ファイル101の終了かどうかを判定するソース終り判
定処理703が実行される。第2図に示した入力ソース
プログラムはこの時点で終了したと判定され、終了処理
804が実行され、第2の実施例の言語処理プログラム
102は第2図の入力ソースプログラムの処理を終了す
る。
2− 以上の説明により、本発明の第2の実施例は構造ブロッ
クの中にある構造ブロックのデバッグ情報をオブジェク
ト・ファイル104に出力する事が可能となる。また、
リンカは前述のオブジェクト・ファイル104から得ら
れるデバッグ情報テーブル501の形式が、従来のライ
ン・デバッグ情報テーブル301と同様の形式であるこ
とから、従来通りの処理によって、入力ソースプログラ
ムの階層構造になった構造ブOツクに関してもデバッグ
情報をロードモジュール・ファイルに出力することが可
能となる。
〔発明の効果〕
この発明によって、言語処理プ□ダラムの構文解析によ
りソースプログラム中の構造ブロックを判定し、デバッ
グ用ソースライン情報として、ンースフログラム情報の
構造ブロックを考慮した行番号情報の出力をすることが
可能になる。その結果デバッガによりプログラム解析を
行なう場合、ソースプログラムの構造、処理の流れを理
解しやすく、デバッグ効率をあげるという優れた効果が
ある。
【図面の簡単な説明】
第1図は、本発明の実施例を示すシステム構成図、第2
図は、入力ファイルの内容を示す図、第3図は、従来の
ライン・デバッグ情報テーブル301を示す図、第4図
は、第1の実施例のデバッグ情報テーブル401を示す
図、第5図は、第2の実施例のデバッグ情報テーブル5
01を示す図、第6図は、従来の言語処理プログラムの
フローチャートを示す図、第7図は、第1の実施例ノ言
語処理プログラムのフローチャートを示す図、第8図は
、第2の実施例の言語処理プログラムのフローチャート
を示す図である。 101・・・・・・入力ファイル、102・・・・・・
言語処理プ巨グラム、103・・・・・・リスト・ファ
イル、104・・・・・・オブジェクト・ファイル、1
05・・・・・・キーボード、106・・・・・・起勤
行解析部、107・・・・・・保存部、108・・・・
・・入力部、109・・・・・・構文解析部、110・
・・・・・リスト出力部、111・・・・・・オブジェ
クト情報生成部、112・・・・・・構造ブロック・デ
バッグ情報生成部、113・・・・・・オブジェクト出
力部、601・・・・・・行数カウンタ初期化処理、6
02・・・・・・1行ソース入力処理、603・・・・
・・ソース終り判定処理、604・・・・・・終了処理
、605・・・・・・行数カウントアツプ処理、606
・・・・・・相対アドレス計算処理、607・・・・・
・構文解析処理、608・・・・・・オブジェクト出力
処理、609・・・・・・リスト出力判定処理、610
・・・・・・1行ソース出力処理、611・・・・・・
デバッグ・オプション判定処理、612・・・・・・ラ
イン・デバッグ情報テーブル出力処理、701・・・・
・・行数カウンタ、予約語フラグ初期化処理、702・
・・・・・1行ソース入力処理、703・・・・・・ソ
ース終り判定処理、704・・・・・・終了処理、70
5・・・・・・行数カウントアツプ処理、706・・・
・・・相対アドレス計算処理、707・・・・・・構文
解析処理、708・・・・・・オブジェクト出力処理、
709・・・・・・リスト出力判定処理、710・・・
・・・l6ソース出力処理、γ11・・・・・デバッグ
・オプション判定処理、712・・・・・・予約語フラ
グ判定処理、713・・・・・・構造ブロック終り5 判定処理、714・・・・・・予約語フラグOFF処理
、715・・・・・・予約語判定処理、717・・・・
・・、予約語フラグON処理、718・・・・・・デバ
ッグ情報テーブル出力処理、801・・・・・・行数カ
ウンタ、構造ブロック・カウンタ、ブロック終了フラグ
初期化処理、802・・・・・・1行ソース入力処理、
803・・・・・・ソース終り判定処理、804・・・
・・・終了処理、805・・・・・・行数カウントアツ
プ処理、806・・・・・・相対アドレス計算処理、8
07・・・・・・構文解析処理、808・・・・・・オ
ブジェクト出力処理、809・・・・・・リスト出力判
定処理、810・・・・・・1行ソース出力処理、81
1・・・・・・デバッグ・オプション判定処理、812
・・・・・・予約語判定処理、813・・・・・・構造
ブロック・カウントアツプ判定処理、814,818・
・・・・・ブロック終了フラグ判定処理、815,81
9・・・・・・ブロック終了フラグOFF処理、816
,820・・・・・・デバッグ情報テーブル出力処理、
817・・・・・・構造ブロック・カウント判定処理、
821・・・・・・構造ブロック終り判定処理、822
・・・・・・ブロック終了フラグON処理、823・・
・・・・構造ブロック・カウ46〜 ンタのレベル合せ処理。

Claims (1)

    【特許請求の範囲】
  1.  入力されたソースプログラム情報を解析してデバッグ
    用ソースライン情報を生成する手段を持つ言語処理プロ
    グラムの実行方式において、ソースプログラムのブロッ
    ク構造を構成する部分については、ブロック構造を構成
    するソースの始りと終りを表すソースラインに対してソ
    ースライン情報を出力し、ソースプログラムのブロック
    構造以外の部分については全ソースラインに対してソー
    スライン情報を出力することを特徴とする言語処理プロ
    グラムのデバッグ情報出力方式。
JP1212264A 1989-08-18 1989-08-18 言語処理プログラムのデバック情報出力方式 Pending JPH0375936A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1212264A JPH0375936A (ja) 1989-08-18 1989-08-18 言語処理プログラムのデバック情報出力方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1212264A JPH0375936A (ja) 1989-08-18 1989-08-18 言語処理プログラムのデバック情報出力方式

Publications (1)

Publication Number Publication Date
JPH0375936A true JPH0375936A (ja) 1991-03-29

Family

ID=16619703

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1212264A Pending JPH0375936A (ja) 1989-08-18 1989-08-18 言語処理プログラムのデバック情報出力方式

Country Status (1)

Country Link
JP (1) JPH0375936A (ja)

Similar Documents

Publication Publication Date Title
US7266809B2 (en) Software debugger and software development support system for microcomputer operable to execute conditional execution instruction
US5504902A (en) Multi-language generation of control program for an industrial controller
JP4140980B2 (ja) プログラムツリーを表示するコンピュータプログラムの構文依存しない表示方法
EP0690378A1 (en) Tool and method for diagnosing and correcting errors in a computer programm
JP3612294B2 (ja) デバッグ方法およびデバッグ装置
JPH0844547A (ja) オブジェクト指向ソフトウェアの視覚化
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
JPH08115209A (ja) ソース・コード作成システム及び方法
US6839893B2 (en) Debugger capable of providing warnings for unreachable breakpoints
JP3130828B2 (ja) アセンブル処理方式
US6198813B1 (en) System and method for providing call processing services using call independent building blocks
Chandhok et al. Programming Environments based on structure editing: The Gnome approach
JPH0375936A (ja) 言語処理プログラムのデバック情報出力方式
JP3011115B2 (ja) デバッグシステム
JP2003050722A (ja) プログラム解析システムとプログラム解析方法
JPH04367946A (ja) デバッグ情報出力方式
JPH0350641A (ja) 言語処理プログラムのデバッグ情報出力方式
JPH0792771B2 (ja) プログラム実行状況表示システム
JPH04242440A (ja) デバッグ情報出力方式
JPH04288635A (ja) デバッグ情報出力方式
JPH0667864A (ja) マニュアル類の自動作成,更新方法
JPH052477A (ja) グラフイカル・ユーザ・インタフエースの作成方式
Koskimies et al. Viewing Object-Oriented Programs Through Scenario Diagrams
CN119902743A (zh) 兼容多语种代码分析的uml时序图自动生成方法
CN118259646A (zh) 诊断程序生成方法、装置以及车辆