JPS6227833A - コンパイルエラ−表示方式 - Google Patents

コンパイルエラ−表示方式

Info

Publication number
JPS6227833A
JPS6227833A JP60168212A JP16821285A JPS6227833A JP S6227833 A JPS6227833 A JP S6227833A JP 60168212 A JP60168212 A JP 60168212A JP 16821285 A JP16821285 A JP 16821285A JP S6227833 A JPS6227833 A JP S6227833A
Authority
JP
Japan
Prior art keywords
error
text
macro
line number
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.)
Pending
Application number
JP60168212A
Other languages
English (en)
Inventor
Kazuhisa Hayashi
和久 林
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 JP60168212A priority Critical patent/JPS6227833A/ja
Publication of JPS6227833A publication Critical patent/JPS6227833A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はコンパイラがコンパイル時に検出したコンパイ
ルエラーを印刷装置あるいは表示装置へ表示するときの
表示方式に関するO 〔従来の技術〕 従来、コンバラが出力するコンパ、イルエラーの表示形
式は、マクロあるいは登録集原文の、1間ソースプログ
ラムリストに対するコンパイルエラーの行番号とエラー
の内容を示すエラ一番号あるいはエラーメツセージだけ
であった。すなわち、エラー行番号LINE  の項と
エラ一番号あるいはエラーメツセージDIAGNO8T
ICの項の2つだけが表示されでいた。
〔発明が解決しようとする問題点〕
このためマクロ展開機能あるいは登録集機能を有するコ
ンピュータ用言語の処理では、マクロあるいは登録集原
文の展開後の展開ソースプログラムリストは元のソース
プログラムとは異なった行数、異なった形になり、コン
パイルエラーを修正するときには必ず展開ソースプログ
ラムリストを参照しながら、コンパイルエラーが元のソ
ースプログラムのどこに当るのか、またコンパイルエラ
ーがマクロあるいは登録集原文の中なのか外なのか、さ
らにマクロあるいは登鍮集原文の中の時どのマクロある
いは登鋒集原文なのかを、修正者自身が判断しなければ
ならないという欠点があり、さらに展開ソースプログラ
ムリストなしのコンパイルエラー表示だけでは、修正す
べき箇所の判断すらできないという欠点を有している。
本発明の目的は、これらの欠点を除去し、コンパイルエ
ラーリストの情報を見るだけで修正すべき箇所をわかる
ようにしルコンパイルエラーの表示方式を提供すること
にある。
〔問題点を解決するための手段〕
本発明への構成は、コンピュータ用言語処理のコンパイ
ラのソースプログラムを読込みマクロあるいは登録集原
文を展開処理し前記コンパイラの意味解析・翻訳処理を
してコンパイルエラーを検出しこのコンパイルエラーを
出力処理して表示手段に表示するコンパイルエラー表示
方式において、前記マクロあるいは登録集原文の展開指
示命令のある行番号と、その名称と展開された行数とそ
の展開開始行番号とを含む登録県展開情報の展開テキス
トをつくる展開テキスト生成手段と、前記コンパイルエ
ラーの種類2よびその行番号とを含むコンパイルエラー
テキストと前記展開テキストとカラそのコンパイルエラ
ーが前記ソースプログラム内か前記マクロあるいは登録
原文内かを識別するエラー位置識別手段と、前記コンパ
イルエラーが前記ソースプログラム内のとき前記マクロ
あるいは登録原文の展開前のソースプログラムの先頭か
らの相対行番号を、前記コンパイルエラーが前記マクロ
あるいは登録原文内のとき、このマクロあるいは登録原
文の先頭からの相対行番号を算出して前記表示手段に出
力する行番号算出手段とを含ミ、コンパイルエラーの相
対行位置を明確に表示するようにしたことを’!!l漱
とする。
〔実施例〕
次に本発明を図面により詳細に説明する。
第1図は本発明の一実施例を含むブロック図である。図
において、1は登録−展開情報テキスト(以下展開テキ
ストという)2を作成する展開テキスト生成手段、3は
コンパイルエラーテキスト。
4はエラー位置識別手段、5は相対行番号算出手段、6
はコンパイルエラーの表示手段、7はソースプログラム
ファイル、8はマクロファイルまたは登鎚集ファイル、
9はソース読込みとマクロあるいは登碌集原文の展開処
理手段、10はコンパイラの構文・意味解析8よび翻訳
処理手段、11はコンパイルエラーの出力処理手段を示
している。
本実施例は、マクロあるいは登録集原文の展開を指示す
る命令が書かれた行の行番号とそのマクロあるいは登録
集原文の名前と展開された行数とそのマクロあるいは登
碌集原文の展開が開始された行番号とを含む登録集展開
情報テキストをつくる展開テキスト生成手段1と、コン
パイラが構文解析・意味解析・翻訳の処理段階で出力す
るコンパイルエラーの種類を示す情報とコンパイルエラ
ーのある行番号を含むコンパイルエラーテキスト3と展
開テキスト生成手段1により生成された展開テキスト2
とからコンパイルエラーがソースプログラム内なのかマ
クロあるいは登鋒集原文内なのかを識別するエラー位置
識別手段4と、コンパイルエラーがソースプログラム内
のときマクロあるいは登録集原文の展開前のソースプロ
グラムの頭からのコンパイルエラーの位置を示す相対行
番号を、コンパイルエラーがマクロあるいは登云果原文
内のときマクロあるいは登録集原文の頭からのコンパイ
ルエラーの位置を示す相対行番号を算出して表示手段6
に出力する相対行番号算出手段5とを含んで構成されて
いる。
次に本実施列についてCoBOLi語によるプログラム
例を用いて具体的に説明する。
第1表はこのC0BOLのソースプログラムを示してい
る。
第1表 「第1表(つづき)」 このソースプログラムは、5行目、7行目および10行
目に登録集原文の展開を指示するコピー(copy) 
 命令を含み、また13行目にはコンパイルエラーとな
