JP2001325096A - エラー情報表示方法および装置 - Google Patents

エラー情報表示方法および装置

Info

Publication number
JP2001325096A
JP2001325096A JP2000144443A JP2000144443A JP2001325096A JP 2001325096 A JP2001325096 A JP 2001325096A JP 2000144443 A JP2000144443 A JP 2000144443A JP 2000144443 A JP2000144443 A JP 2000144443A JP 2001325096 A JP2001325096 A JP 2001325096A
Authority
JP
Japan
Prior art keywords
node
error message
data type
data
type name
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.)
Granted
Application number
JP2000144443A
Other languages
English (en)
Other versions
JP4240520B2 (ja
Inventor
Tomohito Shimizu
友人 清水
Hideo Takahashi
英男 高橋
Keiichi Katsukura
桂一 勝倉
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000144443A priority Critical patent/JP4240520B2/ja
Publication of JP2001325096A publication Critical patent/JP2001325096A/ja
Application granted granted Critical
Publication of JP4240520B2 publication Critical patent/JP4240520B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

(57)【要約】 【課題】 C++言語などのユーザ定義可能なデータ型
を持つ型付けの強いプログラミング言語のコンパイラが
出力する複雑な構造を持った長いデータ型名を含むエラ
ーメッセージを、エラーメッセージ全体の意味をプログ
ラム開発者が容易に理解可能であるとともに、エラーメ
ッセージに含まれるデータ型名の構造をプログラム開発
者が容易に理解可能であるような形式で表示するエラー
情報表示方法を提供する。 【解決手段】 GUIフロントエンド100は、コンパ
イラ101の出力したエラーメッセージ301を入力
し、そのエラーメッセージをエラーメッセージ構文解析
モジュール102により構文解析して、構文木データ3
02を出力し、次に、エラー情報整形表示モジュール1
03により構文木データ302の内容を構文木の構造に
したがってツリー状に整形表示する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンパイラやイン
タプリタなどのプログラミング言語処理システムに係わ
り、特に前記プログラミング言語処理システムがソース
プログラムの解析処理時にエラーを検出したときに、エ
ラーメッセージを理解容易な型で表示するエラー情報表
示方法に関する。
【0002】
【従来の技術】近年、プログラミング言語として、C+
+言語などの、ユーザ定義データ型を持つ、型付けの強
いプログラミング言語が多く用いられている。ユーザ定
義データ型とは、整数や文字列などの基本的なデータ型
を組み合わせて、プログラム開発者が新たに定義するデ
ータ型のことである。また、型付けの強いプログラミン
グ言語とは、値の代入時にデータ型が厳密に一致しない
場合にエラーとなるプログラミング言語である。このよ
うなプログラミング言語で記述されたソースプログラム
は、コンパイラによってコンパイルされ、コンピュータ
上で実行可能な形式のオブジェクトプログラムへと変換
される。コンパイラは、コンパイル時にソースプログラ
ム中のエラーを検出すると、エラーメッセージを出力し
て、エラーの種類やエラーの検出されたソースプログラ
ム上の箇所などのエラー情報をプログラム開発者に対し
て表示する。プログラム開発者は、エラーメッセージを
読んで、適切なソースプログラム修正方法を判断し、ソ
ースプログラムを修正する必要がある。型付けの強いプ
ログラミング言語では、コンパイラによって検出される
エラーの多くは、代入文における左辺と右辺のデータ型
の不一致をはじめとする、データ型に関連するエラーと
なる。
【0003】さらに、データ型を複雑に組み合わせたユ
ーザ定義データ型が用いられると、データ型名が複雑な
構造を持った長い名前となることがある。C++言語の
プログラムにおいて、テンプレート型と呼ばれるユーザ
定義データ型が用いられた場合には、この傾向は顕著に
なる。C++言語では、文献a:「The C++ pr
ogramming language third e
dition」(B.Stroustrup著、Add
ison−Wesley社刊)の327頁〜354頁に
記述されているように、データ型をパラメタとして、テ
ンプレート型と呼ばれるユーザ定義データ型を定義する
ことができる。テンプレート型名は、パラメタとして与
えられたデータ型の名前を入れ子状に含む名前となるた
め、入れ子状の複雑な構造を持った長い名前となること
がある。コンパイル時にテンプレート型に関連するエラ
ーが発生すると、エラーメッセージにはこの長いテンプ
レート型名が含まれることになる。その結果、ユーザ定
義データ型を持つ、型付けの強いプログラミング言語に
おいては、コンパイル時に出力されるエラーメッセージ
は、データ型名として複雑な構造を持った長い名前を含
むことが多くなる。従来技術では、このような長い名前
を含むエラーメッセージを、単なるテキストとしてその
まま表示していた。
【0004】
【発明が解決しようとする課題】しかし、従来技術で
は、次の理由により、プログラム開発者がエラーメッセ
ージを読んでプログラムの修正方法を判断する効率が著
しく低下するという問題が生じる。 (1)データ型名が長く、エラーメッセージの大部分を
占めるため、エラーメッセージ全体を文章として把握す
ることが困難となる。そのため、エラーメッセージ全体
の意味を理解することが困難となる。 (2)データ型名が長く複雑なため、データ型名の構造
を把握することが困難である。そのため、特にデータ型
の不一致に起因するエラーにおいて、エラーの原因とな
ったデータ型の不一致部分を発見することが困難とな
る。本発明は、前記問題を解消するためのものであり、
次の課題を解決することを目的とする。 (1)長い名前をデータ型名として含むエラーメッセー
ジにおいて、エラーメッセージ全体の意味をプログラム
開発者が容易に理解可能な形式で表示するエラー情報表
示方法の提供。 (2)複雑な構造を持った長い名前をデータ型名として
含むエラーメッセージにおいて、エラーメッセージに含
まれるデータ型名の構造を、プログラム開発者が容易に
理解可能な形式で表示するエラー情報表示方法の提供。
【0005】
【課題を解決するための手段】前記目的を達成するた
め、本発明は、ソースプログラムをオブジェクトプログ
ラムに翻訳する翻訳処理において出力されるエラーメッ
セージのエラー情報表示方法であり、前記翻訳処理にお
いて出力される文章とデータ型名が混在するエラーメッ
セージを構文解析して構文木データを生成し、該生成し
た構文木データにおける各子ノードのノード種別を判定
し、該判定により文字列ノードなら文章を表示し、構造
ノードならデータ型名を表示することにより前記文章と
前記データ型名を分離して表示するようにしている。ま
た、前記データ型名の表示をするとき、前記構文木デー
タにおける構造ノードのツリー構造に基づき該データ型
名をツリー状に構成して表示するようにしている。
【0006】
【発明の実施の形態】以下、本発明の一実施例を詳細に
説明する。本実施例においては、本発明が提供するエラ
ー情報表示方法を、C++言語用コンパイラを操作する
ためのGUI(グラフィカルユーザインタフェース)を
提供するプログラムであるGUIフロントエンドの一部
として実現している。プログラム開発者は、このGUI
フロントエンドを操作することにより、コンパイラの入
力となるソースプログラムの作成および編集を行なうこ
とができる。また、このGUIフロントエンドを操作し
てコンパイルを指示することにより、コンパイラを起動
し、ソースプログラムをコンパイルすることができる。
本実施例におけるGUIフロントエンドは、コンパイル
時にコンパイラがエラーを検出すると、エラーメッセー
ジに含まれるデータ型名を抽出し、ツリー状に整形して
表示することを特徴としている。プログラム開発者は、
このGUIフロントエンドを使用することにより、コン
パイラの出力するエラーメッセージをツリー状に整形し
た形で参照することができる。そのため、エラーメッセ
ージを単なるテキストとして表示する場合に比べて、エ
ラーメッセージ全体の意味を理解することが容易となる
とともに、エラーメッセージに含まれるデータ型名の構
造を理解することが容易となり、適切なソースプログラ
ム修正方法を容易に判断することが可能となる。
【0007】以下、図面を用いて本実施例を詳細に説明
する。図1は、本実施例における、GUIフロントエン
ドを説明するための図である。GUIフロントエンド1
00は、プログラム開発者の操作によってコンパイルを
実行し、コンパイラの出力したエラーメッセージをツリ
ー状に整形表示するGUIプログラムであり、エラーメ
ッセージを構文解析して構文木を出力するエラーメッセ
ージ構文解析モジュール102、構文木をツリー状に整
形表示するエラー情報整形表示モジュール103を有す
る。プログラム開発者は、このGUIフロントエンドを
操作して、ソースプログラムをコンパイルし、その結果
として出力されたエラーメッセージをツリー状に整形表
示した形で参照する。
【0008】コンパイラ101は、ソースプログラムを
コンパイルしてエラーメッセージを出力する従来のコン
パイラであり、GUIフロントエンド100から起動さ
れ、C++言語で記述されたソースプログラム201を
読み込み、コンパイルを実行し、オブジェクトプログラ
ム202を出力する。また、コンパイル時にソースプロ
グラム中のエラーを検出すると、エラー情報を表わすテ
キストデータであるエラーメッセージ301を出力す
る。エラーメッセージ構文解析モジュール102は、コ
ンパイラの出力したエラーメッセージを構文解析するモ
ジュールであり、エラーメッセージ301を入力とし、
そのエラーメッセージを構文解析し、その解析処理結果
を保持する構文木データ302を出力する。エラー情報
整形表示モジュール103は、エラーメッセージの構文
解析結果をツリー状に整形表示するモジュールであり、
構文木データ302を入力とし、その内容を構文木の構
造に従ってツリー状に整形表示する。以上のモジュール
構成によれば、プログラム開発者の操作によってコンパ
イルを実行し、コンパイラの出力したエラーメッセージ
をツリー状に整形表示するGUIフロントエンドが実現
可能である。
【0009】図2は、GUIフロントエンド100の表
示画面を示す図である。GUIフロントエンド表示画面
500は、GUIフロントエンド100の表示画面であ
り、メニュー領域501、ソースプログラム編集領域5
02、エラー情報表示領域503を有する。メニュー領
域501は、プログラム開発者がGUIフロントエンド
に対する操作を指示する領域である。プログラム開発者
は、この領域に表示されているメニュー項目を選択する
ことにより、ソースプログラムの作成や、ソースプログ
ラムのコンパイルなどの操作を指示する。ソースプログ
ラム編集領域502は、ソースプログラムの内容を表示
するとともに、プログラム開発者がソースプログラムの
編集操作を行なう領域である。エラー情報表示領域50
3は、コンパイルの結果出力されたエラーメッセージを
ツリー状に整形表示する領域である。以上の構成の表示
画面によれば、プログラム開発者が、ソースプログラム
を作成および編集でき、またコンパイラを起動してソー
スプログラムをコンパイルでき、またコンパイルの結果
出力されたエラーメッセージを整形された形で参照する
ことのできるGUIフロントエンドを提供することが可
能である。
【0010】次に、本実施例において、GUIフロント
エンドがコンパイラの出力したエラーメッセージをツリ
ー状に整形表示する動作について詳細に説明する。図3
は、プログラム開発者がGUIフロントエンド100を
操作してコンパイルを指示したときの、GUIフロント
エンド100の処理手順を示すPAD図である。ステッ
プ601では、コンパイラ101を起動し、その結果と
してエラーメッセージ301を受け取る。ステップ60
2では、エラーメッセージ構文解析モジュール102を
起動し、エラーメッセージ301を渡し、その結果とし
て構文木データ302を受け取る。ステップ603で
は、エラー情報整形表示モジュール103を起動し、構
文木データ302を渡す。以上の手順により、GUIフ
ロントエンドは、ソースプログラムをコンパイルし、そ
の結果としてエラーメッセージをツリー状に整形表示す
る動作を実現可能である。
【0011】図4は、構文木データ302のデータ構造
を示す図である。構文木データ302は、エラーメッセ
ージの構文解析結果を保持するデータであり、ツリー状
に構成された、エラーメッセージの各構文要素を表わす
データであるノード303を有する。なお、ノードを示
す符号303は上位のノードの1つにしか記載しておら
ず、他の下位のノードには符号303を記載していない
が、これは記載を省略したものである。これらのノード
には次の2つの種別が存在する。1つはエラーメッセー
ジ中の部分文字列を表わす文字列ノードであり、文字列
を保持する。もう1つはエラーメッセージ中の構造を持
つ構文要素を表わす構造ノードであり、複数のノードを
子ノードとして順序付きで保持する。構文木のルートと
なる構造ノードはエラーメッセージ全体を表わし、ルー
ト以外の構造ノードはデータ型名を表わす。
【0012】ノード303は、エラーメッセージの各構
文要素を表わすデータであり、ノード種別3031、文
字列3032を有するとともに、子ノード3033の順
序付きリストを有する。ノード種別3031は、ノード
303の種別を表わす値であり、文字列ノードを表わす
値「D」と、構造ノードを表わす値「S」のいずれかの
値を格納する。文字列3032は、ノード303が表わ
す、エラーメッセージ中の部分文字列である。ノード3
03のノード種別が文字列ノードである場合にのみ使用
される。子ノード3033は、ノード303の子ノード
を指すポインタであり、ノード303内に順序付きリス
トとして複数保持される。ノード303のノード種別が
構造ノードである場合にのみ使用される。以上のデータ
構造によれば、エラーメッセージの構文解析結果を保持
することが可能である。
【0013】図5は、エラーメッセージ構文解析モジュ
ール102が、エラーメッセージの一例としてのエラー
メッセージ301を構文解析処理して、構文木データ3
02を出力する様子を示す図である。なお、本図におい
て、構文木データ302を構成するノード303のう
ち、実線で示したノードは構造ノードであり、破線で示
したノードは文字列ノードである。また、文字列ノード
の内側に示した文字列は、各ノードの保持する文字列3
032の内容である。エラーメッセージ構文解析モジュ
ール102での構文解析処理には、例えば文献b:「C
ompilers Principles,Techn
iques,and Tools」(A.V.Ahoら
著、Addison−Wesley社刊)の181頁〜
182頁に記述されている再帰下降パーサが使用可能で
ある。具体的には、文字「’」に着目してエラーメッセ
ージ中のデータ型名を認識し、また文字
「<」、「,」、「>」に着目してデータ型名に入れ子
状に含まれるデータ型名を認識する再帰下降パーサが使
用可能である。このように、エラーメッセージ構文解析
モジュール102は、エラーメッセージ301を構文解
析して、構文木データ302を出力する。
【0014】図6は、エラー情報整形表示モジュール1
03が、図5に示した内容の構文木データ302を整形
表示したときの、エラー情報表示領域503の表示内容
を示す図である。ツリー5031は、エラーメッセージ
の構造を表わす画面上の図形であり、複数のノード50
32をツリー状に構成して表示したものである。ツリー
5031の構造は、構文木データ302中の構造ノード
に着目したツリー構造に対応している。ノード5032
は、エラーメッセージの各構文要素を表わす画面上の図
形であり、ツリー5031の構成要素である。各ノード
5032は、構文木データ302中の各構造ノードに対
応している。ラベル5033は、ノード5032の表わ
すエラーメッセージまたはデータ型名を、その中に含ま
れるデータ型名を短い記号で置き換えた短縮形式で表わ
す画面上の文字列であり、各ノード5032に付随して
表示される。図において、上側に記されたノードのA<
T1>におけるT1はその下位のノードのBを指してお
り、このA<T1>はA<B>を意味している。また、下側
に記されたA<T1>におけるT1はその下位のノードの
C<T1,T2>を指しており、また、C<T1,T2>に
おけるT1はその下位のノードの内の上側に記されたノ
ードのDを指し、T2はその下位のノードの内の下側に
記されたノードのEを指しており、これにより、C<T
1,T2>はC<D,E>を意味し、さらに、下側に記さ
れたA<T1>はA<C<D,E>>を意味する。このよう
に、エラー情報整形表示モジュール103は、構文木デ
ータ302を、構文木の構造に従ったツリー状に整形表
示する。その結果、エラーメッセージに含まれるデータ
型名がエラーメッセージから分離して表示され、またデ
ータ型名がその構造に従ってツリー状に表示されるた
め、プログラム作成者にとって、エラーメッセージ全体
の意味およびデータ型名の構造を容易に理解可能とな
る。
【0015】図7は、エラー情報整形表示モジュール1
03の構成を示す図である。エラー情報整形表示モジュ
ール103は、構文木をツリー状に整形表示するエラー
情報整形表示ルーチン1031と、エラー情報整形表示
ルーチン1031から呼び出されて、構文木の各ノード
の表わすエラーメッセージまたはデータ型名を短縮形式
で表示するラベル表示ルーチン1032を有する。エラ
ー情報整形表示ルーチン1031は、構文木データ30
2を入力とし、構文木データ302をツリー状に整形表
示するルーチンである。構文木データ302の各ノード
303を画面上でツリー状に構成して表示し、また各ノ
ード303に対してラベル表示ルーチン1032を呼び
出すことにより、それらのノードの表わすエラーメッセ
ージまたはデータ型名を短縮形式で表示する。構文木デ
ータ302の各ノード303を画面上でツリー状に構成
して表示する処理は、ツリー構造を持ったデータをその
構造に対応したツリー状に表示する一般的な方法を用い
ればよい。各ノード303に対してラベル表示ルーチン
1032を呼び出す処理は、ツリー構造を持ったデータ
の各ノードについて特定の処理を行なう一般的な方法を
用いればよい。ラベル表示ルーチン1032は、ノード
303を入力とし、ノード303の表わすエラーメッセ
ージまたはデータ型名を短縮形式で表示するルーチンで
ある。以上の構成によれば、構文木データ302を図6
に示すようなツリー状に整形表示することが可能であ
る。
【0016】図8は、ノード303を入力とし、ノード
303の表わすエラーメッセージまたはデータ型名を短
縮形式で表示する、ラベル表示ルーチン1032の処理
手順を示すPAD図である。ステップ611では、ノー
ド303の子ノード3033各々について順番に、ステ
ップ612を実行する。ステップ612では、子ノード
3033が指しているノード303のノード種別303
1の値を判定し、文字列ノードを表わす「D」ならステ
ップ613を、構造ノードを表わす「S」ならステップ
614を実行する。ステップ613では、子ノード30
33の指すノード303の文字列3032を表示する。
なお、ステップ612での判定により、ステップ613
の実行対象となる、子ノード3033の指すノード30
3は常に文字列ノードである。ステップ614では、短
い記号を表示する。なお、ステップ612での判定によ
り、ステップ614の実行対象となる、子ノード303
3の指すノード303は常に構造ノードである。以上の
手順によれば、ノード303の表わすエラーメッセージ
またはデータ型名を、その中に含まれるデータ型名を短
い記号で置き換えた短縮形式で表示することが可能であ
る。
【0017】次に、具体的なC++プログラムの例を用
いて、本実施例におけるGUIフロントエンドのエラー
メッセージ整形表示動作について説明する。図9は、前
述の従来技術の項で記載した文献aの427頁〜687
頁に記述されているC++標準ライブラリを用いて記述
されたソースプログラム201の一例を示す図である。
変数宣言文2011では、C++標準ライブラリの提供
するテンプレート型へのポインタ型の変数p1を、ポイ
ンタの指す領域の値を変更してはならないことを意味す
るconst修飾子を付けて宣言している。変数宣言文
2012では、変数宣言文2011と同じテンプレート
型へのポインタ型の変数p2を、const修飾子を付
けずに宣言している。const修飾子の有無のため、
p1とp2は異なるデータ型となる。また、代入文の左
辺と右辺のデータ型が異なる場合にデータ型を一致させ
るためにコンパイラが自動的に行なう暗黙の型変換は、
const修飾子の付いたポインタ型からconst修
飾子の付かないポインタ型への代入には適用されない。
そのため、p1からp2への代入は型の不一致エラーと
なる。代入文2013では、p1からp2への代入を行
なっている。コンパイラは、この代入文をデータ型の不
一致エラーとして検出する。ソースプログラム201
は、型の不一致エラーを含んでいるため、このソースプ
ログラムをコンパイルすると、コンパイラは型の不一致
エラーを検出し、エラーメッセージを出力する。出力さ
れるエラーメッセージは図10のようになる。
【0018】図10は、図9のソースプログラムのコン
パイル時に、コンパイラが出力するエラーメッセージ3
01の一例を示す図である。データ型名部分3011
は、エラーメッセージ302中に含まれるデータ型名を
表わす文字列である。データ型名部分3012は、デー
タ型名部分3011と同様に、エラーメッセージ302
中に含まれるデータ型名を表わす文字列である。データ
型名部分3012の内容は、データ型名部分3011か
ら先頭の文字列constを取り除いた文字列と等しく
なっている。このように、C++標準ライブラリの提供
するテンプレート型のように、長く複雑な名前を持つデ
ータ型の不一致エラーがあった場合、コンパイラの出力
するエラーメッセージをそのまま表示しても、データ型
名を表わす文字列がエラーメッセージの大部分を占める
ため、プログラム開発者がエラーメッセージを文章とし
て把握することが困難である。また、データ型名が長く
複雑なため、エラーの原因となったデータ型のわずかな
不一致部分を発見することが困難である。
【0019】本発明によれば、図10のような理解が困
難なエラーメッセージであっても、図11に示すように
ツリー状に整形表示され、容易に理解可能となる。図1
1は、GUIフロントエンドのエラー表示領域504
に、図10のエラーメッセージを整形表示したときの表
示内容を示したものである。この表示内容によれば、エ
ラーメッセージに含まれる長いデータ型名がエラーメッ
セージから分離して表示されており、また複雑な構造を
持った長いデータ型名の構造がツリー状に表示されてい
るため、エラーメッセージ全体の意味が容易に理解可能
であるとともに、const修飾子の有無というデータ
型名の相違点を容易に発見することが可能である。
【0020】以上説明したように、本発明を適用したG
UIフロントエンドによれば、複雑な構造を持った長い
名前をデータ型名として含むエラーメッセージを、エラ
ーメッセージ全体の意味をプログラム開発者が容易に理
解可能であるとともに、データ型名の構造をプログラム
開発者が容易に理解可能な形式で表示することができ
る。
【0021】図12は、本発明を実現するコンピュータ
システムのハードウェア構成の一例を示す図である。コ
ンピュータシステム9001は、GUIフロントエンド
などの各種プログラムを実行するためのCPU900
2、CPUが実行するプログラムや一時データを格納す
るための主記憶装置9003、コンパイラの入力となる
ソースプログラムなどのファイルを格納するための外部
記憶装置9004、プログラム開発者がGUIフロント
エンドの表示画面を参照するための表示装置9005、
プログラム開発者がGUIフロントエンドを操作するた
めの入力装置9006を有する。主記憶装置9003に
は、GUIフロントエンド100、コンパイラ101が
プログラムとして格納されるとともに、一時データを格
納するためのワーク領域9010が格納される。ワーク
領域9010には、エラーメッセージ301、構文木デ
ータ302が、GUIフロントエンドおよびコンパイラ
による処理の実行中に格納される。外部記憶装置900
4には、ソースプログラム201、オブジェクトプログ
ラム202がファイルとして格納される。以上の構成の
コンピュータシステムによれば、本発明を実現すること
が可能である。
【0022】本実施例においては、プログラミング言語
処理システムとしてC++言語用コンパイラを用いた
が、本発明は、C++言語以外のプログラミング言語に
も適用可能である。また、インタプリタなどコンパイラ
以外の種類のプログラミング言語処理システムにも適用
可能である。
【0023】
【発明の効果】以上説明したように、本発明によれば、
長い名前をデータ型名として含むエラーメッセージにお
いて、エラーメッセージ全体の意味をプログラム開発者
が容易に理解可能な形式で表示するエラー情報表示方法
を提供することができる。また、複雑な構造を持った長
い名前をデータ型名として含むエラーメッセージにおい
て、エラーメッセージに含まれるデータ型名の構造を、
プログラム開発者が容易に理解可能な形式で表示するエ
ラー情報表示方法を提供することができる。
【図面の簡単な説明】
【図1】本発明を適用したGUIフロントエンドを説明
するための図である。
【図2】本発明におけるGUIフロントエンドの表示画
面を示す図である。
【図3】本発明におけるGUIフロントエンドの処理手
順を示すPAD図である。
【図4】本発明における構文木データのデータ構造を示
す図である。
【図5】本発明におけるエラーメッセージ構文解析モジ
ュールがエラーメッセージを構文解析処理して構文木デ
ータを出力する経緯を説明するための図である。
【図6】本発明におけるエラー情報表示領域の表示内容
を示す図である。
【図7】本発明におけるエラー情報整形表示モジュール
の構成を示す図である。
【図8】本発明におけるラベル表示ルーチンの処理手順
を示すPAD図である。
【図9】C++標準ライブラリを用いて記述されたソー
スプログラムの一例を示す図である。
【図10】本発明におけるコンパイラが出力するエラー
メッセージの一例を示す図である。
【図11】図10のエラーメッセージの一例を整形表示
したときのエラー情報表示領域の表示内容を示す図であ
る。
【図12】本発明を実現するコンピュータシステムのハ
ードウェア構成の一例を示す図である。
【符号の説明】
100 GUIフロントエンド 101 コンパイラ 102 エラーメッセージ構文解析モジュール 103 エラー情報整形表示モジュール 201 ソースプログラム 202 オブジェクトプログラム 301 エラーメッセージ 302 構文木データ 303 ノード 3031 ノード種別 3032 文字列 3033 子ノード 9001 コンピュータシステム 9002 CPU 9003 主記憶装置 9004 外部記憶装置 9005 表示装置 9006 入力装置 9010 ワーク領域
───────────────────────────────────────────────────── フロントページの続き (72)発明者 勝倉 桂一 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア事業部内 Fターム(参考) 5B076 EC03 5B081 CC11 CC62 5E501 AA02 AC10 BA07 CA03 DA05 EA12 FA13 FA44 FB44

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムをオブジェクトプログ
    ラムに翻訳する翻訳処理において出力されるエラーメッ
    セージのエラー情報表示方法であって、 前記翻訳処理において出力される文章とデータ型名が混
    在するエラーメッセージを構文解析して構文木データを
    生成し、 該生成した構文木データにおける各子ノードのノード種
    別を判定し、 該判定により文字列ノードなら文章を表示し、構造ノー
    ドならデータ型名を表示することにより前記文章と前記
    データ型名を分離して表示することを特徴とするエラー
    情報表示方法。
  2. 【請求項2】 請求項1記載のエラー情報表示方法にお
    いて、 前記データ型名の表示をするとき、前記構文木データに
    おける構造ノードのツリー構造に基づき該データ型名を
    ツリー状に構成して表示することを特徴とするエラー情
    報表示方法。
  3. 【請求項3】 ソースプログラムをオブジェクトプログ
    ラムに翻訳する翻訳処理において出力されるエラーメッ
    セージのエラー情報表示装置であって、 前記翻訳処理において出力される文章とデータ型名が混
    在するエラーメッセージを構文解析して構文木データを
    生成する手段と、 該生成した構文木データにおける各子ノードのノード種
    別を判定する手段と、 該判定により文字列ノードなら文章を表示し、構造ノー
    ドならデータ型名を表示することにより前記文章と前記
    データ型名を分離して表示する表示手段を有することを
    特徴とするエラー情報表示装置。
  4. 【請求項4】 請求項3記載のエラー情報表示装置にお
    いて、 前記表示手段は、前記データ型名の表示をするとき、前
    記構文木データにおける構造ノードのツリー構造に基づ
    き該データ型名をツリー状に構成して表示することを特
    徴とするエラー情報表示装置。
  5. 【請求項5】 ソースプログラムをオブジェクトプログ
    ラムに翻訳する翻訳処理において出力される文章とデー
    タ型名が混在するエラーメッセージを入力する手順と、 該エラーメッセージを構文解析して構文木データを生成
    する手順と、 該生成した構文木データにおける各子ノードのノード種
    別を判定する手順と、 該判定により文字列ノードなら文章を表示し、構造ノー
    ドならデータ型名を前記構文木データにおける構造ノー
    ドのツリー構造に基づきツリー状に構成して表示する手
    順を有するエラー情報表示プログラムを記録したコンピ
    ュータ読み取り可能な記録媒体。
JP2000144443A 2000-05-17 2000-05-17 エラー情報表示方法および装置 Expired - Fee Related JP4240520B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000144443A JP4240520B2 (ja) 2000-05-17 2000-05-17 エラー情報表示方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000144443A JP4240520B2 (ja) 2000-05-17 2000-05-17 エラー情報表示方法および装置

Publications (2)

Publication Number Publication Date
JP2001325096A true JP2001325096A (ja) 2001-11-22
JP4240520B2 JP4240520B2 (ja) 2009-03-18

Family

ID=18651101

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000144443A Expired - Fee Related JP4240520B2 (ja) 2000-05-17 2000-05-17 エラー情報表示方法および装置

Country Status (1)

Country Link
JP (1) JP4240520B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356275B2 (en) 2006-02-01 2013-01-15 Fujitsu Limited Program and method for displaying relationships between objects
JP2017102597A (ja) * 2015-11-30 2017-06-08 京セラドキュメントソリューションズ株式会社 情報処理装置、画像形成装置
CN113641873A (zh) * 2021-07-09 2021-11-12 厦门雅基软件有限公司 数据处理方法、装置、电子设备及可读存储介质
JP2022041562A (ja) * 2020-09-01 2022-03-11 株式会社東芝 開発支援装置、方法及びプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356275B2 (en) 2006-02-01 2013-01-15 Fujitsu Limited Program and method for displaying relationships between objects
JP2017102597A (ja) * 2015-11-30 2017-06-08 京セラドキュメントソリューションズ株式会社 情報処理装置、画像形成装置
JP2022041562A (ja) * 2020-09-01 2022-03-11 株式会社東芝 開発支援装置、方法及びプログラム
JP7419196B2 (ja) 2020-09-01 2024-01-22 株式会社東芝 開発支援装置、方法及びプログラム
CN113641873A (zh) * 2021-07-09 2021-11-12 厦门雅基软件有限公司 数据处理方法、装置、电子设备及可读存储介质
CN113641873B (zh) * 2021-07-09 2022-07-22 厦门雅基软件有限公司 数据处理方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
JP4240520B2 (ja) 2009-03-18

Similar Documents

Publication Publication Date Title
US7761788B1 (en) System and method for capturing document style by example
JP2609093B2 (ja) ソフトウエアプログラムを生成するための装置及びその方法
JP4140980B2 (ja) プログラムツリーを表示するコンピュータプログラムの構文依存しない表示方法
US7937688B2 (en) System and method for context-sensitive help in a design environment
US9710243B2 (en) Parser that uses a reflection technique to build a program semantic tree
JPS6375835A (ja) 目的コ−ド、プログラム・リスト及び設計文書を生成する装置
US20130152061A1 (en) Full fidelity parse tree for programming language processing
US8701086B2 (en) Simplifying analysis of software code used in software systems
US10691434B2 (en) System and method for converting a first programming language application to a second programming language application
JP2001325096A (ja) エラー情報表示方法および装置
JP2879099B1 (ja) 抽象構文木処理方法、抽象構文木処理プログラムを記録したコンピュータ読み取り可能な記録媒体、抽象構文木データを記録したコンピュータ読み取り可能な記録媒体、及び、抽象構文木処理装置
JP3418544B2 (ja) プログラムのテストデータ自動生成装置
KR102614967B1 (ko) 자바스크립트의 중간 언어 기반 의미론 추출 자동화 시스템 및 방법
JP3835182B2 (ja) 文書作成支援装置
JPH07182179A (ja) オブジェクト指向データベース管理装置
Willink A text model-Use your favourite M2M for M2T.
JP2003050722A (ja) プログラム解析システムとプログラム解析方法
JP3003459B2 (ja) プログラム作成支援装置
Bianchi et al. Generating the analytic component parts of syntax-directed editors with efficient-error recovery
Vysoký et al. INGRID: Creating Languages in MPS from ANTLR Grammars
Lundström et al. Extending Java with String Interpolation Using ExtendJ
CN116185415A (zh) 一种JSP页面转Thymeleaf页面的转换方法及装置
CN112988164A (zh) 文本转换方法、文本转换装置、文本转换设备及存储介质
JP2000089965A (ja) 言語処理システム、その方法および言語処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4458491B2 (ja) テストコマンドファイル作成システムと方法およびプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040317

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080715

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081221

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees