(57)【要約】【課題】  実行形式プログラムの作成を阻害するビルド時に実行形式プログラムを互いに参照する関係にあるソースプログラムのビルド順の不正をなくして正しいビルド順を指定するビルド指示書を自動的に生成する。【解決手段】  プログラム自動生成装置２による自動処理により、ソースプログラム群１０を構成する全てのプログラム及びプログラム構成情報の各行をサーチして各プログラムにおける他の実行形式プログラムの参照の有無を検出し、実行形式プログラムの参照が検出された場合には、参照が検出されたプログラムよりも参照対象のプログラムが先に位置するように各プログラムの並び順のソーティングを行い、ソーティングされたプログラムの並び順を各プログラムの変換順序としてビルド指示書を自動的に生成する。【選択図】図３
2005215862.tif 000002
【特許請求の範囲】
【請求項１】
ビルド時に実行形式プログラムを互いに参照する関係にあるソースプログラム群を構成する複数のプログラムを一連の実行形式プログラムに変換する際に前記各プログラムの変換順序を指定するためのビルド指示書の自動作成方法であって、
設計情報に基いて前記ソースプログラム群を生成したプログラム自動生成装置によって、前記ソースプログラム群を構成する全てのプログラム及びプログラム構成情報の各行をサーチしてビルド時の各プログラムにおける他の実行形式プログラムの参照の有無を検出し、
実行形式プログラムの参照が検出された場合には、参照が検出されたプログラムよりも参照対象のプログラムが先に位置するように前記各プログラムの並び順のソーティングを行い、ソーティングされたプログラムの並び順を各プログラムの変換順序としてビルド指示書を生成することを特徴としたビルド指示書の自動作成方法。
【請求項２】
前記ソースプログラム群を構成する全てのプログラム及びプログラム構成情報の各行をサーチしてビルド時の各プログラムにおける他の実行形式プログラムの参照の有無を検出した後、
単独でビルド可能なプログラムとビルド時に他の実行形式プログラムの参照を必要とするプログラムとを識別し、前記各プログラムを、単独でビルド可能なプログラム，他のプログラムのビルド時に実行形式プログラムとして参照されるプログラム，ビルド時に他の実行形式プログラムの参照を必要とするプログラムの順にソーティングを行うことをことを特徴とした請求項１記載のビルド指示書の自動作成方法。
【請求項３】
前記ソースプログラム群を構成する全てのプログラム及びプログラム構成情報の各行をサーチしてビルド時の各プログラムにおける他の実行形式プログラムの参照の有無を検出した後、
プログラムの参照が検出された場合には、プログラムの参照が検出されたプログラムと参照対象のプログラムの各々を象徴する値を１レコードとして第一のファイルおよび第二のファイルに書き出す一方、プログラムの参照が検出されなかった場合には、当該プログラムを象徴する値を１レコードとして前記第二のファイルにのみ書き出し、
前記第一のファイルの先頭から順にレコードを１レコード毎に読み込んで第三のファイルに書き出す第一のレコード書き出し工程と、このレコードに含まれる参照対象のプログラムを象徴する値をプログラムを象徴する値として有するレコードを前記第二のファイルから読み込んで該第三のファイルに次の１レコードとして書き出す第二のレコード書き出し工程とを実行した後、前記第二のレコード書き出し工程で前記第三のファイルに書き出したレコードに参照対象のプログラムを象徴する値が含まれているか否かを判定し、参照対象のプログラムを象徴する値が含まれていれば前記第二のレコード書き出し工程を繰り返し実行する一方、参照対象のプログラムを象徴する値が含まれていなければ、第一のファイルからのレコードの読み込みが終わるまで、前記第一のレコード書き出し工程と第二のレコード書き出し工程とを繰り返し実行する参照先ファイル生成工程と、
前記第二のファイルに書き込まれたレコードから参照対象のプログラムを象徴する値を記憶していないレコードを書き出しの順に逆行して抽出してビルド順一覧ファイルに書き出す単独ビルド可能なプログラムを象徴する値の書き出し工程と、前記第三のファイルに書き込まれたレコードから参照対象のプログラムを象徴する値を記憶しているレコードの参照対象のプログラムを象徴する値を書き出しの順に逆行して抽出してビルド順一覧ファイルに書き出す参照先プログラムを象徴する値の書き出し工程と、前記第三のファイルに書き込まれたレコードのプログラムを象徴する値を書き出しの順に逆行して抽出して前記ビルド順一覧ファイルに書き出すプログラムを象徴する値の書き出し工程と、
前記ビルド順一覧ファイルの先頭から順にプログラムを象徴する値の重複を削除するビルド順一覧ファイル生成工程とを実行して、
参照が検出されたプログラムを象徴する値よりも参照対象のプログラムを象徴する値が先に位置するように前記プログラムを象徴する値のソーティングを行うことを特徴とした請求項１または請求項２記載のビルド指示書の自動作成方法。
【請求項４】
設計情報に基いてソースプログラム及びプログラム構成情報を生成するプログラム自動生成装置のプロセッサを、
前記ソースプログラム及びプログラム構成情報を構成する各行をサーチして単独でビルド可能なプログラムと他のプログラムのビルド時に実行形式プログラムとして参照されるプログラムとビルド時に他の実行形式プログラムの参照を必要とするプログラムとに弁別する弁別手段と、前記各プログラムの並び順を単独でビルド可能なプログラム，他のプログラムのビルド時に実行形式プログラムとして参照されるプログラム，ビルド時に他の実行形式プログラムの参照を必要とするプログラムの順にソーティングしてビルド指示書を生成するビルド指示書作成手段として機能させるためのビルド指示書自動作成プログラム。
【請求項５】
設計情報に基いてソースプログラム及びプログラム構成情報を生成するプログラム自動生成装置であって、
前記ソースプログラム及びプログラム構成情報を構成する各行をサーチして単独でビルド可能なプログラムと他のプログラムのビルド時に実行形式プログラムとして参照されるプログラムとビルド時に他の実行形式プログラムの参照を必要とするプログラムとに弁別する弁別手段と、弁別された前記各プログラムを単独でビルド可能なプログラム，他のプログラムのビルド時に実行形式プログラムとして参照されるプログラム，ビルド時に他の実行形式プログラムの参照を必要とするプログラムの順にソーティングしてビルド指示書を生成するビルド指示書作成手段とを備えたことを特徴とするビルド指示書作成機能付プログラム自動生成装置。
【請求項６】
生成されたビルド指示書と前記プログラム自動生成装置に入力された実行形式プログラムの配置設計情報とに基いて実行形式プログラムの配置を特定する配置指示書を自動生成する配置指示書自動生成機能を備えたことを特徴とする請求項５記載のビルド指示書作成機能付プログラム自動生成装置。
【請求項７】
ソースプログラム群の生成に必要とされる設計情報と実行形式プログラムの配置設計情報を格納する業務仕様データ保管装置と、前記業務仕様データ保管装置に格納された設計情報に基いてソースプログラム群を生成するプログラム自動生成装置と、前記ソースプログラム群を構成するプログラム及びプログラム構成情報を実行形式プログラムに変換する順序を指定するビルド指示書と前記ソースプログラム群とに基いて実行形式プログラムを生成するビルド装置と、前記プログラム自動生成装置およびビルド装置で生成されたプログラム群を格納する自動生成物保管装置と、前記実行形式プログラムを格納して実行する実行装置とを備えたプログラム実行システムであって、
前記プログラム自動生成装置は、ソースプログラム群を構成する各プログラム及びプログラム構成情報をサーチして単独でビルド可能なプログラムと他のプログラムのビルド時に実行形式プログラムとして参照されるプログラムとビルド時に他の実行形式プログラムの参照を必要とするプログラムとに弁別する弁別手段と、弁別された各プログラムを単独でビルド可能なプログラム，他のプログラムのビルド時に実行形式プログラムとして参照されるプログラム，ビルド時に他の実行形式プログラムの参照を必要とするプログラムの順にソーティングしてビルド指示書を生成するビルド指示書作成手段と、生成されたビルド指示書および前記業務仕様データ保管装置からプログラム自動生成装置に入力された実行形式プログラムの配置設計情報に基いて実行形式プログラムの配置を特定する配置指示書を自動生成する配置指示書自動生成機能とを備え、
前記実行装置は、前記自動生成物保管装置に格納された実行形式プログラムを前記配置指示書に基いて格納し実行するように構成されていることを特徴とするプログラム実行システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビルド時に実行形式プログラムを互いに参照する関係にあるソースプログラム群を構成する複数のプログラム及びプログラム構成情報を一連の実行形式プログラムに変換する際に各プログラムの変換順序を指定するためのビルド指示書の自動作成方法およびビルド指示書自動作成プログラムと、ビルド指示書作成機能付プログラム自動生成装置、ならびに、このプログラム自動生成装置を備えたプログラム実行システムに関する。
【背景技術】
【０００２】
設計情報と実行形式プログラムとの間の中間生成物となるソースプログラム群を設計情報に基いて自動的に生成するプログラム自動生成装置や、ソースプログラム群を実行形式プログラムに変換するビルド装置が既に公知である。
【０００３】
ビルド時に実行形式プログラムを互いに参照する関係にあるソースプログラム群を実行形式プログラムに変換する際には、ソースプログラム群中のプログラムまたはプログラム構成情報の中でまだ実行形式プログラムに変換されていないプログラムが参照されていると正常な変換処理が行えなくなるので、予め、ソースプログラム群を構成する各プログラムの変換順序を指定するビルド指示書を作成し、このビルド指示書の指示に従ってソースプログラム群を各プログラム毎に実行形式プログラムに変換していく必要がある。例えば、サブプログラムをコールしているメインプログラムを実行形式プログラムに変換する場合において、当該サブプログラムを実行形式プログラムに変換する前に当該メインプログラムを実行形式プログラムに変換しようとすると、サブプログラムに相当する実行形式プログラムが存在しないため、当該メインプログラムの実行形式プログラムへの変換作業でエラーが発生して変換作業が停止してしまうといった問題がある。
【０００４】
このビルド指示書は、従来、手作業で新規作成するか、或いは、予め準備された雛形を利用して一部を手作業で書き換えることによって作成されていたので、人手作業ゆえの記述誤りによって正しいビルド順が指定できなくなる場合があり、また、手作業が存在することによって人件費の効率化が阻害されるといった問題があった。
【０００５】
特に、昨今の大規模化したプログラム群の開発環境では、多数のメインプログラムやサブプログラムを複数の拠点で独立的に開発することも多く、人手に頼ってビルド指示書を作成すること自体、手間やコストの関係から困難になりつつある。
【０００６】
プログラムのビルド順序を並び替えるための技術としては、ソースプログラム中のファンクションを解析し、実行頻度の高い順にファンクションを並べ替えてソースプログラムを実行形式プログラムに変換する順序を指定するようにしたものが特許文献1として提案されているが、このものは単に実行形式プログラムの実行に必要とされる所要時間を短縮することを目的としたものに過ぎず、ビルド時に実行形式プログラムを互いに参照する関係にあるソースプログラムの相互の参照関係を考慮したものではない。よって、前記と同様、ビルド順の指定の不手際によってコンパイル作業自体に支障を来たすといった可能性がある。
【０００７】
なお、設計情報に基いてソースプログラムを生成するプログラム自動生成装置それ自体については、例えば、引用文献２に開示されるように既に公知の技術であり、ＣＡＳＥツールやプログラム自動生成装置等の分野で頻繁に利用されている。
【０００８】
【特許文献１】特開２０００−５６９８３号公報
【特許文献２】特開平８−３２８８４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、本発明の課題は、前記従来技術の不都合を改善し、人手作業による記述誤り、特に、実行形式プログラムの作成を阻害するビルド時に実行形式プログラムを互いに参照する関係にあるソースプログラムのビルド順の不正をなくして正しいビルド順を指定するビルド指示書を自動的に生成することのできるビルド指示書の自動作成方法，ビルド指示書自動作成プログラム，ビルド指示書作成機能付プログラム自動生成装置，ならびに，このプログラム自動生成装置を備えたプログラム実行システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明によるビルド指示書の自動作成方法は、ビルド時に実行形式プログラムを互いに参照する関係にあるソースプログラム群を構成する複数のプログラムを一連の実行形式プログラムに変換する際に前記各プログラムの変換順序を指定するためのビルド指示書の自動作成方法であり、前記課題を達成するため、特に
設計情報に基いてソースプログラムを生成したプログラム自動生成装置によって、ソースプログラム群を構成する全てのプログラム及びプログラム構成情報の各行をサーチして各プログラムにおける他の実行形式プログラムの参照の有無を検出し、
他の実行形式プログラムの参照が検出された場合には、参照が検出されたプログラムよりも参照対象のプログラムが先に位置するように前記各プログラムのソーティングを行い、ソーティングされたプログラムの並び順を各プログラムの変換順序としてビルド指示書を生成することを特徴とした構成を有する。
【００１１】
他の実行形式プログラムの参照を必要としないプログラムは単独で実行形式プログラムに変換することができ、また、他の実行形式プログラムの参照を必要とするプログラムは、参照対象となるプログラムを実行形式プログラムに変換してからでないと実行形式プログラムに変換することができない。
従って、ソースプログラム群を構成する全てのプログラム及びプログラム構成情報の各行をプログラム自動生成装置によってサーチし、各プログラムにおける他の実行形式プログラムの参照の有無を検出して、参照が検出されたプログラムよりも参照対象のプログラムが先に位置するように各プログラムをソーティングし、ソーティングされたプログラムの並び順を各プログラムの変換順序としてビルド指示書を生成して、このビルド指示書に指定された順序でソースプログラムから実行形式プログラムへの変換作業つまり所謂コンパイル作業を行うようにすれば、確実に変換処理を達成することができる。
【００１２】
参照が検出されたプログラムよりも参照対象のプログラムを先に位置させるソーティング作業は、例えば、ソースプログラム群を構成する全てのプログラム及びプログラム構成情報の各行をサーチして各プログラムにおける他のプログラムの参照の有無を検出した後、
単独でビルド可能なプログラムと他の実行形式プログラムの参照を必要とするプログラムとを識別し、各プログラムを、単独でビルド可能なプログラム，他のプログラムのビルド時に実行形式プログラムとして参照されるプログラム，ビルド時に他の実行形式プログラムの参照を必要とするプログラムの順に並べ替えることで実現され得る。
【００１３】
前述したように、他の実行形式プログラムの参照を必要とするプログラムよりも先に他のプログラムのビルド時に実行形式プログラムとして参照されるプログラムを実行形式プログラムに変換しておくことで確実に変換処理を達成することができる。
【００１４】
より具体的には、このソーティング作業は、ソースプログラム群を構成する全てのプログラム及びプログラム構成情報の各行をサーチして各プログラムのビルド時における他の実行形式プログラム参照の有無を検出した後、
他の実行形式プログラムの参照が検出された場合には、他の実行形式プログラムの参照が検出されたプログラムと参照対象のプログラムの各々を象徴する値を１レコードとして第一のファイルおよび第二のファイルに書き出す一方、他の実行形式プログラムの参照が検出されなかった場合には、当該プログラムを象徴する値を１レコードとして第二のファイルにのみ書き出し、
前記第一のファイルの先頭から順にレコードを１レコード毎に読み込んで第三のファイルに書き出す第一のレコード書き出し工程と、このレコードに含まれる参照対象のプログラムを象徴する値をプログラムを象徴する値として有するレコードを第二のファイルから読み込んで該第三のファイルに次の１レコードとして書き出す第二のレコード書き出し工程とを実行した後、前記第二のレコード書き出し工程で第三のファイルに書き出したレコードに参照対象のプログラムを象徴する値が含まれているか否かを判定し、参照対象のプログラムを象徴する値が含まれていれば第二のレコード書き出し工程を繰り返し実行する一方、参照対象のプログラムを象徴する値が含まれていなければ、第一のファイルからのレコードの読み込みが終わるまで、前記第一のレコード書き出し工程と第二のレコード書き出し工程とを繰り返し実行する参照先ファイル生成工程と、
前記第二のファイルに書き込まれたレコードから参照対象のプログラムを象徴する値を記憶していないレコードを書き出しの順に逆行して抽出してビルド順一覧ファイルに書き出す単独ビルド可能プログラムを象徴する値の書き出し工程と、前記第三のファイルに書き込まれたレコードから参照対象のプログラムを象徴する値を記憶しているレコードの参照対象のプログラムを象徴する値を書き出しの順に逆行して抽出してビルド順一覧ファイルに書き出す参照先プログラムを象徴する値の書き出し工程と、前記第三のファイルに書き込まれたレコードのプログラムを象徴する値を書き出しの順に逆行して抽出して前記ビルド順一覧ファイルに書き出すプログラムを象徴する値の書き出し工程と、
前記ビルド順一覧ファイルの先頭から順にプログラムを象徴する値の重複を削除するビルド順一覧ファイル生成工程とをプログラム自動生成装置の内部処理として実行することによって確実に実現できる。
【００１５】
この場合、単独ビルド可能プログラムを象徴する値の書き出し工程において書き出されたプログラムを象徴する値は、単独でビルド可能なプログラムを表す値であり、また、参照先プログラムを象徴する値の書き出し工程において書き出されたプログラムを象徴する値は、ビルド時に他のプログラムで実行形式プログラムとして参照されるプログラムを象徴する値であって、更に、プログラムを象徴する値の書き出し工程において書き出されたプログラムを象徴する値は、ビルド時に他の実行形式プログラムを参照する必要のあるプログラムを象徴する値を含み、且つ、現時点で書き出されていないプログラムを象徴する値を補完したものとなる。
従って、最終的に、ビルド順一覧ファイルの先頭から順にプログラムを象徴する値の重複を削除することによって、単独でビルド可能なプログラム，ビルド時に他のプログラムで実行形式プログラムとして参照されるプログラム，ビルド時に他の実行形式プログラムの参照を必要とするプログラムの並びを崩すことなく、且つ、重複を回避してソースプログラム群を構成する全てのプログラムを実行形式プログラムに変換することができる。
【００１６】
本発明によるビルド指示書自動作成プログラムは、前記と同様の課題を達成するため、設計情報に基いてソースプログラム群を生成するプログラム自動生成装置のプロセッサを、
ソースプログラム群を構成する各プログラム及びプログラム構成情報の各行をサーチして単独でビルド可能なプログラムと他のプログラムのビルド時に実行形式プログラムとして参照されるプログラムとビルド時に他の実行形式プログラムの参照を必要とするプログラムとに弁別する弁別手段と、前記各プログラムを単独でビルド可能なプログラム，他のプログラムのビルド時に実行形式プログラムとして参照されるプログラム，ビルド時に他の実行形式プログラムの参照を必要とするプログラムの順にソーティングしてビルド指示書を生成するビルド指示書作成手段として機能させることを特徴とする構成を有する。
【００１７】
この場合、弁別手段は、ソースプログラム群を構成する各プログラムの各々を単独でビルド可能なプログラムと他のプログラムのビルド時に実行形式プログラムとして参照されるプログラムとビルド時に他の実行形式プログラムの参照を必要とするプログラムとに弁別し、ビルド指示書作成手段が、この弁別結果に基いて、各プログラムを単独でビルド可能なプログラム，他のプログラムのビルド時に実行形式プログラムとして参照されるプログラム，ビルド時に他の実行形式プログラムの参照を必要とするプログラムの順にソーティングしてビルド指示書を生成する。
プログラム自動生成装置のプロセッサが実施する具体的な内部処理については既に述べた通りである。
【００１８】
本発明によるビルド指示書作成機能付プログラム自動生成装置は、前記と同様の課題を達成するため、ソースプログラム群を構成する各プログラム及びプログラム構成情報の各行をサーチして単独でビルド可能なプログラムと他のプログラムのビルド時に実行形式プログラムとして参照されるプログラムとビルド時に他の実行形式プログラムの参照を必要とするプログラムとに弁別する弁別手段と、弁別された前記各プログラムを単独でビルド可能なプログラム，他のプログラムのビルド時に実行形式プログラムとして参照されるプログラム，ビルド時に他の実行形式プログラムの参照を必要とするプログラムの順にソーティングしてビルド指示書を生成するビルド指示書作成手段とを備えたことを特徴とする構成を有する。
【００１９】
前記と同様、弁別手段が各プログラムを単独でビルド可能なプログラムと他のプログラムのビルド時に実行形式プログラムとして参照されるプログラムとビルド時に他の実行形式プログラムの参照を必要とするプログラムとに弁別し、ビルド指示書作成手段が、この弁別結果に基いて、各プログラムを単独でビルド可能なプログラム，他のプログラムのビルド時に実行形式プログラムとして参照されるプログラム，ビルド時に他の実行形式プログラムの参照を必要とするプログラムの順にソーティングすることでビルド指示書が生成される。
【００２０】
ビルド指示書作成機能付プログラム自動生成装置には、更に、生成されたビルド指示書とプログラム自動生成装置に入力された実行形式プログラムの配置設計情報とに基いて実行形式プログラムの配置を特定する配置指示書を自動生成する配置指示書自動生成機能を併設することができる。
【００２１】
ビルド指示書はプログラム自動生成装置の内部処理によって自動生成されるので、ビルド指示書の生成後、実行形式プログラムの配列を決めるビルド指示書と実行形式プログラムの格納先を特定する配置設計情報とに基いて、実行形式プログラムの配置を特定する配置指示書を自動生成することができる。
【００２２】
本発明によるプログラム実行システムは、ソースプログラム群の生成に必要とされる設計情報と実行形式プログラムの配置設計情報を格納する業務仕様データ保管装置と、この業務仕様データ保管装置に格納された設計情報に基いてソースプログラム群を生成するプログラム自動生成装置と、前記ソースプログラム群を構成するプログラム及びプログラム構成情報を実行形式プログラムに変換する順序を指定するビルド指示書と前記ソースプログラム群とに基いて実行形式プログラムを生成するビルド装置と、前記プログラム自動生成装置およびビルド装置で生成されたプログラム群を格納する自動生成物保管装置と、前記実行形式プログラムを格納して実行する実行装置とを備えたプログラム実行システムであり、前記と同様の課題を達成するため、特に、
前記プログラム自動生成装置は、ソースプログラム群を構成する各プログラム及びプログラム構成情報の各行をサーチして単独でビルド可能なプログラムと他のプログラムのビルド時に実行形式プログラムとして参照されるプログラムとビルド時に他の実行形式プログラムの参照を必要とするプログラムとに弁別する弁別手段と、弁別された各プログラムを単独でビルド可能なプログラム，他のプログラムのビルド時に実行形式プログラムとして参照されるプログラム，ビルド時に他の実行形式プログラムの参照を必要とするプログラムの順にソーティングしてビルド指示書を生成するビルド指示書作成手段と、生成されたビルド指示書および前記業務仕様データ保管装置からプログラム自動生成装置に入力された実行形式プログラムの配置設計情報に基いて実行形式プログラムの配置を特定する配置指示書を自動生成する配置指示書自動生成機能とを備え、
前記実行装置は、自動生成物保管装置に格納された実行形式プログラムを前記配置指示書に基いて格納し実行するように構成されていることを特徴とする構成を有する。
【００２３】
つまり、このプログラム実行システムは、本発明によるビルド指示書作成機能付のプログラム自動生成装置に、業務仕様データ保管装置とビルド装置と自動生成物保管装置と実行装置とを組み合わせて構築されたプログラム実行システムである。
業務仕様データ保管装置にはソースプログラム群の生成に必要とされる設計情報と実行形式プログラムの配置設計情報とが格納され、これらの情報をプログラム自動生成装置が読み込んでソースプログラム群を生成し、自動生成物保管装置に格納する。
更に、プログラム自動生成装置の弁別手段が、ソースプログラム群を構成する各プログラム及びプログラム構成情報の各行をサーチして単独でビルド可能なプログラムと他のプログラムのビルド時に実行形式プログラムとして参照されるプログラムとビルド時に他の実行形式プログラムの参照を必要とするプログラムとに弁別し、プログラム自動生成装置のビルド指示書作成手段がプログラムのソーティングを行ってビルド指示書を生成し、自動生成物保管装置に格納する。
そして、ビルド指示書の生成後、プログラム自動生成装置の配置指示書自動生成機能が作動して、自動生成物保管装置に格納されているビルド指示書と業務仕様データ保管装置から入力された配置設計情報とに基いて配置指示書を自動生成し、自動生成物保管装置に格納する。
一方、ビルド装置は、ビルド指示書の指示に従ってソースプログラム群の各プログラムを順に変換して実行形式プログラムを作成し、この実行形式プログラムを自動生成物保管装置に格納する。
最終的に、実行装置が、自動生成物保管装置に格納されている実行形式プログラムを配置指示書に従って格納し、この実行形式プログラムを実行することになる。
【発明の効果】
【００２４】
本発明は、プログラム自動生成装置によってソースプログラム群が生成された時点で、ソースプログラム群を構成する全てのプログラム及びプログラム構成情報の各行をサーチして各プログラムのビルド時における他の実行形式プログラムの参照の有無を検出し、他の実行形式プログラムの参照が検出された場合には、参照が検出されたプログラムよりも参照対象のプログラムが先に位置するように各プログラムのソーティングを行い、ソーティングされたプログラムの並び順を各プログラムの変換順序としてビルド指示書を生成するようにしたので、まだ実行形式プログラムに変換されていないまたは古い版の実行形式プログラムの参照によって実行形式プログラムの作成が阻害される問題が解消され、ビルド指示書に指定された順序でソースプログラム群から実行形式プログラムへの変換作業を行うだけで、ソースプログラム群を構成する全てのプログラムを確実に実行形式プログラムに変換することができる。
しかも、ビルド指示書を生成するために必要とされる機能はプログラム自動生成装置に実装されているので、人手作業による記述誤りの問題は解消され、手間の削減や人件費等のコストの効率化も達成され得る。
【発明を実施するための最良の形態】
【００２５】
図１は、本発明によるビルド指示書の自動作成方法を実現するためのビルド指示書自動作成プログラムを組み込んだビルド指示書作成機能付プログラム自動生成装置を中心に構成されたプログラム実行システムの構成の概略について示した機能ブロック図である。
【００２６】
このプログラム実行システム１は、図１に示される通り、ビルド指示書作成機能付プログラム自動生成装置２（以下、単にプログラム自動生成装置という），業務仕様データ保管装置３，自動生成物保管装置４，ビルド装置５および実行装置６によって構成される。
【００２７】
但し、業務仕様データ保管装置３と自動生成物保管装置４については単一の記憶装置によって構成してもよく、また、プログラム自動生成装置２とビルド装置５についても単一のコンピュータによって構成することが可能である。
【００２８】
業務仕様データ保管装置３は、ソースプログラム群の生成に必要とされる設計情報としての共通部品データ７と業務仕様データ８、および、実行形式プログラムの配置設計情報である配置情報データ９を記憶する。設計情報のうち、共通部品データ７は各種の業務に共通した設計情報であり、業務仕様データ８は業務に固有の設計情報である。また、配置情報データ９は、共通部品データ７と業務仕様データ８に基いてプログラム自動生成装置２が生成したソースプログラム群１０をビルド装置５がコンパイル作業で変換して得た最終的な実行形式プログラム１１を実行装置６の中のどの場所にどういう方法で配置するかを特定するための配置設計情報である。
【００２９】
プログラム自動生成装置２は、設計情報としての共通部品データ７および業務仕様データ８に基いてソースプログラム群１０を自動生成する従来と同様の自動プログラミング機能に加え、自らが生成したソースプログラム群１０の各プログラム行をサーチして単独でビルド可能なプログラムと他のプログラムのビルド時に実行形式プログラムとして参照されるプログラムとビルド時に他の実行形式プログラムの参照を必要とするプログラムとに弁別する弁別手段と、弁別された各プログラムを単独でビルド可能なプログラム，他のプログラムのビルド時に実行形式プログラムとして参照されるプログラム，ビルド時に他の実行形式プログラムの参照を必要とするプログラムの順にソーティングしてビルド指示書１２を生成するビルド指示書作成手段を有し、更に、生成されたビルド指示書１２と業務仕様データ保管装置３から読み込んだ配置情報データ９に基いて実行形式プログラム１１の配置を特定する配置指示書１３を自動生成する配置指示書自動生成機能を備える。
【００３０】
また、自動生成物保管装置４は、プログラム自動生成装置２で生成されたソースプログラム群１０とビルド指示書１２および配置指示書１３を格納するための記憶装置である。
【００３１】
ビルド装置５は、自動生成物保管装置４に格納されているビルド指示書１２の指示に従ってソースプログラム群１０の各プログラムを指定順で実行形式プログラム１１に変換する。この実行形式プログラム１１も、プログラム自動生成装置２で生成されたソースプログラム群１０やビルド指示書１２および配置指示書１３と共に自動生成物保管装置４に格納される。
【００３２】
最終的に、実行装置６が、自動生成物保管装置４に格納されている実行形式プログラム１１を配置指示書１３の指示に従って実行装置６内のメモリに格納し、この実行形式プログラムを実行する。
【実施例１】
【００３３】
図２はプログラム実行システム１における全体的な処理の流れを示したフローチャートである。
【００３４】
まず、予め準備した共通部品データ７と業務仕様データ８および配置情報データ９を業務仕様データ保管装置３に格納しておく（ステップＡ１〜ステップＡ３）。
【００３５】
次に、プログラム自動生成装置２を起動して共通部品データ７と業務仕様データ８を業務仕様データ保管装置３から読み込み、プログラム自動生成装置２のプログラム自動生成機能を作動させ、共通部品データ７と業務仕様データ８に基いてソースプログラム群１０を自動的に生成する。このプログラム自動生成機能に関しては公知である。
そして、ここで生成されたソースプログラム群１０とビルド指示書１２および配置指示書１３が、自動生成物保管装置４に格納される（以上、ステップＡ４）。
【００３６】
プログラム自動生成装置２によってソースプログラム群１０を生成する際に配置指示書１３を自動的に生成するようにしているので、配置指示書１３の作成に関わる人為的な記述誤りを防ぐことができる。
【００３７】
次いでビルド装置５が起動され、自動生成物保管装置４に格納されているビルド指示書１２の指示に従ってソースプログラム群１０の各プログラムを指定順で実行形式プログラム１１に変換する。この変換作業によって変換された実行形式プログラム１１も、プログラム自動生成装置２で生成されたソースプログラム群１０やビルド指示書１２および配置指示書１３と共に自動生成物保管装置４に格納される（ステップＡ５）。
【００３８】
次に、自動生成物保管装置４に格納されている実行形式プログラム１１を実行装置６が配置指示書１３の指示に従って実行装置６内に格納し（ステップＡ６）、最後に、この実行装置６が当該実行形式プログラム１１を実行する（ステップＡ７）。
【００３９】
ここで、プログラム自動生成装置２における弁別手段やビルド指示書作成手段の処理動作の具体例について、図３のフローチャートと図４〜図１０の概念図を参照して詳細に説明する。
【００４０】
このうち、図３のフローチャートは図２におけるステップＡ４の主要部、つまり、ビルド指示書１２の自動作成に関わる処理を示したもので、ソースプログラム群１０のプログラム自動生成に関わる公知の処理に関しては説明を省略している。
【００４１】
また、図４はプログラム自動生成装置２で生成されたビルド時に実行形式プログラムを互いに参照する関係にあるソースプログラム群１０の一例を示した一覧表であり、ソースプログラム群１０を構成する各プログラムの内容については具体的な記載を省略し、プログラムを象徴する値としてのプログラム名ａ，ｂ，ｃ，・・・によってプログラムを代表させている。例えば、図４における第１行目のソースプログラムａ，ｃについて言えば、ａが参照する側のプログラムであり、ｃはａによって参照される参照対象のプログラムである。図４における第２行目のソースプログラムｂには参照対象のプログラムは存在しない。他のプログラムに係る記載の意味合いもこれと同様である。
【００４２】
そして、図５，図６，図７の各々は、プログラムを象徴する値となるプログラム名を書き出す際に使用される第一，第二，第三のファイルの構造の概略を示したもので、ここでは、これらのファイルの各々を参照先一覧表Ａ，Ｂ，Ｃと呼称している。
【００４３】
また、図８は最終的にビルド指示書１２として機能することになるビルド順一覧ファイルの構造の概略を示したもので、ここでは、このファイルをビルド順一覧表と呼称している。
【００４４】
これらの参照先一覧表Ａ，Ｂ，Ｃとビルド順一覧表は、実際には、プログラム自動生成装置２内に構築される一時記憶用のファイルであり、このうちビルド順一覧表については、ビルド指示書１２の自動作成に関わる処理が完了した時点で、ビルド指示書１２として業務仕様データ保管装置３に格納して保存されるようになっている。
【００４５】
次に、図３を参照して具体的な処理動作を説明する。
【００４６】
まず、プログラム自動生成装置２を用いてソースプログラム群１０を自動生成する前述のステップＡ４の処理の実行中に、ビルド時に他の実行形式プログラムを参照するソースプログラムまたはメイクファイル等のプログラム構成情報の行の生成が検出された場合、他の実行形式プログラムの参照が検出されたプログラムを象徴するプログラム名と参照対象のプログラムを象徴するプログラム名とを１レコードとして図５に示されるような参照先一覧表Ａおよび図６に示されるような参照先一覧表Ｂの各々に出力する。
また、他の実行形式プログラムの参照が検出されなかった場合には、当該プログラムを象徴するプログラム名を１レコードとして参照先一覧表Ｂにのみ出力する。
これらの処理は、1つの実行形式プログラムの元となるソースプログラム一式が生成される度に行われるので、結果的に、ソースプログラム群１０を構成する全てのプログラムに対して行われることになる（以上、ステップＢ１）。
【００４７】
従って、例えば、図４における第１行目のソースプログラムａ，ｃが生成された時点では、参照先一覧表Ａおよび参照先一覧表Ｂの第１行に図５および図６に示されるようにして夫々プログラム名ａ，ｃが書き出されることになる。次いで、図４における第２行目のソースプログラムｂが生成されるが、この場合、参照対象のプログラムは存在しないので、参照先一覧表Ｂの第２行にのみ図６に示されるようにしてプログラム名ｂが書き出される（参照先一覧表Ａに対する書き出しは行われない）。そして、図４における第３行目のソースプログラムｃが生成されるが、この場合も、参照対象のプログラムは存在しないので、参照先一覧表Ｂの第３行にのみ図６に示されるようにしてプログラム名ｃが書き出される。また、図４における第４行目のソースプログラムｄ，ｂが生成されると、参照先一覧表Ａの第２行および参照先一覧表Ｂの第４行に図５および図６に示されるようにして夫々プログラム名ｄ，ｂが書き出されることになる。ソースプログラム群１０の全てのプログラムをサーチして係る処理が繰り返し実行される結果、図４に示されるようなソースプログラム群１０からは、最終的に、図５，図６に示されるような参照先一覧表Ａ，Ｂが得られることになる。
【００４８】
このようにして参照先一覧表Ａ，Ｂに対するプログラム名の書き出し処理が終わると、参照先一覧表Ａの先頭から順にレコードを１レコード毎に読み込んで図７に示されるような参照先一覧表Ｃに書き出す第一のレコード書き出し工程（ステップＢ２）と、このレコードに含まれる参照対象のプログラムを象徴するプログラム名を有するレコードを参照先一覧表Ｂから読み込んで参照先一覧表Ｃに次の１レコードとして書き出す第二のレコード書き出し工程（ステップＢ３）とを実行した後、第二のレコード書き出し工程で参照先一覧表Ｃに書き出したレコードに参照対象のプログラムを象徴するプログラム名が含まれているか否かを判定する（ステップＢ４）。
【００４９】
そして、参照対象のプログラムを象徴するプログラム名が含まれていれば、前記と同様にして第二のレコード書き出し工程（ステップＢ３）を繰り返し実行する一方、参照対象のプログラムを象徴するプログラム名が含まれていなければ、ステップＢ２の処理で１回ずつ行われる参照先一覧表Ａからのレコードの読み込みが完了するまで、第一のレコード書き出し工程（ステップＢ２）と第二のレコード書き出し工程（ステップＢ３）を参照先ファイル生成工程として繰り返し実行する。
【００５０】
従って、例えば、図５，図６に示される参照先一覧表Ａ，Ｂの例では、まず、参照先一覧表Ａの先頭から第１行のレコードが読み込まれ、プログラム名ａ，ｃが参照先一覧表Ｃの第１行に図７に示されるようにして書き出される（第一のレコード書き出し工程）。そして、このレコードには参照対象のプログラム名ｃが含まれているので、更に、この参照対象プログラム名ｃをプログラム名として有するレコードが参照先一覧表Ｂの第３行から読み込まれ、このプログラム名ｃが、参照先一覧表Ｃの第２行に図７に示されるようにして書き出されることになる（第二のレコード書き出し工程）。ここで読み込まれた参照先一覧表Ｂの第３行のレコードには参照対象のプログラム名は含まれていないので、第二のレコード書き出し工程は一旦終了し、改めて、参照先一覧表Ａから第２行のレコードが読み込まれて、そのプログラム名ｄ，ｂが参照先一覧表Ｃの第３行に図７に示されるようにして書き出され（第一のレコード書き出し工程）、この参照対象プログラム名ｂをプログラム名として有するレコードが参照先一覧表Ｂの第２行から読み込まれ、このプログラム名ｂが、参照先一覧表Ｃの第４行に図７に示されるようにして書き出されることになる（第二のレコード書き出し工程）。ここで読み込まれた参照先一覧表Ｂの第２行のレコードには参照対象のプログラム名は含まれていないので、第二のレコード書き出し工程は一旦終了し、改めて、参照先一覧表Ａから第３行のレコードが読み込まれる。
なお、図５の例では参照されるプログラムが１つのみであるから、第二のレコード書き出し工程は各１回ずつ実行されるだけであるが、１つの参照する側のプログラムが連続的に複数のプログラムを参照している場合、つまり、図５の左欄に１つの参照する側のプログラムがあって右欄に複数の参照される側のプログラムが連続的に記載されるような状況下にあっては、ステップＢ３における第二のレコード書き出し工程は其の参照の数だけ繰り返し実行されることになる。
【００５１】
このようにして参照先ファイル生成工程が繰り返し実行される結果、最終的に、この例では図７に示されるような参照先一覧表Ｃが得られることになる。
【００５２】
次いで、弁別手段およびビルド指示書作成手段は、参照先一覧表Ｂに書き込まれたレコードから参照対象のプログラム名を記憶していないレコードのみを抽出し、これらのレコードを書き出しの順に逆行して図８に示されるようなビルド順一覧表に順に書き出す単独ビルド可能プログラムを象徴する値の書き出し工程を実行する（ステップＢ５）。
【００５３】
従って、例えば、図６に示される参照先一覧表Ｂの例では、第２行，第３行，第６行，第７行のレコードが抽出され、これらのレコードに記憶されたプログラム名ｂ，ｃ，ｆ，ｇが書き出しの順に逆行してｇ，ｆ，ｃ，ｂの順で、図８に示されるようにして、ビルド順一覧表の第１行，第２行，第３行，第４行に書き出されることになる。図６の参照先一覧表Ｂからも明らかなように、これらのプログラムは他の実行形式プログラムの参照を必要とせずに単独で実行形式プログラムに変換可能なプログラムである。このようにして、ビルド順一覧表の先頭部分には、まず、単独でビルド可能なプログラムを表すプログラム名が弁別して記憶されることになる。
【００５４】
次いで、弁別手段およびビルド指示書作成手段は、参照先一覧表Ｃに書き込まれたレコードから参照対象となるプログラムを象徴するプログラム名を記憶しているレコードのみを抽出し、その参照対象プログラム名を書き出しの順に逆行してビルド順一覧表に書き出す参照先プログラムを象徴する値の書き出し工程を実行する（ステップＢ６）。
【００５５】
従って、例えば、図７に示される参照先一覧表Ｃの例では、第１行，第３行，第５行のレコードが抽出され、これらのレコードに記憶された参照対象のプログラム名ｃ，ｂ，ｆが書き出しの順に逆行してｆ，ｂ，ｃの順で、図８に示されるようにして、ビルド順一覧表の第５行，第６行，第７行に書き出されることになる。図７の参照先一覧表Ｃからも明らかなように、これらのプログラムは他のプログラムによって参照されるプログラムであって、これらのプログラムが先に実行形式プログラムに変換されない限り、これらのプログラムを参照しているプログラムを実行形式プログラムに変換することはできない。このようにして、図８に示されるビルド順一覧表においては、単独でビルド可能なプログラムを表すプログラム名のグループの後に次いで、参照元となる他のプログラムよりも先に実行すべきプログラムを象徴するプログラム名のグループが弁別して記憶されることになる。
【００５６】
次いで、弁別手段およびビルド指示書作成手段は、参照先一覧表Ｃに書き込まれたレコードを代表するプログラム名を全て抽出し、書き出しの順に逆行してビルド順一覧表に書き出すプログラムを象徴する値の書き出し工程を実行する（ステップＢ７）。
【００５７】
従って、例えば、図７に示される参照先一覧表Ｃの例では、第１行，第２行，第３行，第４行，第５行，第６行のレコードが全て抽出され、これらのレコードに記憶されたプログラム名ａ，ｃ，ｄ，ｂ，ｅ，ｆが書き出しの順に逆行してｆ，ｅ，ｂ，ｄ，ｃ，ａの順で、図８に示されるようにして、ビルド順一覧表の第８行，第９行，第１０行，第１１行，第１２行，第１３行に書き出されることになる。図８のビルド順一覧表からも明らかなように、このプログラムを象徴する値の書き出し工程が終わった段階では、単独でビルド可能なプログラムを象徴するプログラム名のグループと参照元となる他のプログラムよりも先に実行すべきプログラムを象徴するプログラム名のグループに次いで、他のプログラムを参照する必要のあるプログラムのプログラム名を含んだ全てのプログラム名が、一部重複した状態で、ビルド順一覧表に漏れなく記憶されることになる。
【００５８】
そして最後に、ビルド指示書作成手段が、ビルド順一覧表の先頭から順にプログラム名の重複を削除することにより、他のプログラムの参照を必要としないプログラムの名称のグループ，他のプログラムで参照されるプログラムの名称のグループ，他のプログラムの参照を必要とするプログラムの名称のグループといった並び順を崩すことなく、ビルド順一覧表から重複するプログラム名を抹消し、最終的に、このビルド順一覧表の内容をビルド指示書１２として業務仕様データ保管装置３に格納するビルド順一覧ファイル生成工程を実行する（ステップＢ８）。
【００５９】
従って、例えば、図８に示されるビルド順一覧表の例では、第２行に記憶されたプログラム名ｃと重複する第５行，第８行のレコードが削除され、第３行に記憶されたプログラム名ｃと重複する第７行，第１２行のレコードが削除され、第４行に記憶されたプログラム名ｂと重複する第６行，第１０行のレコードが削除され、最終的には、図８に示されるビルド順一覧表の第１行，第２行，第３行，第４行，第９行，第１１行，第１３行に残されたプログラム名ｇ，ｆ，ｃ，ｂ，ｅ，ｄ，ａのプログラム名が、図９に示されるようにしてビルド順一覧表の第１行，第２行，第３行，第４行，第５行，第６行，第７行に記憶され、このビルド順一覧表がビルド指示書１２として利用されることになる。
【００６０】
このように、ビルド指示書１２によって指示されるプログラムの変換順序は、他のプログラムの参照を必要とするプログラムと参照対象となるプログラムとの関係において、必ず、参照を必要とするプログラムよりも参照対象となるプログラムの方が先に位置するようにソーティングされ、このビルド指示書１２に従ってソースプログラム群１０の各プログラムを順に実行形式プログラムに変換することが可能となる。
【００６１】
例えば、図４に示されるソースプログラム群１０と図９に示されるビルド順一覧表からも分かるように、この例では、ソースプログラム群１０の第１行におけるプログラムａがプログラムｃの参照を必要とし、ソースプログラム１０の第４行におけるプログラムｄがプログラムｂの参照を必要とし、ソースプログラム群１０の第５行におけるプログラムｅがプログラムｆの参照を必要としているが、図９のビルド順一覧表では、参照を必要とするプログラムａよりも参照対象となるプログラムｃが先に位置し、参照を必要とするプログラムｄよりも参照対象となるプログラムｂが先に位置し、参照を必要とするプログラムｅよりも参照対象となるプログラムｆが先に位置し、これらの関係が崩れることはない。
【実施例２】
【００６２】
次に、図１０を参照して本発明を適用したプログラム実行システムの他の一実施例について簡単に説明する。
【００６３】
このプログラム実行システム２２は、図１に示したプログラム実行システム１の構成要素に加え、更に、ビルド開始指示装置２３を併設したものであり、ビルド開始指示装置２３からビルド日時（ソースプログラム群を実行形式プログラムに変換した日時）とバージョン番号（ソースプログラム群及び実行形式プログラムの世代を表す値）を入力してビルドの実行を指示することにより、前述したビルド指示書１２および配置指示書１３に加え、更に、ビルド日時とバージョン番号とを含むバージョン情報２４が生成され、このバージョン情報２４がビルド指示書１２および配置指示書１３と共に自動生成物保管装置４に格納されるようになっている。
【産業上の利用可能性】
【００６４】
本発明は、複雑な相互依存関係をもつ大量のプログラムのビルド順を自動的に決定するといった用途に適用できる。
【図面の簡単な説明】
【００６５】
【図１】本発明を適用したプログラム実行システムの構成の概略について示した機能ブロック図である。
【図２】プログラム実行システムにおける全体的な処理の流れを示したフローチャートである。
【図３】プログラム自動生成装置のプロセッサによって実行されるビルド指示書の自動作成処理について示したフローチャートである。
【図４】プログラム自動生成装置で生成されたソースプログラム群の一例を一覧表で示したものである。
【図５】プログラムを象徴する値を書き出す際に使用される参照先一覧表Ａ（第一のファイル）の構造の概略を示した概念図である。
【図６】プログラムを象徴する値を書き出す際に使用される参照先一覧表Ｂ（第二のファイル）の構造の概略を示した概念図である。
【図７】プログラムを象徴する値を書き出す際に使用される参照先一覧表Ｃ（第三のファイル）の構造の概略を示した概念図である。
【図８】ビルド順一覧ファイル（ビルド順一覧表）の構造の概略を示した概念図である。
【図９】最終的に得られるビルド順一覧ファイル（ビルド順一覧表）の一例を示した概念図である。
【図１０】本発明を適用したプログラム実行システムの他の構成例について示した機能ブロック図である。
【符号の説明】
【００６６】
１  プログラム実行システム
２  ビルド指示書作成機能付プログラム自動生成装置
３  業務仕様データ保管装置
４  自動生成物保管装置
５  ビルド装置
６  実行装置
７  共通部品データ（ソースプログラム群の生成に必要とされる設計情報）
８  業務仕様データ（ソースプログラム群の生成に必要とされる設計情報）
９  配置情報データ（配置設計情報）
１０  ソースプログラム群
１１  実行形式プログラム
１２  ビルド指示書
１３  配置指示書
２２  プログラム実行システム
２３  ビルド開始指示装置
２４  バージョン情報
Ａ  参照先一覧表（第一のファイル）
Ｂ  参照先一覧表（第二のファイル）
Ｃ  参照先一覧表（第三のファイル）
【図１】
2005215862.tif 000003
【図２】
2005215862.tif 000004
【図３】
2005215862.tif 000005
【図４】
2005215862.tif 000006
【図５】
2005215862.tif 000007
【図６】
2005215862.tif 000008
【図７】
2005215862.tif 000009
【図８】
2005215862.tif 000010
【図９】
2005215862.tif 000011
【図１０】
2005215862.tif 000012