る記述があるものとする。
次の第2表は、登録集原文を示している。
第2表 登鋒集原文 LIBA 「第2表(つづき)」 登碌集原文 LIBB 登碌集原文 LIBC 第2表のこれら登録集原文は、それぞれrLIBAJ 
、 rLIBBJ  uヨcF rLIBcJ  CJ
名?ilカあり、登録集原文rLIBc」  の6行目
にはコンパイルエラーとなる記述があるものとする。
これら第1表方よび第2表の各左端にある番号は、説明
のために付与した先頭からの行数を示している。
また、次の第3表は登録集原文展開後のソープログラム
リストを示す。
第3表 「第3表(つづき)」 「第3表(つづき)」 再び、第1図を参照して説明する。第1表のソースプロ
グラムはソースプログラムファイル7に格納され、また
rL I B AJ  などの各登録集原文は登録集フ
ァイル8に格納されている。コンパイラのソース読み込
み2よびマクロあるいは登録集原文展開処理手段9の処
理において、ソースプログラムはソースファイル7から
順次読み込まれ、C0PY命令があるとこのcopy命
令で指示された登録集原文の展開を行う。このときテキ
スト生成手段1により展開テキスト2を生成する。
この展開テキストの生成方法は、第2図のフローチャー
トに従って行われる。
まず、ステップ21でC0PY命令で指示された登録集
原文の名前を、次にステップ22でC0PY命令の書か
れた行の行番号を取得する。
さらに、ステップ23で登録集原文展開処理に2いて登
碌集原文の展開が開始された行番号を、ステップ24で
登録集原文の展開行数を計数して取得する。このように
して得た情報からステップ25で展開テキスト2を生成
する。
例えば、第1表からg 3 W4の場合を、!3図を参
照して説明する。まず、ソースプログラムの5行目のc
opy命令については、登録集原文の名前がLIBA、
C0PY命令の書かれた行番号が「5」、展開開始され
た行番号が「6」、展開行数が「2」の展開テキスト1
2を生成する。同様にして、ソースプログラムフ行目の
C0PY命令については、登録集原文の名前がLIBB
、C0PY命令の書かれた行番号が「9」、展開開始さ
れた行番号「10」、展開行数が「4」の展開テキスト
13を、ソースプログラムの10行目のcopy命令に
ついては、登鋒集原文の名前がLIBC1COPY命令
の書かれた行番号が「16」、展開開始された行番号が
r17J、展開行数が「6」の展開テキスト14を生成
する。このときソース読込みはソースプログラムの頭か
ら順次行われるので、展開テキストはC0PY命令の現
れた順序で作成されることになる。この読込み処理終了
時に展開テキストの終了を示すマーク15を付加する。
欠番こ、コンパイラの構文・意味解析・翻訳処理手段1
0による処理に2いては、コンパイルエラーが検出され
ると、コンパイルエラーテキスト3を出力し、このコン
パイルエラーテキスト3は第4図のように示される。す
なわち、第3表の展開ソースプログラムリストに対して
行番号が「22」の行に対するエラーを示すコンパイル
エラーテキスト16が出力され、同様にして行番号が「
25」の行に対するエラーを示すコンパイルエラーテキ
スト17が出力される。
次のコンパイルエラー出力処理手段11による処理番ζ
Bいては、第3図の展開テキスト2と第4より、コンパ
イルエラーがソースプログラム内なのか登録集原文なの
かを識別する情報2よびそのエラーのソースプログラム
あるいは登録集原文の先頭からの相対位置を示す相対行
番号を含むコンパイルエラーを表示手段6に表示する。
次に、コンパイルエラーがソースプログラム内なのか、
登録集原文なのかを識別するエラー位置識別手段4の動
作を第5図のフローチャートにより説明する。まず、ス
テップ31で展開用テキストの最初のテキストに位置付
け、ステップ32でコンパイルエラーが検出された位置
までに現れたC0PY命令により展開された登録巣原文
の展開行数の和を求める行数カウンタを初期化するため
に「0」を設定する。次のステップ33.34で位置付
けた展開テキストのC0PY命令で展開された登碌集原
文の最後の展開行の行番号を行番号カウンタ上に求める
。これは、登碌集原文の展開開始行に展開行数を加えた
値から「1」を減じることにより求まる。次のステップ
35で1行数カウンタに展開行数を加え、ステップ36
で、コンパイルエラーテキストの行番号と行番号カウン
タの値を比較し、コンパイルエラーテキストの行番号の
方が大きいときは、ステップ37で次の展開テキストが
有るかどうかをチェックし1次の展開テキストが有れば
次の展開テキストに位置付けをしてステップ33に戻る
次の展開テキストがないとき、2よびステップ36での
比較の結果コンパイルエラーテキストの行番号の方が小
さいかまたは等しいとき次のステップ39で比較を行う
。すなわち、コンパイルエラーテキストの行番号と位置
付けて3いた展開テキストの展開開始行番号を比較し、
この比較の結果、コンパイルエラーテキストの行番号の
方が大きいか等しいとき、ステップ40でこのエラーは
位置付けて2いた展開テキストが示す登録集原文内のエ
ラーと判定し、コンパイルエラーテキストの行番号の方
が小さいときステップ40でこのエラーはソースプログ
ラム内のエラーと判定する。
例えば第4図に示したコンパイルエラー行番号)16 
、17について、エラー位置識別手段4による識別を行
うと、コンパイルエラーテキスト16のコンパイルエラ
ー行番号は「22」であるので、最初の展開テキスト1
2から求まる登録集原文の最後の展開行の行番号「7」
2よび2番目の展開テキスト13から求まる登録集原文
の最後の展開゛  行の行番号「13」よりも大きい。
そして3番目の展開テキスト14から求まる登碌集原文
の最後の展開行の行番号「22」と等しいので1次に登
餞集原文の展開開始行「17」と比較するとコンパイル
エラー行番号゛の方が大きいので、このコンパイルエラ
ーは登鋒集原文の名前LIBCO中のエラーと判定する
。同じようにコンパイルエラーテキスト17のコンパイ
ルエラー行番号は「25」であるので、これはソースプ
ログラム中のエラーと判定する。
次の第6図は第1図のコンパイルエラーのソースプログ
ラムあるいは登帰集原文の先頭からの位置を示す相対行
番号を得る相対番号算出手段5を説明するフローチャー
トである。まず、ステップ41で、エラー位置識別手段
4による識別の結果をもとに、コンパイルエラーがソー
スプログラム内か登録集原文内かを判定し、コンパイル
エラーがソースプログラム内のとき、ステップ42によ
りコンパイルエラーテキストの行番号からエラー位RR
別手段4によりカウントして2いた行数カウンタの値を
引く。コンパイルエラーが登優集原文内のとき、ステッ
プ43によりコンパイルエラーテキストの行番号からエ
ラー位置識別手段4が位置付けている展開テキストの登
録集原文の展開が開始された行の行番号を引き、その値
に「1」を加える。このようにして得られた値が、ソー
スプログラムあるいは登録集原文の先頭からの相対行番
号となる。
例えば、第4図に示すコンパイルエラーテキストについ
て相対行番号算出手段5番こより相対行番号を求めてみ
ると、コンパイルエラーテキスト16は、登録集原文L
IBC内のエラーであるのでその展開開始行番号「17
」を引き「1」を加えると相対行番号「6」が得られる
。これは第2表に示す登録集原文LIBCのエラー位置
を示している。また、コンパイルエラーテキスト17は
、ソースプログラム内のエラーであるので、行数カウン
タの値「12」を引くと相対行番号は「13」となり、
これは!1表に示すソースプログラムのエラー位置を示
1−でいる。
このようにして得られたコンパイルエラー表示手段6に
表示される。すなわち、コンパイルエラーが発生した位
置の展開ソースプログラムリストの行番号をLINE、
コンパイルエラーの発生した登録集原文の名前をCOP
Y−NAME、コンパイルエラーの発生した位置を示す
相対行番号をRLINB、エラーの種類を示す情報をD
IAGNO8TICとして表示している。この場合、コ
ンパイルエラーがソースプログラム内のときは、COP
Y−NAMIの欄を空白として表示している。
〔発明の効果〕
以上説明したように、本発明は、展開テキストとコンパ
イルエラーテキストとからコンパイルエラーの位置を判
定し、コンパイルエラーのソースプログラムあるいはマ
クロ登碌集原文の先頭からの相対行番号を求め、これら
の情報をコンパイルエラーリストlζ出力することによ
り、コンパイルエラーを修正すべき箇所がソースプログ
ラム内なのか、マクロあるいは登録集原文内なのか、ま
たコンパイルエラーがマクロあるいは登録集原文内のと
きどのマクロあるいは登録集原文なのか、そしてコンパ
イルエラーの位置かもとのソースプログラムやマクロあ
るいは登録集原文の何行目なのかをコンパイルエラーリ
ストの情報を見るだけですぐに判明できるという効果が
ある。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック図、第2図は
第1図の展開テキスト生成手段1を説明するフローチャ
ート、第3図は第2図の展開テキストの一具体例を示す
図、第4図は第1図のコンパイルエラーテキストの具体
例を示す図、第5図は第1図のエラー位置識別手段4を
説明するフローチャート、第6図は第1図の相対行番号
算出手段5を説明するフローチャート、第7図は本実施
例の出力されたコンパイルエラーリストの一例の図であ
る。 1・・・・・・展開テキスト生成手段、2・・・・・・
展開テキスト、3・・・・・・コンパイルエラーテキス
ト、4・・・・・・エラー位置識別手段、5・・・・・
・相対行番号算出手段、6・・・・・・表示手段、7・
・・・・・ソースプログラムフッイカ処理+森。 代理人 弁理士  内 原   晋。

Claims (1)

    【特許請求の範囲】
  1. コンピュータ用言語処理のコンパイラのソースプログラ
    ムを読込みマクロあるいは登録集原文を展開処理し前記
    コンパイラの意味解析・翻訳処理をしてコンパイルエラ
    ーを検出しこのコンパイルエラーを出力処理して表示手
    段に表示するコンパイルエラー表示方式において、前記
    マクロあるいは登録集原文の展開指示命令のある行番号
    と、その名称と展開された行数とその展開始行番号とを
    含む登録集展開情報の展開テキストをつくる展開テキス
    ト生成手段と、前記コンパイルエラーの種類およびその
    行番号とを含むコンパイルエラーテキストと前記展開テ
    キストとからそのコンパイルエラーが前記ソースプログ
    ラムの内か前記マクロあるいは登録原文内を識別するエ
    ラー位置識別手段と、前記コンパイルエラーが前記ソー
    プログラム内のとき前記マクロあるいは登録原文の展開
    前のソースプログラム先頭からの相対行番号を、前記コ
    ンパイルエラーが前記マクロあるいは登録原文内のとき
    このマクロあるいは登録原文の先頭からの相対行番号を
    算出して前記表示手段に出力する行番号算出手段とを含
    み、前記コンパイルエラーの相対行位置を明確に表示す
    るようにしたこと特徴とするコンパイルエラー表示方式
