(57)【要約】【課題】  複数のディレクトリに点在して記憶している複数のソースプログラムをコンピュータに分割コンパイルさせ、このときに検出したエラーの内容を示すエラーメッセージが選択されたとき、この選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプするコンパイルプログラムを提供する。【解決手段】  コンパイルプログラムは、処理メッセージを表示部４に表示している状態で、いずれかのエラーメッセージが選択されると、エラーの原因があるソースファイルの名前、および行番号を記憶する（ｓ１１）。コンパイルプログラムは、処理メッセージ全体を解析して、ｓ１１で記憶したソースファイルを記憶しているディレクトリを検出する（ｓ１２）。そして、ｓ１２で検出したディレクトリ、およびｓ１１で記憶したソースファイルの名前、および行番号に基づいて、ジャンプする（ｓ１３）。【選択図】  図５
2005316646.tif 000002
【特許請求の範囲】
【請求項１】
複数のディレクトリに点在して記憶している複数のソースプログラムを、コンピュータに分割コンパイルさせるコンパイルプログラムにおいて、
分割コンパイルする複数のソースプログラムのディレクトリ構造の入力を受け付ける第１のステップと、
前記第１のステップで受け付けた前記ディレクトリ構造に基づいて、複数のソースプログラムを分割コンパイルする第２のステップと、
前記第２のステップの分割コンパイル時におけるディレクトリの移動、および検出したエラーのエラーメッセージを含む処理メッセージを時系列に生成する第３のステップと、
前記第２のステップによる分割コンパイルの完了時に、前記第３のステップが生成した処理メッセージを表示部に表示する第４のステップと、
前記第４のステップで表示部に表示された処理メッセージに含まれているエラーメッセージが選択されたとき、このエラーメッセージの直前に示されているディレクトリを、エラーの原因となったソースプログラムを記憶しているディレクトリとして検出する第５のステップと、
前記第５のステップで検出したディレクトリに記憶されているエラーの原因となったソースプログラムを表示部に表示する第６のステップと、をコンピュータに実行させるコンパイルプログラム。
【請求項２】
複数のディレクトリに点在して記憶している複数のソースプログラムを、コンピュータに分割コンパイルさせるコンパイルプログラムにおいて、
分割コンパイルする複数のソースプログラムのディレクトリ構造の入力を受け付ける第１のステップと、
前記第１のステップで受け付けた前記ディレクトリ構造に基づいて、複数のソースプログラムを分割コンパイルする第２のステップと、
前記第２のステップの分割コンパイル時におけるディレクトリの移動、および検出したエラーのエラーメッセージを含む処理メッセージを時系列に生成する第３のステップと、
前記第２のステップによる分割コンパイルの完了時に、前記第３のステップが生成した処理メッセージを表示部に表示する第４のステップと、
前記第４のステップで表示部に表示された処理メッセージに含まれているエラーメッセージが選択されたとき、この処理メッセージ全体を解析してエラーの原因となったソースプログラムを記憶しているディレクトリを検出する第５のステップと、
前記第５のステップで検出したディレクトリに記憶されているエラーの原因となったソースプログラムを表示部に表示する第６のステップと、をコンピュータに実行させるコンパイルプログラム。
【請求項３】
複数のディレクトリに点在して記憶している複数のソースプログラムを分割コンパイルするコンパイル方法において、
入力部において、分割コンパイルする複数のソースプログラムのディレクトリ構造の入力を受け付け、ここで受け付けた前記ディレクトリ構造に基づいて、複数のソースプログラムを分割コンパイルするとともに、この分割コンパイル時におけるディレクトリの移動、および検出したエラーのエラーメッセージを含む処理メッセージを時系列に生成し、分割コンパイルの完了時に、ここで生成した処理メッセージを表示部に表示し、表示部に表示した処理メッセージに含まれているエラーメッセージが選択されたとき、このエラーメッセージの直前に示されているディレクトリを、エラーの原因となったソースプログラムを記憶しているディレクトリとして検出し、ここで検出したディレクトリに記憶されているエラーの原因となったソースプログラムを表示部に表示するコンパイル方法。
【請求項４】
複数のディレクトリに点在して記憶している複数のソースプログラムを分割コンパイルするコンパイル方法において、
入力部において、分割コンパイルする複数のソースプログラムのディレクトリ構造の入力を受け付け、ここで受け付けた前記ディレクトリ構造に基づいて、複数のソースプログラムを分割コンパイルするとともに、この分割コンパイル時におけるディレクトリの移動、および検出したエラーのエラーメッセージを含む処理メッセージを時系列に生成し、分割コンパイルの完了時に、ここで生成した処理メッセージを表示部に表示し、表示部に表示した処理メッセージに含まれているエラーメッセージが選択されたとき、このエラーメッセージ全体を解析してエラーの原因となったソースプログラムを記憶しているディレクトリを検出し、ここで検出したディレクトリに記憶されているエラーの原因となったソースプログラムを表示部に表示するコンパイル方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のディレクトリに点在して記憶している複数のソースプログラムをコンピュータに分割コンパイルさせるコンパイルプログラム、およびコンパイル方法に関する。
【背景技術】
【０００２】
従来、ソースプログラムをコンパイルするコンパイルプログラムには、コンパイル時に検出したエラー毎に、その内容を示すエラーメッセージと、そのエラーの原因となったソースプログラムの行と、を対応づけたエラーメッセージファイルを作成し、コンパイル完了後に、これをコンピュータの表示部に表示する機能が設けられている。また、多くのコンパイルプログラムは、特許文献１に示されているように、このエラーメッセージファイルの内容を表示部に表示した後、いずれかのエラーメッセージが選択されると、選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプする。したがって、プログラマはコンパイル時に検出されたエラーのエラーメッセージを選択するだけで、そのエラーの原因があるソースプログラムの行に対して修正を加えることができ、ソースプログラムにおけるエラーの修正が効率的に行える。
【特許文献１】特開平４−１８２８４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１等で提案されているコンパイルプログラムは、コンパイルする対象のソースプログラムが１つであることを前提としたものであったので、コンパイルの開始前にソースプログラムが記憶されているディレクトリを予め特定しておくことができた。言い換えれば、ソースプログラムを記憶しているディレクトリが特定されているので、選択されたエラーメッセージに対応するエラーが検出されたソースプログラムを開いて、エラーの原因がある行にジャンプすることができた。
【０００４】
しかし、最近では、複数のディレクトリに点在して記憶している複数のソースプログラムを分割コンパイルするコンパイルプログラムが普及している。このコンパイルプログラムは、コンパイル時に、検出したエラー毎に、そのエラーの原因となったソースプログラムの名前および行と、その内容を示すエラーメッセージを対応づけたエラーメッセージファイルを作成しているだけであり、このソースプログラムを記憶しているディレクトリを特定する情報については対応づけていなかった。このため、選択されたエラーメッセージからエラーが検出されたソースプログラムが記録されているディレクトリを特定することができず、エラーメッセージが選択されても、選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプすることができなかった。したがって、プログラマがエラーメッセージからエラーが検出されたソースプログラムを記憶しているディレクトリを判断して、このソースプログラムを開かなければ、エラーの原因を修正することができず、ソースプログラムにおけるエラーの修正が効率的に行えないという問題があった。
【０００５】
この発明の目的は、複数のディレクトリに点在して記憶している複数のソースプログラムをコンピュータに分割コンパイルさせ、このときに検出したエラーの内容を示すエラーメッセージが選択されたとき、この選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプすることができるコンパイルプログラム、およびコンパイル方法を提供することにある。
【課題を解決するための手段】
【０００６】
この発明のコンパイルプログラムは、上記課題を解決するために以下の構成を備えている。
【０００７】
複数のディレクトリに点在して記憶している複数のソースプログラムを、コンピュータに分割コンパイルさせるコンパイルプログラムにおいて、
分割コンパイルする複数のソースプログラムのディレクトリ構造の入力を受け付ける第１のステップと、
前記第１のステップで受け付けた前記ディレクトリ構造に基づいて、複数のソースプログラムを分割コンパイルする第２のステップと、
前記第２のステップの分割コンパイル時におけるディレクトリの移動、および検出したエラーのエラーメッセージを含む処理メッセージを時系列に生成する第３のステップと、
前記第２のステップによる分割コンパイルの完了時に、前記第３のステップが生成した処理メッセージを表示部に表示する第４のステップと、
前記第４のステップで表示部に表示された処理メッセージに含まれているエラーメッセージが選択されたとき、この処理メッセージ全体を解析してエラーの原因となったソースプログラムを記憶しているディレクトリを検出する第５のステップと、
前記第５のステップで検出したディレクトリに記憶されているエラーの原因となったソースプログラムを表示部に表示する第６のステップと、をコンピュータに実行させる。
【０００８】
この構成では、第１のステップが分割コンパイルする複数のソースプログラムのディレクトリ構造の入力を受け付ける。ここで入力を受け付けるディレクトリ構造は、分割コンパイルする複数のソースプログラムのそれぞれについて、記憶しているディレクトリを示す情報である。第２のステップが、第１のステップで受け付けたディレクトリ構造に基づいて、ソースプログラム毎にコンパイルする。また、第３のステップがディレクトリの移動、および検出したエラーのエラーメッセージを含む処理メッセージを時系列に生成する。第４のステップが第３のステップで生成された処理メッセージを表示部に表示し、第５のステップが処理メッセージに含まれているエラーメッセージが選択されると、処理メッセージ全体を解析して、選択されたエラーメッセージのエラーに対応するソースプログラムを記憶しているディレクトリを検出する。処理メッセージには、上述したように、ディレクトリの移動が含まれているので、このエラーメッセージの直前に移動したディレクトリを検出することにより、選択されたエラーメッセージのエラーに対応するソースプログラムを記憶しているディレクトリを検出することができる。そして、第６のステップが第５のステップで検出したディレクトリに記憶されている、選択されたエラーメッセージのエラーに対応するソースプログラムを表示部に表示する。
【０００９】
このように、複数のディレクトリに点在して記憶している複数のソースプログラムをコンピュータに分割コンパイルさせ、このときに検出したエラーの内容を示すエラーメッセージが選択されたとき、この選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプすることができ、ソースプログラムにおけるエラーの修正が効率的に行える。
【発明の効果】
【００１０】
この発明によれば、複数のディレクトリに点在して記憶している複数のソースプログラムをコンピュータに分割コンパイルさせ、このときに検出したエラーの内容を示すエラーメッセージが選択されたとき、この選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプすることができるので、ソースプログラムにおけるエラーの修正が効率的に行える。
【発明を実施するための最良の形態】
【００１１】
以下、この発明の実施形態について説明する。
【００１２】
図１は、この発明の実施形態であるコンパイルプログラムがインストールされた情報処理装置の構成を示すブロック図である。この実施形態の情報処理装置１は、本体の動作を制御する制御部２と、本体に対して入力操作を行うキーボードやマウス等を有する操作部３と、本体の動作状態を表示する表示部４と、この実施形態のコンパイルプログラムや、このコンパイルプログラムによりコンパイルするソースプログラム等を記憶する記憶部５と、を備えている。この情報処理装置１は、公知のパーソナルコンピュータと同様の構成である。
【００１３】
この実施形態のコンパイルプログラムは、複数のディレクトリに点在して記憶している複数のソースプログラムを独立してコンパイルする、分割コンパイルが行えるソフトウェアである。分割コンパイルでは、指定された複数のソースプログラムを独立してコンパイルする。したがって、プログラマがコンパイルする必要のないソースプログラム（例えばすでにコンパイルを完了しているソースプログラム）を指定しなければ、無駄なコンパイルが行われることはない。コンパイルされたソースプログラム毎にオブジェクトが生成され、リンカによってこれらのオブジェクトが結合されて、実行可能なプログラムになる。
【００１４】
次に、情報処理装置１における分割コンパイルの動作について説明する。コンパイルするソースプログラムｓａｍｐｌｅ１〜７は、記憶部５に記憶されている。図２（Ａ）に示すように、ｓａｍｐｌｅ１〜４の４つのソースプログラムは、そのディレクトリ構造が／ｈｏｏｍ／ｆｏｏ／ｓｏｕｒｃｅ／ｄｉｒ１／であり、ｓａｍｐｌｅ５〜７の３つのソースプログラムは、そのディレクトリ構造が／ｈｏｏｍ／ｆｏｏ／ｓｏｕｒｃｅ／ｄｉｒ２／であるものとして説明する。
【００１５】
図３は、この実施形態のコンパイルプログラムの動作を示すフローチャートである。情報処理装置１は、操作部３において分割コンパイルの実行を指示する入力操作が行われると、この処理を開始する。このとき、プログラマは、操作部３において、分割コンパイルするソースプログラムｓａｍｐｌｅ１〜７のディレクトリ構造を指定する入力操作を行っている。情報処理装置１は、入力されたディレクトリ構造に基づいて、ｓａｍｐｌｅ１〜７の７つのソースプログラムを順々に読み出し（ｓ１）、読み出したソースプログラムをコンパイルする（ｓ２）。また、コンパイルプログラムは、コンパイルするソースプログラムを読み出すディレクトリの移動履歴、コンパイル時に検出したエラーの内容、そのエラーが検出されたソースプログラムのファイル名、行番号を処理メッセージとして時系列に記憶する（ｓ３）。コンパイルプログラムは、今回指定された全てのソースプログラムについてコンパイルを完了するまで（ｓ４）、上記ｓ１〜ｓ３の処理を繰り返す。コンパイルプログラムは、今回指定された全てのソースプログラムについてコンパイルを完了すると、ｓ３で記憶した処理メッセージからなるファイルを表示部４に表示する（ｓ５）。
【００１６】
図４は、ｓ５で表示部に表示された処理メッセージの例を示す図である。図４において、（１）、（２）、（３）を付した行がエラーメッセージであり、（１）を付した行はｓａｍｐｌｅ１というソースプログラムの１０７行目にエラーの原因があることを示唆するエラーメッセージであり、（２）を付した行はｓａｍｐｌｅ１というソースプログラムの１９７行目にエラーの原因があることを示唆するエラーメッセージであり、（３）を付した行はｓａｍｐｌｅ６というソースプログラムの４５行目にエラーの原因があることを示唆するエラーメッセージである。
【００１７】
また、図４において（ａ）、（ｂ）、（ｃ）、（ｄ）、（ｅ）、（ｆ）を付した行は、コンパイルするソースプログラムを読み出すディレクトリの移動履歴を示すメッセージであり、（ａ）を付した行は／ｈｏｏｍ／ｆｏｏ／ｓｏｕｒｃｅ／に移動したことを示しており、（ｂ）を付した行は／ｈｏｏｍ／ｆｏｏ／ｓｏｕｒｃｅ／ｄｉｒ１／に移動したことを示しており、（ｃ）を付した行は／ｈｏｏｍ／ｆｏｏ／ｓｏｕｒｃｅ／ｄｉｒ１／から離れたことを示しており、（ｄ）を付した行は／ｈｏｏｍ／ｆｏｏ／ｓｏｕｒｃｅ／ｄｉｒ２／に移動したことを示しており、（ｅ）を付した行は／ｈｏｏｍ／ｆｏｏ／ｓｏｕｒｃｅ／ｄｉｒ２／から離れたことを示しており、（ｆ）を付した行は／ｈｏｏｍ／ｆｏｏ／ｓｏｕｒｃｅ／から離れたことを示している。
【００１８】
コンパイルプログラムは、図４に示す処理メッセージを表示部４に表示している状態で、いずれかのエラーメッセージが選択されるか（ｓ６）、終了キーが操作されるのを待つ（ｓ７）。コンパイルプログラムは、いずれかのエラーメッセージが選択されると、今回選択されたエラーメッセージのエラーの原因となったソースプログラムの行にジャンプするジャンプ処理を行う（ｓ８）。また、終了キーが操作されると、本処理を終了する。
【００１９】
図５は、この実施形態のコンパイルプログラムのジャンプ処理を示すフローチャートである。コンパイルプログラムは、今回選択されたエラーメッセージが示している、エラーの原因があるソースファイルの名前、および行番号を記憶する（ｓ１１）。コンパイルプログラムは、処理メッセージ全体を解析して、ｓ１１で記憶したソースファイルを記憶しているディレクトリを検出するディレクトリ検出処理を行う（ｓ１２）。このディレクトリ検出処理は、図６に示すように、今回指定されたエラーメッセージの行から１行ずつ上の行を解析し、ディレクトリを示している行を検出すると、その行が示しているディレクトリが今回選択されたエラーメッセージが示しているエラーの原因があるソースファイルを記憶しているディレクトリとして検出する（ｓ２１〜ｓ２３）。
【００２０】
例えば、図４に示す処理メッセージにおいて、（１）、または（２）を示すエラーメッセージが選択された場合、エラーの原因があるソースファイルを記憶しているディレクトリとして、この処理メッセージの上から２行目において示されている、／ｈｏｏｍ／ｆｏｏ／ｓｏｕｒｃｅ／ｄｉｒ１／を検出する。また、（３）を示すエラーメッセージが選択された場合、エラーの原因があるソースファイルを記憶しているディレクトリとして、この処理メッセージの上から１０行目において示されている、／ｈｏｏｍ／ｆｏｏ／ｓｏｕｒｃｅ／ｄｉｒ２／を検出する。
【００２１】
コンパイルプログラムは、ｓ１２で検出したディレクトリ、およびｓ１１で記憶したソースファイルの名前、および行番号に基づいて、今回選択されたエラーメッセージに対応するソースプログラムにジャンプする（ｓ１３）。ｓ１３では、該当するソースファイルを開く。これにより、表示部４には、今回選択されたエラーメッセージに対応するソースプログラムが表示される。このとき、カーソルはエラーの原因がある行に表示される。このように、複数のディレクトリに点在して記憶している複数のソースプログラムをコンピュータに分割コンパイルさせ、このときに検出したエラーの内容を示すエラーメッセージが選択されたとき、この選択されたエラーメッセージに対応するエラーが検出されたソースプログラムの行にジャンプすることができる。したがって、プログラマがソースプログラムにおけるエラーの修正を効率的に行える。
【００２２】
また、コンパイルプログラムは、ｓ１３でジャンプした後に、特定の操作が行われると（ｓ９）、ｓ５に戻って処理メッセージを表示する。一方、終了キーが操作されると（ｓ１０）、本処理を終了する。したがって、プログラマは、今回の分割コンパイルで検出されたエラーが複数であっても、これらのエラーに対して１つずつ修正を行うことができる。
【図面の簡単な説明】
【００２３】
【図１】この発明の実施形態であるコンパイルプログラムがインストールされた情報処理装置の構成を示すブロック図である。
【図２】ソースプログラムのディレクトリ構造を示す図である。
【図３】この実施形態のコンパイルプログラムの動作を示すフローチャートである。
【図４】ｓ５で表示部に表示された処理メッセージの例を示す図である。
【図５】この実施形態のコンパイルプログラムのジャンプ処理を示すフローチャートである。
【図６】この実施形態のコンパイルプログラムのディレクトリ検出処理を示すフローチャートである。
【符号の説明】
【００２４】
１−情報処理装置
２−制御部
３−操作部
４−表示部
５−記憶部
【図１】
2005316646.tif 000003
【図２】
2005316646.tif 000004
【図３】
2005316646.tif 000005
【図４】
2005316646.tif 000006
【図５】
2005316646.tif 000007
【図６】
2005316646.tif 000008