(57)【要約】【課題】プログラムの種類または異なる計算機プラットホームで、実行モジュール生成方法を統一し、共通的に実行モジュールを生成するようにしたモジュール自動生成システムを得る。【解決手段】共通実行モジュール生成ツール２は、ソースコード４からプログラムの種類を判定するプログラム種類判定手段２１と、記憶装置６からプログラムの種類ごとのオプションを格納したオプション一覧表６１を読み出すオプション一覧表読み出し手段２２と、オプション一覧表６１を元にして、プログラムの種類に応じてソースコード４をコンパイルするときのコンパイルオプション７及びコンパイル済みのプログラムのリンクオプション９を指定する手段により構成され、一つの計算機プラットホーム上の全ソースコードで共通的に利用される。【選択図】図２
2009098963.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードからプログラムの種類を判定するプログラム種類判定手段と、記憶装置からプログラムの種類ごとのオプションを格納したオプション一覧表を読み出すオプション一覧表読み出し手段と、このオプション一覧表読み出し手段によって読み出された上記オプション一覧表を元にして、上記プログラムの種類に応じて上記ソースコードをコンパイルするときのコンパイルオプションを指定するコンパイルオプション指定手段と、上記オプション一覧表を元にして、上記プログラムの種類に応じて上記コンパイル済みのプログラムのリンクオプションを指定するリンクオプション指定手段とを有する共通実行モジュール生成ツールを備え、
上記共通実行モジュール生成ツールは、一つの計算機プラットホーム上の全ソースコードで共通的に利用されることを特徴とするモジュール自動生成システム。
【請求項２】
ソースコードが使用される計算機プラットホームを判定するプラットホーム判定手段と、上記ソースコードからプログラムの種類を判定するプログラム種類判定手段と、記憶装置から計算機プラットホームごと及びプログラムの種類ごとのオプションを格納したオプション一覧表を読み出すオプション一覧表読み出し手段と、このオプション一覧表読み出し手段によって読み出された上記オプション一覧表を元にして、上記計算機プラットホーム及びプログラムの種類に応じて上記ソースコードをコンパイルするときのコンパイルオプションを指定するコンパイルオプション指定手段と、上記オプション一覧表を元にして、上記計算機プラットホーム及びプログラムの種類に応じて上記コンパイル済みのプログラムのリンクオプションを指定するリンクオプション指定手段とを有する共通実行モジュール生成ツールを備え、
上記コンパイルオプション及びリンクオプションは、上記プラットホーム判定手段によって判定された計算機プラットホームに対応するコンパイラ及びリンカで使用されることを特徴とするモジュール自動生成システム。
【請求項３】
上記ソースコード及びこのソースコードから生成された上記実行モジュールは、管理用の計算機で一元管理されることを特徴とする請求項１または請求項２記載のモジュール自動生成システム。
【請求項４】
上記実行モジュール生成時に、上記ソースコード上に上記計算機プラットホームの固有情報を埋め込むことを特徴とする請求項１〜請求項３のいずれかに記載のモジュール自動生成システム。
【請求項５】
上記実行モジュール生成時に、上記ソースコードのバージョン情報を更新することを特徴とする請求項１〜請求項４のいずれかに記載のモジュール自動生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、１つまたは複数の計算機プラットホーム（ＯＳバージョン）で、ソースコードからそれらの計算機プラットホーム（ＯＳバージョン）に対応した実行モジュール（オブジェクトコード）を自動生成するモジュール自動生成システムに関するものである。
【背景技術】
【０００２】
昨今の計算機プラットホーム（ハードウェア、ＯＳ）技術の進歩は著しく、短期間でバージョンアップが行われる。このため、ある時期に１つの計算機プラットホーム（ＯＳバージョン）上で開発したソフトウェア（ソースコード）は、当該プラットホームだけでなく、その後継プラットホーム（次バージョンのＯＳ）上にも移植する場合が多くなっている。また、ＯＳとのＩ／Ｆ（インターフェイス）仕様は標準化が進んでいるため、プラットホーム間でのソースコードの互換性は極めて高くなっている。
このような状況において、従来は、ソースコードを各プラットホーム（ＯＳ）用に個別に整備し、ぞれぞれのプラットホーム毎に個別に対応した手順・設定で実行モジュール（オブジェクトコード）を生成していた。
また、複数の計算機から構成される計算機システムでは、システム内で１台の実行モジュール生成計算機を設置し、この計算機で生成した実行モジュールを他の全計算機に配信（コピー）することが一般的である。
特許文献１には、プロセッサ構成に依存しないオブジェクトコードを自動生成するものが記載されている。
【０００３】
【特許文献１】特開平８−２５５０８６号公報（第５〜８頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来は、同一プラットホーム（ＯＳ）内でもプログラムの種類により、また、プラットホーム（ＯＳ）が異なる場合は、ソースコードを各プラットホーム（ＯＳ）用に個別に整備し、ぞれぞれのプログラムおよびプラットホームに対応した手順・設定で実行モジュール（オブジェクトコード）を生成していた。
このため、ソースコードおよび実行モジュール生成手順・設定が各プログラムおよびプラットホーム毎に存在し、あるプラットホーム上のソースコードを変更した際は、他の全プラットホーム上のソースコードに同内容を反映する必要があった。
また、プログラムおよびプラットホーム毎に生成手順・設定が異なるため、当該プログラムおよびプラットホームに関する知識（ノウハウ）を有する者しか作業が出来ない、あるいはヒューマンエラー（人為的ミス）の入り込む余地を無くすることが出来ない、という問題があった。
特許文献１では、プロセッサ構成に依存しないオブジェクトコードを自動生成するものの、ＯＳバージョンやプラットホーム毎の手順・設定を共通化するものではなく、上述の問題を解決するものではなかった。
【０００５】
この発明は、上記のような課題を解決するためになされたものであり、プログラムの種類または異なる計算機プラットホーム（ＯＳバージョン）で、実行モジュール（オブジェクトコード）生成方法を統一し、共通的に実行モジュールを生成するようにしたモジュール自動生成システムを得ることを目的にしている。
【課題を解決するための手段】
【０００６】
この発明に係わるモジュール自動生成システムにおいては、ソースコードからプログラムの種類を判定するプログラム種類判定手段と、記憶装置からプログラムの種類ごとのオプションを格納したオプション一覧表を読み出すオプション一覧表読み出し手段と、このオプション一覧表読み出し手段によって読み出されたオプション一覧表を元にして、プログラムの種類に応じてソースコードをコンパイルするときのコンパイルオプションを指定するコンパイルオプション指定手段と、オプション一覧表を元にして、プログラムの種類に応じてコンパイル済みのプログラムのリンクオプションを指定するリンクオプション指定手段とを有する共通実行モジュール生成ツールを備え、
共通実行モジュール生成ツールは、一つの計算機プラットホーム上の全ソースコードで共通的に利用されるものである。
【発明の効果】
【０００７】
この発明は、以上説明したように、ソースコードからプログラムの種類を判定するプログラム種類判定手段と、記憶装置からプログラムの種類ごとのオプションを格納したオプション一覧表を読み出すオプション一覧表読み出し手段と、このオプション一覧表読み出し手段によって読み出されたオプション一覧表を元にして、プログラムの種類に応じてソースコードをコンパイルするときのコンパイルオプションを指定するコンパイルオプション指定手段と、オプション一覧表を元にして、プログラムの種類に応じてコンパイル済みのプログラムのリンクオプションを指定するリンクオプション指定手段とを有する共通実行モジュール生成ツールを備え、
共通実行モジュール生成ツールは、一つの計算機プラットホーム上の全ソースコードで共通的に利用されるので、プログラムの種類によらず、共通実行モジュール生成ツールを用いて実行モジュールを生成することができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
以下、この発明の実施の形態１を図１、図２に基づいて説明する。
図１は、この発明の実施の形態１によるモジュール自動生成システムを説明する説明図である。
図１において、Ａプラットホーム（ＯＳバージョンＡ）１で実行される共通実行モジュール生成ツール２は、Ａプラットホーム用コンパイラ・リンカ３を用いて、ソースコード４から実行モジュール（オブジェクトコード）５を生成する。
【０００９】
図２は、この発明の実施の形態１によるモジュール自動生成システムの共通実行モジュール生成ツールを示す構成図である。
図２において、２、４、５は図１におけるものと同一のものである。記憶装置６は、共通実行モジュール生成ツール２によってアクセスされるとともに、プログラム種類ごとのコンパイルオプション及びリンクオプションを予め定義したオプション一覧表６１を格納している。
共通実行モジュール生成ツール２は、ソースコード４のプログラム種類を判定するプログラム種類判定手段２１と、記憶装置６からオプション一覧表６１を読み出すオプション一覧表読み出し手段２２と、オプション一覧表６１を元にしてコンパイルオプション７を指定するコンパイルオプション指定手段２３と、コンパイル済みのオブジェクトコード８へのリンクオプション９を指定するリンクオプション指定手段２４とにより構成されている。
コンパイラ３１は、コンパイルオプション７を用いて、ソースコード４をコンパイルしてオブジェクトコード８を形成する。リンカ３２は、リンクオプション９を用いて、オブジェクトコード８をリンクして実行モジュール５を形成する。
【００１０】
次に、動作について説明する。
図１は、１プラットホーム内で、各プログラムについて実行モジュール生成手順を共通化するものである。すなわち、Ａプロットホーム１で、共通実行モジュール生成ツール２及びＡプラットホーム用コンパイラ・リンカ３により、ソースコードＸから実行モジュールＸを、ソースコードＹから実行モジュールＹを、ソースコードＺから実行モジュールＺをそれぞれ形成する。共通実行モジュール生成ツール２は、Ａプラットホーム１で特有の生成手順・設定内容（例：コンパイル時のオプション指定）を考慮し、全ソースコード（実行モジュール）に対して共通的に利用できるようにしている。
【００１１】
そして、図２に示すような処理手順により、実行モジュールＸ、Ｙ、Ｚの生成者は、ソースコードＸ、Ｙ、Ｚに対して共通的に共通実行モジュール生成ツール２を使用することで実行モジュールを生成できる。
ソースコード４には、プログラムの種類を書き込んでおく。図２のように、共通実行モジュール生成ツール２のプログラム種類判定手段２１は、ソースコード４のプログラムの種類を読み取る。次いで、オプション一覧表読み出し手段２２により、記憶装置６からオプション一覧表６１を読み出す。次いで、コンパイルオプション指定手段２３により、プログラムの種類にしたがって、コンパイルオプション７を指定する。
このコンパイルオプション７は、コンパイラ３１によるソースコード４のコンパイルに用いられる。こうして、ソースコード4がコンパイルされてオブジェクトコード８が形成される。
次いで、リンクオプション指定手段２４により、プログラムの種類にしたがって、リンクオプション９を指定する。このリンクオプション９は、リンカ３２で用いられて、オブジェクトコード８にリンク付けが行われて、実行モジュール５が形成される。
【００１２】
実施の形態１によれば、このようにして、オプション一覧表６１を用いて、プログラムの種類ごとにオプションを指定して、コンパイル及びリンクを行うことにより、１プラットホーム内で実行モジュール生成手順を共通化することができる。
【００１３】
実施の形態２．
以下、この発明の実施の形態２を図３、図４に基づいて説明する。
図３は、この発明の実施の形態２によるモジュール自動生成システムを説明する説明図である。
図３において、プラットホームは、Ａプラットホーム（ＯＳバージョンＡ）１ａ、Ｂプラットホーム（ＯＳバージョンＢ）１ｂ、Ｃプラットホーム（ＯＳバージョンＣ）１ｃがあり、全プラットホームに共通する全プラットホーム共通実行モジュール生成ツール１０の処理により、オプションをコンパイラ・リンカに渡すことによって、ソースコードＳ４を、それぞれのプラットホーム用コンパイラ・リンカ３ａ〜３ｃにより、それぞれのプラットホーム上で動作する実行モジュールＸ５ａ、実行モジュールＹ５ｂ、実行モジュールＺ５ｃを形成する。
【００１４】
図４は、この発明の実施の形態２によるモジュール自動生成システムの共通実行モジュール生成ツールを示す構成図である。
図４において、４〜９、２１〜２４、３１、３２は図２におけるものと同一のものである。図４では、全プラットホーム共通実行モジュール生成ツール１０は、全プラットホームで動作するように構成されるとともに、図２の２１〜２４に加えて、ソースコード４が使用されるプラットホームを特定するプラットホーム判定手段２０を有する。また、オプション一覧表６２には、プラットホームごと及びプログラムの種類ごとにコンパイルオプションとリンクオプションとが規定されている。
【００１５】
次に、動作について説明する。
図３は、複数プラットホームのソースコード・実行モジュール生成手順を共通化するようにしたものである。すなわち、全プラットホームで共通に用いられる全プラットホーム共通実行モジュール生成ツール１０と、各プラットホーム用のＡプラットホーム用コンパイラ・リンカ３ａ、Ｂプラットホーム用コンパイラ・リンカ３ｂ、Ｃプラットホーム用コンパイラ・リンカ３ｃとにより、ソースコードＳからＡプラットホーム１ａ用の実行モジュールＸ５ａ、Ｂプラットホーム１ｂ用の実行モジュールＹ５ｂ、Ｃプラットホーム１ｃ用の実行モジュールＺ５ｃをそれぞれ形成する。
全プラットホーム共通実行モジュール生成ツール１０は、各プラットホーム特有の生成手順・設定内容（例：コンパイル時のオプション指定）を考慮し、全プラットホームの全ソースコード（実行モジュール）に対して共通的に利用できるようにしている。
【００１６】
そして、図４に示すような処理手順により、実行モジュールＸ、Ｙ、Ｚ生成者は、ソースコードＳに対して共通的に全プラットホーム共通実行モジュール生成ツール１０を使用することで、各プラットホーム対応の実行モジュールを各プラットホーム毎の特別な知識を必要とすることなく生成できる。
図４に示すように、全プラットホーム共通実行モジュール生成ツール１０は、プラットホーム判定手段２０により、ソースコード４が使用されるプラットホームに問い合わせを行い、使用されるプラットホームを特定する。その判定結果のプラットホーム用のコンパイラ３１及びリンカ３２によって実行モジュール５を作成する。また、オプション一覧表６２にはプラットホームごと及びプログラムの種類ごとにコンパイルオプションとリンクオプションとが規定されているので、プラットホーム判定手段２０により特定されたプラットホームで、かつプログラム種類判定手段２１で判定されたプログラムの種類に応じたオプションの指定を行う。
なお、プラグラム種類判定手段２１からリンクオプション指定手段２４までの処理は、実施の形態１と同様であるので、その説明を省略する。
【００１７】
実施の形態２によれば、全プラットホーム共通実行モジュール生成ツール１０を使用することで、各プラットホーム対応の実行モジュールを各プラットホーム毎の特別な知識を必要とすることなく生成できる。
【００１８】
実施の形態３．
以下、この発明の実施の形態３を図５に基づいて説明する。
図５は、この発明の実施の形態３によるモジュール自動生成システムを説明する説明図である。
図５において、３ａ、３ｂ、３ｃ、５ａ、５ｂ、５ｃ、１０は図３におけるものと同一のものである。図５では、全プラットホーム共通実行モジュール生成ツール１０が配置された実行モジュール生成計算機１１（管理用の計算機）が、ネットワークを介して、Ａプラットホーム用コンパイラ・リンカ３ａが配置されたＡプラットホーム用モジュール生成計算機１２ａと、Ｂプラットホーム用コンパイラ・リンカ３ｂが配置されたＢプラットホーム用モジュール生成計算機１２ｂと、Ｃプラットホーム用コンパイラ・リンカ３ｃが配置されたＣプラットホーム用モジュール生成計算機１２ｃとに接続されている。
【００１９】
次に、動作について説明する。
全プラットホーム共通実行モジュール生成ツール１０は、各プラットホーム用の実行モジュール（オブジェクトコード）を生成するためのものであり、各プラットホーム特有の生成手順・設定内容（例：コンパイル時のオプション指定）を考慮し、全プラットホームの全実行モジュール（ソースコード）に対して共通的に利用できるようにしている。
実施の形態３では、ソースコードおよび当該ソースコードから全プラットホーム共通実行モジュール生成ツール１０を介して生成された各プラットホーム対応の実行モジュールを、実行モジュール生成計算機１１で共通的に保管・管理される。
【００２０】
実行モジュール生成計算機１１上に配置された全プラットホーム共通実行モジュール生成ツール１０は、各プラットホーム（例えばＡプラットホーム用モジュール生成計算機１２ａ）上でのモジュール生成作業時に当該プラットホーム上に一時的にコピー（もしくはマウント）される。このコピー（もしくはマウント）に際しては、実行モジュールを生成するためにコンパイルされるソースコードと、生成手順・設定（例：コンパイル時のオプション指定）も同時にコピーされる。
全プラットホーム共通実行モジュール生成ツール１０がコピーされたプラットホームに搭載されたコンパイラ・リンカを利用して、コピーされたソースコードから、そのプラットホーム用の実行モジュールを生成する。
実行モジュールの生成後、そのプラットホームから全プラットホーム共通実行モジュール生成ツール１０が削除される。すなわち、全プラットホーム共通実行モジュール生成ツール１０は、各プラットホーム用モジュール生成計算機１２ａ〜１２ｃには実行時に一時的に配置されるのみである。
なお、各プラットホーム用モジュール生成計算機１２ａ〜１２ｃで生成された実行モジュールは、実行モジュール生成計算機上に配置（移動）され、一元的に管理される。
【００２１】
実施の形態３によれば、全プラットホーム共通実行モジュール生成ツール１０をコピーして、各プラットホーム用モジュール生成計算機で実行モジュールを生成することができるので、運用しやすいとともに、実行モジュール生成計算機でソースコード及び実行モジュールが一元管理されるという効果がある。
【００２２】
実施の形態４．
以下、この発明の実施の形態４を図１〜図５に基づいて説明する。
図１〜図５において、共通実行モジュール生成ツール２および全プラットホーム共通実行モジュール生成ツール１０は、実行モジュール（オブジェクトコード）生成時にソースコード上に当該プラットホーム固有情報（ＯＳバージョンや計算機固有名称など）を示す情報を自動的に埋め込み、元ソースコードと合わせて実行モジュール（オブジェクトコード）を生成する。
このＯＳバージョンや計算機固有名称は、当該ＯＳが提供するＩ／Ｆを利用して共通実行モジュール生成ツール２及び全プラットホーム共通実行モジュール生成ツール１０が取り出す。
これにより、生成された実行モジュール（オブジェクトコード）には、ソースコード製作者が意識することなく、実行モジュール生成環境を示す情報が自動的に付加されることになる。
【００２３】
実施の形態４によれば、生成された実行モジュールに、ソースコード製作者が意識せずに、実行モジュール生成環境を示す情報が自動的に付加されるので、後からその実行モジュールがどのプラットホームで生成されたかを確認することができる。
【００２４】
実施の形態５．
以下、この発明の実施の形態５を図１〜図５に基づいて説明する。
図１〜図５において、共通実行モジュール生成ツール２および全プラットホーム共通実行モジュール生成ツール１０は、実行モジュール（オブジェクトコード）生成時にソースコードのバージョン管理機構［例：ＲＣＳ（Ｒｅｖｉｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ：各ファイルのバージョン管理機構）やＣＶＳ（Ｃｏｎｃｕｒｒｅｎｔ  Ｖｅｒｓｉｏｎｓ  Ｓｙｓｔｅｍ：複数ユーザでの同時利用を可能としたバージョン管理機構で、ＲＣＳの進化版）などの汎用バージョン管理機構］と連携し、自動的に当該ソースコードのバージョン情報を更新する。
これにより、実行モジュール生成時にソースコード製作者が意識することなく、バージョン情報が自動的に更新される。
【００２５】
実施の形態５によれば、実行モジュール生成時にソースコード製作者が意識せずに、バージョン情報が自動的に更新されるので、バージョン情報の更新漏れ（チェックイン漏れ）というヒューマンエラーを防止することができる。
【図面の簡単な説明】
【００２６】
【図１】この発明の実施の形態１によるモジュール自動生成システムを説明する説明図である。
【図２】この発明の実施の形態１によるモジュール自動生成システムの共通実行モジュール生成ツールを示す構成図である。
【図３】この発明の実施の形態２によるモジュール自動生成システムを説明する説明図である。
【図４】この発明の実施の形態２によるモジュール自動生成システムの共通実行モジュール生成ツールを示す構成図である。
【図５】この発明の実施の形態３によるモジュール自動生成システムを説明する説明図である。
【符号の説明】
【００２７】
１  プラットホーム（ＯＳバージョン）
２  共通実行モジュール生成ツール
３  プラットホーム用コンパイラ・リンカ
４  ソースコード
５  実行モジュール
６  記憶装置
７  コンパイルオプション
８  オブジェクトコード
９  リンクオプション
１０  全プラットホーム共通実行モジュール生成ツール
１１  実行モジュール生成計算機
１２  プラットホーム用モジュール生成計算機
２０  プラットホーム判定手段
２１  プラグラム種類判定手段
２２  オプション一覧表読み出し手段
２３  コンパイルオプション指定手段
２４  リンクオプション指定手段
３１  コンパイラ
３２  リンカ
６１，６２  オプション一覧表
【図１】
2009098963.tif 000003
【図２】
2009098963.tif 000004
【図３】
2009098963.tif 000005
【図４】
2009098963.tif 000006
【図５】
2009098963.tif 000007