JP60168212A 1985-07-29 1985-07-29 コンパイルエラ−表示方式 Pending JPS6227833A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60168212A JPS6227833A (ja) 1985-07-29 1985-07-29 コンパイルエラ−表示方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60168212A JPS6227833A (ja) 1985-07-29 1985-07-29 コンパイルエラ−表示方式

Publications (1)

Publication Number Publication Date
JPS6227833A true JPS6227833A (ja) 1987-02-05

Family

ID=15863864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60168212A Pending JPS6227833A (ja) 1985-07-29 1985-07-29 コンパイルエラ−表示方式

Country Status (1)

Country Link
JP (1) JPS6227833A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02148138A (ja) * 1988-11-29 1990-06-07 Fujitsu Ltd デバッグ情報付加方式

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5441645A (en) * 1977-09-09 1979-04-03 Casio Comput Co Ltd Error message display system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5441645A (en) * 1977-09-09 1979-04-03 Casio Comput Co Ltd Error message display system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02148138A (ja) * 1988-11-29 1990-06-07 Fujitsu Ltd デバッグ情報付加方式

Similar Documents

Publication Publication Date Title
JPS6227833A (ja) コンパイルエラ−表示方式
JPH01307832A (ja) コンパイラの原始プログラムの文法誤り自動修正方式
JPH1185536A (ja) 原始プログラムのエラー自動修正装置及び方法
JPS5922140A (ja) 対話型コンパイル方式
JP3029368B2 (ja) プログラム誤り検出方法および誤り検出装置
JPS59231649A (ja) コンパイルリスト出力処理方式
JPH04101229A (ja) コンパイルエラー表示制御方式
JPH01155438A (ja) コンパイラ試験方式
JP2024008473A (ja) プログラム変換支援装置、プログラム変換支援方法、およびプログラム
JP2000132405A (ja) インライン展開処理装置及び方法
JP2806976B2 (ja) プログラム内容検査装置
JPH05181706A (ja) 実行時情報出力デバッガ制御文生成装置
JPS63317826A (ja) シンボリックデバッグ方式
JP2607976B2 (ja) デバック方式
JPH04364537A (ja) 並列処理用プログラム最適化方法、装置およびコンパイラ
JP2001147832A (ja) ソースプログラム対応表示方式
JPH03156641A (ja) コンパイル処理方式
JPH02162426A (ja) プログラムコンパイルエラーメッセージの日本語変換システム
JPH04160640A (ja) エラーメッセージ出力システム
JPH0566929A (ja) コンパイラの再コンパイル時間の短縮方式
JPH04270422A (ja) プリコンパイル処理方式
JPH02284239A (ja) 言語処理プログラムの実行方式
JPH06242986A (ja) 外部行番号によるデバッグ方式
JPH03256138A (ja) ソースプログラムの規格準拠度測定方式
JPH0756983A (ja) テキストファイル編集方法及び装置