JP2005316646A - コンパイルプログラム、およびコンパイル方法 - Google Patents

コンパイルプログラム、およびコンパイル方法 Download PDF

Info

Publication number
JP2005316646A
JP2005316646A JP2004132710A JP2004132710A JP2005316646A JP 2005316646 A JP2005316646 A JP 2005316646A JP 2004132710 A JP2004132710 A JP 2004132710A JP 2004132710 A JP2004132710 A JP 2004132710A JP 2005316646 A JP2005316646 A JP 2005316646A
Authority
JP
Japan
Prior art keywords
error
directory
source
program
detected
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
JP2004132710A
Other languages
English (en)
Inventor
Hirobumi Tani
博文 谷
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.)
Funai Electric Co Ltd
Original Assignee
Funai Electric Co 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 Funai Electric Co Ltd filed Critical Funai Electric Co Ltd
Priority to JP2004132710A priority Critical patent/JP2005316646A/ja
Publication of JP2005316646A publication Critical patent/JP2005316646A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 複数のディレクトリに点在して記憶している複数のソースプログラムをコンピュータに分割コンパイルさせ、このときに検出したエラーの内容を示すエラーメッセージが選択されたとき、この選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプするコンパイルプログラムを提供する。
【解決手段】 コンパイルプログラムは、処理メッセージを表示部4に表示している状態で、いずれかのエラーメッセージが選択されると、エラーの原因があるソースファイルの名前、および行番号を記憶する(s11)。コンパイルプログラムは、処理メッセージ全体を解析して、s11で記憶したソースファイルを記憶しているディレクトリを検出する(s12)。そして、s12で検出したディレクトリ、およびs11で記憶したソースファイルの名前、および行番号に基づいて、ジャンプする(s13)。
【選択図】 図5

Description

この発明は、複数のディレクトリに点在して記憶している複数のソースプログラムをコンピュータに分割コンパイルさせるコンパイルプログラム、およびコンパイル方法に関する。
従来、ソースプログラムをコンパイルするコンパイルプログラムには、コンパイル時に検出したエラー毎に、その内容を示すエラーメッセージと、そのエラーの原因となったソースプログラムの行と、を対応づけたエラーメッセージファイルを作成し、コンパイル完了後に、これをコンピュータの表示部に表示する機能が設けられている。また、多くのコンパイルプログラムは、特許文献1に示されているように、このエラーメッセージファイルの内容を表示部に表示した後、いずれかのエラーメッセージが選択されると、選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプする。したがって、プログラマはコンパイル時に検出されたエラーのエラーメッセージを選択するだけで、そのエラーの原因があるソースプログラムの行に対して修正を加えることができ、ソースプログラムにおけるエラーの修正が効率的に行える。
特開平4−182841号公報
しかしながら、特許文献1等で提案されているコンパイルプログラムは、コンパイルする対象のソースプログラムが1つであることを前提としたものであったので、コンパイルの開始前にソースプログラムが記憶されているディレクトリを予め特定しておくことができた。言い換えれば、ソースプログラムを記憶しているディレクトリが特定されているので、選択されたエラーメッセージに対応するエラーが検出されたソースプログラムを開いて、エラーの原因がある行にジャンプすることができた。
しかし、最近では、複数のディレクトリに点在して記憶している複数のソースプログラムを分割コンパイルするコンパイルプログラムが普及している。このコンパイルプログラムは、コンパイル時に、検出したエラー毎に、そのエラーの原因となったソースプログラムの名前および行と、その内容を示すエラーメッセージを対応づけたエラーメッセージファイルを作成しているだけであり、このソースプログラムを記憶しているディレクトリを特定する情報については対応づけていなかった。このため、選択されたエラーメッセージからエラーが検出されたソースプログラムが記録されているディレクトリを特定することができず、エラーメッセージが選択されても、選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプすることができなかった。したがって、プログラマがエラーメッセージからエラーが検出されたソースプログラムを記憶しているディレクトリを判断して、このソースプログラムを開かなければ、エラーの原因を修正することができず、ソースプログラムにおけるエラーの修正が効率的に行えないという問題があった。
この発明の目的は、複数のディレクトリに点在して記憶している複数のソースプログラムをコンピュータに分割コンパイルさせ、このときに検出したエラーの内容を示すエラーメッセージが選択されたとき、この選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプすることができるコンパイルプログラム、およびコンパイル方法を提供することにある。
この発明のコンパイルプログラムは、上記課題を解決するために以下の構成を備えている。
複数のディレクトリに点在して記憶している複数のソースプログラムを、コンピュータに分割コンパイルさせるコンパイルプログラムにおいて、
分割コンパイルする複数のソースプログラムのディレクトリ構造の入力を受け付ける第1のステップと、
前記第1のステップで受け付けた前記ディレクトリ構造に基づいて、複数のソースプログラムを分割コンパイルする第2のステップと、
前記第2のステップの分割コンパイル時におけるディレクトリの移動、および検出したエラーのエラーメッセージを含む処理メッセージを時系列に生成する第3のステップと、
前記第2のステップによる分割コンパイルの完了時に、前記第3のステップが生成した処理メッセージを表示部に表示する第4のステップと、
前記第4のステップで表示部に表示された処理メッセージに含まれているエラーメッセージが選択されたとき、この処理メッセージ全体を解析してエラーの原因となったソースプログラムを記憶しているディレクトリを検出する第5のステップと、
前記第5のステップで検出したディレクトリに記憶されているエラーの原因となったソースプログラムを表示部に表示する第6のステップと、をコンピュータに実行させる。
この構成では、第1のステップが分割コンパイルする複数のソースプログラムのディレクトリ構造の入力を受け付ける。ここで入力を受け付けるディレクトリ構造は、分割コンパイルする複数のソースプログラムのそれぞれについて、記憶しているディレクトリを示す情報である。第2のステップが、第1のステップで受け付けたディレクトリ構造に基づいて、ソースプログラム毎にコンパイルする。また、第3のステップがディレクトリの移動、および検出したエラーのエラーメッセージを含む処理メッセージを時系列に生成する。第4のステップが第3のステップで生成された処理メッセージを表示部に表示し、第5のステップが処理メッセージに含まれているエラーメッセージが選択されると、処理メッセージ全体を解析して、選択されたエラーメッセージのエラーに対応するソースプログラムを記憶しているディレクトリを検出する。処理メッセージには、上述したように、ディレクトリの移動が含まれているので、このエラーメッセージの直前に移動したディレクトリを検出することにより、選択されたエラーメッセージのエラーに対応するソースプログラムを記憶しているディレクトリを検出することができる。そして、第6のステップが第5のステップで検出したディレクトリに記憶されている、選択されたエラーメッセージのエラーに対応するソースプログラムを表示部に表示する。
このように、複数のディレクトリに点在して記憶している複数のソースプログラムをコンピュータに分割コンパイルさせ、このときに検出したエラーの内容を示すエラーメッセージが選択されたとき、この選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプすることができ、ソースプログラムにおけるエラーの修正が効率的に行える。
この発明によれば、複数のディレクトリに点在して記憶している複数のソースプログラムをコンピュータに分割コンパイルさせ、このときに検出したエラーの内容を示すエラーメッセージが選択されたとき、この選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプすることができるので、ソースプログラムにおけるエラーの修正が効率的に行える。
以下、この発明の実施形態について説明する。
図1は、この発明の実施形態であるコンパイルプログラムがインストールされた情報処理装置の構成を示すブロック図である。この実施形態の情報処理装置1は、本体の動作を制御する制御部2と、本体に対して入力操作を行うキーボードやマウス等を有する操作部3と、本体の動作状態を表示する表示部4と、この実施形態のコンパイルプログラムや、このコンパイルプログラムによりコンパイルするソースプログラム等を記憶する記憶部5と、を備えている。この情報処理装置1は、公知のパーソナルコンピュータと同様の構成である。
この実施形態のコンパイルプログラムは、複数のディレクトリに点在して記憶している複数のソースプログラムを独立してコンパイルする、分割コンパイルが行えるソフトウェアである。分割コンパイルでは、指定された複数のソースプログラムを独立してコンパイルする。したがって、プログラマがコンパイルする必要のないソースプログラム(例えばすでにコンパイルを完了しているソースプログラム)を指定しなければ、無駄なコンパイルが行われることはない。コンパイルされたソースプログラム毎にオブジェクトが生成され、リンカによってこれらのオブジェクトが結合されて、実行可能なプログラムになる。
次に、情報処理装置1における分割コンパイルの動作について説明する。コンパイルするソースプログラムsample1〜7は、記憶部5に記憶されている。図2(A)に示すように、sample1〜4の4つのソースプログラムは、そのディレクトリ構造が/hoom/foo/source/dir1/であり、sample5〜7の3つのソースプログラムは、そのディレクトリ構造が/hoom/foo/source/dir2/であるものとして説明する。
図3は、この実施形態のコンパイルプログラムの動作を示すフローチャートである。情報処理装置1は、操作部3において分割コンパイルの実行を指示する入力操作が行われると、この処理を開始する。このとき、プログラマは、操作部3において、分割コンパイルするソースプログラムsample1〜7のディレクトリ構造を指定する入力操作を行っている。情報処理装置1は、入力されたディレクトリ構造に基づいて、sample1〜7の7つのソースプログラムを順々に読み出し(s1)、読み出したソースプログラムをコンパイルする(s2)。また、コンパイルプログラムは、コンパイルするソースプログラムを読み出すディレクトリの移動履歴、コンパイル時に検出したエラーの内容、そのエラーが検出されたソースプログラムのファイル名、行番号を処理メッセージとして時系列に記憶する(s3)。コンパイルプログラムは、今回指定された全てのソースプログラムについてコンパイルを完了するまで(s4)、上記s1〜s3の処理を繰り返す。コンパイルプログラムは、今回指定された全てのソースプログラムについてコンパイルを完了すると、s3で記憶した処理メッセージからなるファイルを表示部4に表示する(s5)。
図4は、s5で表示部に表示された処理メッセージの例を示す図である。図4において、(1)、(2)、(3)を付した行がエラーメッセージであり、(1)を付した行はsample1というソースプログラムの107行目にエラーの原因があることを示唆するエラーメッセージであり、(2)を付した行はsample1というソースプログラムの197行目にエラーの原因があることを示唆するエラーメッセージであり、(3)を付した行はsample6というソースプログラムの45行目にエラーの原因があることを示唆するエラーメッセージである。
また、図4において(a)、(b)、(c)、(d)、(e)、(f)を付した行は、コンパイルするソースプログラムを読み出すディレクトリの移動履歴を示すメッセージであり、(a)を付した行は/hoom/foo/source/に移動したことを示しており、(b)を付した行は/hoom/foo/source/dir1/に移動したことを示しており、(c)を付した行は/hoom/foo/source/dir1/から離れたことを示しており、(d)を付した行は/hoom/foo/source/dir2/に移動したことを示しており、(e)を付した行は/hoom/foo/source/dir2/から離れたことを示しており、(f)を付した行は/hoom/foo/source/から離れたことを示している。
コンパイルプログラムは、図4に示す処理メッセージを表示部4に表示している状態で、いずれかのエラーメッセージが選択されるか(s6)、終了キーが操作されるのを待つ(s7)。コンパイルプログラムは、いずれかのエラーメッセージが選択されると、今回選択されたエラーメッセージのエラーの原因となったソースプログラムの行にジャンプするジャンプ処理を行う(s8)。また、終了キーが操作されると、本処理を終了する。
図5は、この実施形態のコンパイルプログラムのジャンプ処理を示すフローチャートである。コンパイルプログラムは、今回選択されたエラーメッセージが示している、エラーの原因があるソースファイルの名前、および行番号を記憶する(s11)。コンパイルプログラムは、処理メッセージ全体を解析して、s11で記憶したソースファイルを記憶しているディレクトリを検出するディレクトリ検出処理を行う(s12)。このディレクトリ検出処理は、図6に示すように、今回指定されたエラーメッセージの行から1行ずつ上の行を解析し、ディレクトリを示している行を検出すると、その行が示しているディレクトリが今回選択されたエラーメッセージが示しているエラーの原因があるソースファイルを記憶しているディレクトリとして検出する(s21〜s23)。
例えば、図4に示す処理メッセージにおいて、(1)、または(2)を示すエラーメッセージが選択された場合、エラーの原因があるソースファイルを記憶しているディレクトリとして、この処理メッセージの上から2行目において示されている、/hoom/foo/source/dir1/を検出する。また、(3)を示すエラーメッセージが選択された場合、エラーの原因があるソースファイルを記憶しているディレクトリとして、この処理メッセージの上から10行目において示されている、/hoom/foo/source/dir2/を検出する。
コンパイルプログラムは、s12で検出したディレクトリ、およびs11で記憶したソースファイルの名前、および行番号に基づいて、今回選択されたエラーメッセージに対応するソースプログラムにジャンプする(s13)。s13では、該当するソースファイルを開く。これにより、表示部4には、今回選択されたエラーメッセージに対応するソースプログラムが表示される。このとき、カーソルはエラーの原因がある行に表示される。このように、複数のディレクトリに点在して記憶している複数のソースプログラムをコンピュータに分割コンパイルさせ、このときに検出したエラーの内容を示すエラーメッセージが選択されたとき、この選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプすることができる。したがって、プログラマがソースプログラムにおけるエラーの修正を効率的に行える。
また、コンパイルプログラムは、s13でジャンプした後に、特定の操作が行われると(s9)、s5に戻って処理メッセージを表示する。一方、終了キーが操作されると(s10)、本処理を終了する。したがって、プログラマは、今回の分割コンパイルで検出されたエラーが複数であっても、これらのエラーに対して1つずつ修正を行うことができる。
この発明の実施形態であるコンパイルプログラムがインストールされた情報処理装置の構成を示すブロック図である。 ソースプログラムのディレクトリ構造を示す図である。 この実施形態のコンパイルプログラムの動作を示すフローチャートである。 s5で表示部に表示された処理メッセージの例を示す図である。 この実施形態のコンパイルプログラムのジャンプ処理を示すフローチャートである。 この実施形態のコンパイルプログラムのディレクトリ検出処理を示すフローチャートである。
符号の説明
1−情報処理装置
2−制御部
3−操作部
4−表示部
5−記憶部

Claims (4)

  1. 複数のディレクトリに点在して記憶している複数のソースプログラムを、コンピュータに分割コンパイルさせるコンパイルプログラムにおいて、
    分割コンパイルする複数のソースプログラムのディレクトリ構造の入力を受け付ける第1のステップと、
    前記第1のステップで受け付けた前記ディレクトリ構造に基づいて、複数のソースプログラムを分割コンパイルする第2のステップと、
    前記第2のステップの分割コンパイル時におけるディレクトリの移動、および検出したエラーのエラーメッセージを含む処理メッセージを時系列に生成する第3のステップと、
    前記第2のステップによる分割コンパイルの完了時に、前記第3のステップが生成した処理メッセージを表示部に表示する第4のステップと、
    前記第4のステップで表示部に表示された処理メッセージに含まれているエラーメッセージが選択されたとき、このエラーメッセージの直前に示されているディレクトリを、エラーの原因となったソースプログラムを記憶しているディレクトリとして検出する第5のステップと、
    前記第5のステップで検出したディレクトリに記憶されているエラーの原因となったソースプログラムを表示部に表示する第6のステップと、をコンピュータに実行させるコンパイルプログラム。
  2. 複数のディレクトリに点在して記憶している複数のソースプログラムを、コンピュータに分割コンパイルさせるコンパイルプログラムにおいて、
    分割コンパイルする複数のソースプログラムのディレクトリ構造の入力を受け付ける第1のステップと、
    前記第1のステップで受け付けた前記ディレクトリ構造に基づいて、複数のソースプログラムを分割コンパイルする第2のステップと、
    前記第2のステップの分割コンパイル時におけるディレクトリの移動、および検出したエラーのエラーメッセージを含む処理メッセージを時系列に生成する第3のステップと、
    前記第2のステップによる分割コンパイルの完了時に、前記第3のステップが生成した処理メッセージを表示部に表示する第4のステップと、
    前記第4のステップで表示部に表示された処理メッセージに含まれているエラーメッセージが選択されたとき、この処理メッセージ全体を解析してエラーの原因となったソースプログラムを記憶しているディレクトリを検出する第5のステップと、
    前記第5のステップで検出したディレクトリに記憶されているエラーの原因となったソースプログラムを表示部に表示する第6のステップと、をコンピュータに実行させるコンパイルプログラム。
  3. 複数のディレクトリに点在して記憶している複数のソースプログラムを分割コンパイルするコンパイル方法において、
    入力部において、分割コンパイルする複数のソースプログラムのディレクトリ構造の入力を受け付け、ここで受け付けた前記ディレクトリ構造に基づいて、複数のソースプログラムを分割コンパイルするとともに、この分割コンパイル時におけるディレクトリの移動、および検出したエラーのエラーメッセージを含む処理メッセージを時系列に生成し、分割コンパイルの完了時に、ここで生成した処理メッセージを表示部に表示し、表示部に表示した処理メッセージに含まれているエラーメッセージが選択されたとき、このエラーメッセージの直前に示されているディレクトリを、エラーの原因となったソースプログラムを記憶しているディレクトリとして検出し、ここで検出したディレクトリに記憶されているエラーの原因となったソースプログラムを表示部に表示するコンパイル方法。
  4. 複数のディレクトリに点在して記憶している複数のソースプログラムを分割コンパイルするコンパイル方法において、
    入力部において、分割コンパイルする複数のソースプログラムのディレクトリ構造の入力を受け付け、ここで受け付けた前記ディレクトリ構造に基づいて、複数のソースプログラムを分割コンパイルするとともに、この分割コンパイル時におけるディレクトリの移動、および検出したエラーのエラーメッセージを含む処理メッセージを時系列に生成し、分割コンパイルの完了時に、ここで生成した処理メッセージを表示部に表示し、表示部に表示した処理メッセージに含まれているエラーメッセージが選択されたとき、このエラーメッセージ全体を解析してエラーの原因となったソースプログラムを記憶しているディレクトリを検出し、ここで検出したディレクトリに記憶されているエラーの原因となったソースプログラムを表示部に表示するコンパイル方法。
JP2004132710A 2004-04-28 2004-04-28 コンパイルプログラム、およびコンパイル方法 Pending JP2005316646A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004132710A JP2005316646A (ja) 2004-04-28 2004-04-28 コンパイルプログラム、およびコンパイル方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004132710A JP2005316646A (ja) 2004-04-28 2004-04-28 コンパイルプログラム、およびコンパイル方法

Publications (1)

Publication Number Publication Date
JP2005316646A true JP2005316646A (ja) 2005-11-10

Family

ID=35444016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004132710A Pending JP2005316646A (ja) 2004-04-28 2004-04-28 コンパイルプログラム、およびコンパイル方法

Country Status (1)

Country Link
JP (1) JP2005316646A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047180B2 (en) 2009-11-13 2015-06-02 Samsung Electronics Co., Ltd. Computing system, method and computer-readable medium processing debug information in computing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047180B2 (en) 2009-11-13 2015-06-02 Samsung Electronics Co., Ltd. Computing system, method and computer-readable medium processing debug information in computing system

Similar Documents

Publication Publication Date Title
JP4909877B2 (ja) デバッグ装置及びデバッグ方法
CN106227671B (zh) 程序运行性能分析方法及装置
US7930699B2 (en) Task roster
JP5967603B2 (ja) 複数の変更履歴データのうちからソースコード中の変更内容を探索するための方法、並びに、そのコンピュータ及びコンピュータ・プログラム
JP2000347894A (ja) ソースプログラムチェック装置およびそのプログラム記録媒体
JP6006399B2 (ja) プログラマブル表示器、そのプログラム
WO2015160663A1 (en) Tentative program code in an editor
JP2006277435A (ja) ソースファイルバージョン管理システム
CN110546605B (zh) 程序开发支持装置、程序开发支持方法以及存储介质
Kahlert et al. Visual Studio Code Tips & Tricks Vol. 1
JP2005316646A (ja) コンパイルプログラム、およびコンパイル方法
CN105446788A (zh) 一种信息处理方法及电子设备
JP2006048700A (ja) ユーザおよびアプリケーションの間の通信を可能にする方法
JP3861959B2 (ja) プログラム作成支援装置
JP4983027B2 (ja) チェックプログラム及びチェック方法
JP2009258796A (ja) プログラム開発装置及びプログラム開発方法
JP2013137716A (ja) マクロ展開装置及びプログラム
JP4387288B2 (ja) 制御用表示装置、エディタ装置、プログラムおよび記録媒体
JP2007226739A (ja) ソフトウェア開発装置およびプログラム
JP2006236088A (ja) トレースデータ収集装置、トレースデータ収集支援装置、トレースデータ収集方法、トレースデータ収集プログラムおよびトレースデータ収集支援プログラム
KR940008474B1 (ko) 프로그램 개발장치의 디버거 제어방법
CN108763878A (zh) 一种程序保护方法及装置
Parlante Unix Programming Tools
JP2007094707A (ja) アプリケーション動作追跡支援装置
JP2008047083A (ja) プログラム作成支援装置、およびプログラム作成支援プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080722

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080919

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090915