(57)【要約】【課題】実行形式プログラムを生成した際に用いた開発資源の保管・管理を容易にする技術を提供する。【解決手段】実行形式プログラム生成の際に、ソースファイルやヘッダファイル、ライブラリ等の開発資源を含んだ実行形式プログラムとして生成する。【選択図】図１
2010231479.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に処理を実行させる実行形式プログラムであって、
前記実行形式プログラムは、
実行形式プログラムの生成に必要な開発資源と、
前記生成された実行形式プログラムと、
を含み、
実行開始指示を受けるステップと、
前記実行開始指示が前記実行形式プログラムの実行指示である場合には、該実行形式プログラムを起動し、前記実行開始指示が前記開発資源の出力指示である場合には、前記開発資源を展開して出力するステップと、
を含むことを特徴とする実行形式プログラム。
【請求項２】
前記実行形式プログラムは、更に前記開発資源および前記実行形式プログラムが該実行形式プログラムを構成するファイル中のいずれの位置に格納されているかを示す情報、および、前記開発資源および前記実行形式プログラムのデータサイズ量を示す情報を格納するヘッダ域を備え、
前記ヘッダ域に格納されている情報に基づいて、前記実行形式プログラムの起動や、前記開発資源の展開を行うことを特徴とする請求項１記載の実行形式プログラム。
【請求項３】
前記開発資源は、ソースファイル、ヘッダファイル、オブジェクトファイル、ライブラリを含むことを特徴とする請求項１または請求項２記載の実行形式プログラム。
【請求項４】
情報処理装置に処理を実行させる実行形式プログラムを記録した記憶媒体であって、
該実行形式プログラムは、
実行形式プログラムの生成に必要な開発資源と、
前記生成された実行形式プログラムと、
を含み、
実行開始指示を受けるステップと、
前記実行開始指示が前記実行形式プログラムの実行指示である場合には、該実行形式プログラムを起動し、前記実行開始指示が前記開発資源の出力指示である場合には、前記開発資源を展開して出力するステップと、
を含むことを特徴とする実行形式プログラムを記録した記録媒体。
【請求項５】
開発資源を含む実行形式プログラムである実行形式プログラムを生成する実行形式プログラム生成装置であって、
前記開発資源から前記実行形式プログラムを生成する実行形式プログラム生成部と、
前記開発資源と、前記実行形式プログラムと、前記実行形式プログラムの実行を制御する実行エンジンとを結合して実行形式プログラムを生成するリソース結合制御部と、
を含むことを特徴とする実行形式プログラム生成装置。
【請求項６】
前記リソース結合制御部は、
前記開発資源および前記実行形式プログラムおよび前記実行エンジンのデータサイズの合計を算出して、生成する前記実行形式プログラムのサイズを算出し、該サイズに基づいて出力ファイルを作成し、該出力ファイルに前記開発資源および前記実行形式プログラムおよび前記実行エンジンのデータを書き出して該実行形式プログラムを生成する、ことを特徴とする請求項５記載の実行形式プログラム生成装置。
【請求項７】
前記実行形式プログラム生成部は、
ソースファイルおよびヘッダファイルをコンパイルしオブジェクトファイルを生成するコンパイラと、
前記オブジェクトファイルとライブラリを結合し実行形式プログラムを生成するリンカと、
を含むことを特徴とする請求項５または請求項６記載の実行形式プログラム生成装置。
【請求項８】
開発資源を含む実行形式プログラムである実行形式プログラムを生成する処理を情報処理装置に実行させるプログラムであって、
前記開発資源から前記実行形式プログラムを生成する実行形式プログラム生成ステップと、
前記開発資源と、前記実行形式プログラムと、前記実行形式プログラムの実行を制御する実行エンジンとを結合してリソース結合実行形式プログラムを生成するリソース結合ステップと、
を含むことを特徴とするプログラム。
【請求項９】
開発資源を含む実行形式プログラムである実行形式プログラムを生成する方法であって、
前記開発資源から前記実行形式プログラムを生成し、
前記開発資源と、前記実行形式プログラムと、前記実行形式プログラムの実行を制御する実行エンジンとを結合して実行形式プログラムを生成する、
ことを特徴とする方法。
【請求項１０】
前記実行形式プログラムを生成する際に、
前記開発資源および前記実行形式プログラムおよび前記実行エンジンのデータサイズの合計を算出して、生成する前記実行形式プログラムのサイズを算出し、
該サイズに基づいて出力ファイルを作成し、該出力ファイルに前記開発資源および前記実行形式プログラムおよび前記実行エンジンのデータを書き出して該実行形式プログラムを生成する、
ことを特徴とする請求項９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
コンピュータのソフトウェア開発における実行形式プログラムの生成技術に関する。
【背景技術】
【０００２】
従来よりソフトウェア開発においては、ソースファイル（原始プログラム）やヘッダファイルをコンパイラでコンパイルしてオブジェクトファイルを生成し、生成されたオブジェクトファイルやライブラリをリンカでリンクして実行形式プログラムが生成されている。
【０００３】
図１５は、従来のソフトウェア開発の処理の流れを説明する図である。
ソフトウェア開発者は、ソースファイル（図１５の「ソースファイル１」および「ソースファイル２」）やヘッダファイル（図１５の「ヘッダファイル１」および「ヘッダファイル２」）を作成する。これをコンパイラでコンパイルし、オブジェクトファイル（図１５の「オブジェクトファイル１」および「オブジェクトファイル２」）を生成する。そして、オブジェクトファイルと既に用意されているライブラリをリンカによりリンクすることによって、実行形式プログラムが出力される。
【０００４】
ソフトウェア開発者はこれらの一連の作業を行い、またソースファイル、ヘッダファイル、オブジェクトファイル、ライブラリ、リンカ、実行形式プログラム、コンパイラ、などの開発資源（リソース。以下本明細書では「開発資源」と「リソース」という言葉を同意で用いる。）を保管する。一方、開発されたソフトウェアとしての実行形式プログラムはユーザ（お客様）に配布され、使用および保管される。
【０００５】
このように、今日までのソフトウェア開発では、実行形式プログラムの生成に用いられたソースファイル、ヘッダファイル、ライブラリ、及びコンパイラ、リンカなどの開発資源を、ソフトウェア開発者が保管・管理しておかなければならなかった。
【０００６】
一方、製品開発やシステム保守のための要員が減少し、一人のソフトウェア開発者が複数の製品開発を担当することが当たり前となっている。このような状況で、各製品の開発の際に使用したソースファイルやライブラリ、およびコンパイラやリンカなどの開発資源の管理をすることは非常に煩雑である。しかし、製品の機能追加や不具合修正に対応するためには開発資源の管理は重要である。もし管理がきちんとなされていないと、実行形式プログラムとソースファイルの対応関係が一致せず、版数の古いソースファイルを元にして機能追加してしまうリスク等が存在する。また、多くの製品開発を行うなかで、ソフトウェア開発者がソースファイル自体を紛失してしまい、実行形式プログラムの修正さえ不可能になってしまう可能性も存在する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平５−１００８３０号公報
【特許文献２】特開２００７−１７２５１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の課題は実行形式プログラムを生成した際に用いた開発資源の保管・管理を容易にする技術を提供することにある。
【課題を解決するための手段】
【０００９】
この技術の特徴は、実行形式プログラム生成の際に、ソースファイルやヘッダファイル、ライブラリ等の開発資源を含んだリソース結合型実行形式プログラムとして生成し、該リソース結合型実行形式プログラムをユーザ等に配布するところにある。そして、リソース結合型実行形式プログラムは、従来の実行形式プログラムと同様にそれ自体が実行することが可能であり、また、リソース結合型実行形式プログラムから必要に応じてソースファイルやヘッダファイル、ライブラリ等の開発資源を展開して取得することが可能である。
【００１０】
これにより、実行形式プログラムを生成するために必要な開発資源は、該実行形式プログラムと共に存在し、必要となったときに該リソース結合型実行形式プログラムから展開して取得することが可能であるため、ソフトウェア開発者は開発資源の保管・管理を行う必要がなくなる。
【発明の効果】
【００１１】
開示の技術は、実行形式プログラム生成の際に、開発資源を含ませたリソース結合型実行形式プログラムとして生成し、該リソース結合型実行形式プログラムを配布する。該リソース結合型実行形式プログラムは、従来の実行形式プログラムと同様にそれ自体を実行することが可能であり、また、必要に応じてソースファイル、ヘッダファイルなどの開発資源を該リソース結合型実行形式プログラムから展開して取得することが可能である。
【００１２】
これにより、実行形式プログラムを生成するために必要な開発資源は、該実行形式プログラムと共に存在することになるため、ソフトウェア開発者は開発資源の保管・管理業務から解放されることになる。結果的にソフトウェア開発者の作業効率を上げることが可能である。
【図面の簡単な説明】
【００１３】
【図１】実施例１の構成を示す図である。
【図２】リソース結合型実行形式プログラム作成部の動作を説明するフローチャートである。
【図３】リソース結合制御部の動作を説明するフローチャートである。
【図４】リソース結合型実行形式プログラムの動作を説明するフローチャートである
【図５】リソース結合型実行形式プログラムの実行の際のコマンド（パラメタ無）を示す図である。
【図６】（ａ）リソース結合型実行形式プログラムの実行の際のコマンド（パラメタ有）を示す図である。（ｂ）パラメタの説明を示す図である。
【図７】リソース結合型実行形式プログラムの実行（パラメタ無）の動作を説明する図である。
【図８】リソース結合型実行形式プログラムの実行（パラメタ有）の動作を説明する図である。
【図９】本発明の実施例２の構成を示す図である。
【図１０】実施例２におけるリソース結合型実行形式プログラムの構成を示す図である。
【図１１Ａ】実施例２におけるリソース結合制御部の動作を説明するフローチャートである。（その１）
【図１１Ｂ】実施例２におけるリソース結合制御部の動作を説明するフローチャートである。（その２）
【図１２】実施例２におけるリソース結合型実行形式プログラムの動作を説明するフローチャートである。
【図１３】リソース結合型実行形式プログラム作成部を含む情報処理装置のハードウェア構成を示す図である。
【図１４】リソース結合型実行形式プログラム作成部を実現するプログラムの情報処理装置（コンピュータ）へのローディングを説明する図である。
【図１５】従来のソフトウェア開発の処理の流れを説明する図である
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の実施の形態について説明する。
【実施例１】
【００１５】
図１に、開示のリソース結合型実行形式プログラム、およびその生成装置、生成方法についての実施例１の構成を示す。
図１は、ソフトウェアを開発する情報処理装置上で実現される構成である。そして、図１は、実行形式プログラムに開発資源であるリソースを含ませる形で生成されるリソース結合型実行形式プログラム１５がリソース結合型実行形式プログラム作成部１１によって生成されることを示した図である。
【００１６】
リソース結合型実行形式プログラム１５は、図１に示すように、実行エンジン２５が配置される実行エンジン配置域１６、実行形式プログラム２４が配置される実行形式プログラム配置域１７、ソースファイル２０、ヘッダファイル２１、オブジェクトファイル２２、ライブラリ２２などの開発資源が配置される開発資源配置域１８を含むように生成される。尚、実行エンジン２５とはリソース結合型実行形式プログラムが実行された場合に、そのプログラムの実行を制御する機能を備えるものであり、動作説明は後述する。
【００１７】
また、リソース結合型実行形式プログラム作成部１１は、コンパイラ１２、リンカ１３、リソース結合制御部１４を備える。コンパイラ１２、リンカ１３は従来のコンパイラ、リンカと同等の処理を行うものである。
【００１８】
図２に、リソース結合型実行形式プログラム作成部１１の動作のフローチャートを示したので、これと図１を参照してリソース結合型実行形式プログラム１５が出力されるまでの処理について説明する。
【００１９】
まず、リソース結合型実行形式プログラム作成部１１のコンパイラ１２が、ソフトウェア開発者が作成したソースファイル２０やヘッダファイル２１を入力として、オブジェクトファイル２２を出力する（図２のＳ２１）。
【００２０】
次に、リソース結合型実行形式プログラム作成部１２のリンカ１３がオブジェクトファイル２２とライブラリ２３を入力として実行形式プログラム２４を出力する（図２のＳ２２）。
【００２１】
そして、リソース結合型実行形式プログラム作成部１３のリソース結合制御部１４が、ソースファイル２０、ヘッダファイル２１、オブジェクトファイル２２、ライブラリ２３、実行形式プログラム２４、実行エンジン２５を入力としてリソース結合型実行形式プログラム１５を出力する(図２のＳ２３)。
【００２２】
更に、図２のＳ２３の処理であるリソース結合制御部１４の処理について、図３のフローチャートを参照してより詳しく説明する。
まず、リソース結合制御部１４では、ソースファイル２０やヘッダファイル２１、オブジェクトファイル２２、ライブラリ２３、実行形式プログラム２４、実行エンジン２５といった入力ファイルのサイズの合計を算出する（図３のＳ３１）。
【００２３】
次に、Ｓ３１で求めた入力ファイルのサイズの合計サイズに基づいて、出力ファイルであるリソース結合型実行形式プログラムのサイズを算出する（図３のＳ３２）。
そして、Ｓ３２で求めた出力ファイルのサイズに基づいて出力ファイルを作成し（図３のＳ３３）、出力ファイルに入力ファイルの内容を書き込んで、リソース結合型実行形式プログラムを出力する（図３のＳ３４）。
【００２４】
以上、図２および図３に示したように、図１に示した構成により、実行形式プログラムに開発資源が結合したリソース結合型実行形式プログラムを生成することができる。
【００２５】
次に、生成されたリソース結合型実行形式プログラム１５の実行について説明する。
図４に、リソース結合型実行形式プログラム１５を実行した際のフローチャートを示す。
【００２６】
まず、利用者がリソース結合型実行形式プログラム１５を実行する（図４のＳ４１）。リソース結合型実行形式プログラム１５が実行されると、実行エンジン２５が動作を開始する（図４のＳ４２）。そして、実行エンジン２５はリソース結合型実行形式プログラム１５が実行された際のコマンドにパラメタが指定されたか否かを判定する（図４のＳ４３）。
【００２７】
パラメタとは、リソース結合型実行形式プログラム１５の実行を指示するコマンドに含まれるものである。本実施例では、実行形式プログラム２４の部分を実行する場合、パラメタ無のコマンドを情報処理装置に入力して実行を指示し、リソース結合型実行形式プログラム１５からソースファイル２０やヘッダファイル２１などの一つ以上の開発資源を復元して取得する場合にパラメタを指定してコマンドを情報処理装置に入力して実行を指示することとする。
【００２８】
つまり、リソース結合型実行形式プログラムの名前が“arcobj”であるとき、実行形式プログラムの部分を実行するためには、図５に示すようなコマンドを入力して実行する。すると、リソース結合型実行形式プログラム１５の実行形式プログラム配置域１７に配置されている実行形式プログラム２４が実行される。一方、図６（ａ）に示すようなパラメタを含むコマンドを入力して実行すると、リソース結合型実行形式プログラム１５の開発資源配置域１８に配置されている開発資源のうち、指定された第一パラメタに対応する開発資源を第二パラメタに対応する場所に展開する。図６（ｂ）に本実施例におけるパラメタの種類を示す。すなわち、以下の通り。
第一パラメタ
/A：ソースファイル、ヘッダファイル、オブジェクトファイル、ライブラリ、実行エンジン、実行形式プログラムすべてを展開する。
/S：ソースファイルを展開する。
/H：ヘッダファイルを展開する。
/O：オブジェクトファイルを展開する。
/L：ライブラリを展開する。
/EE：実行エンジンを展開する。
/EP：実行形式プログラムを展開する。
第二パラメタ
第一オペランドで指定された対象物を展開するディレクトリを指定する。
【００２９】
図４のフローチャートの説明に戻る。
図４のＳ４３で、実行コマンドにおいてパラメタが指定されなかった場合（ＮＯ）Ｓ４４に進み、パラメタが指定された場合（ＹＥＳ）Ｓ４７に進む。
Ｓ４４では、実行エンジン２５がリソース結合型実行形式プログラム１５の実行形式プログラム２４を展開する。そして、Ｓ４５で実行エンジン２５が展開して得られた実行形式プログラム２４を起動する。実行形式プログラム２４の実行がおわると、Ｓ４６で実行形式プログラム２４から実行エンジン２５に復帰し、Ｓ４８に進む。
【００３０】
Ｓ４７では、実行エンジン２５が指定されたパラメタに基づいて開発資源を展開し、Ｓ４８に進む。
そして、Ｓ４８で実行エンジン２５が動作を終了し、Ｓ４９で利用者が実行したリソース結合型実行形式プログラム１５の動作が終了する。
【００３１】
以上のように図４を参照して、リソース結合型実行形式プログラムの動作について説明をしたが、パラメタ無でリソース結合型実行形式プログラムを実行する場合と、パラメタ有でリソース結合型実行形式プログラムを実行する場合について、それぞれ図７および図８を参照して、より詳しく説明する。
【００３２】
まず、パラメタ無のコマンドでリソース結合型実行形式プログラムを実行する場合について図７を参照して説明する。
まず、図５に示したようなコマンドで、リソース結合型実行形式プログラムが起動される（図７の（１））と、最初にリソース結合型実行形式プログラムの実行エンジンが動作する(図７の（２）)。そして、実行エンジンはリソース結合型実行形式プログラムから実行形式プログラムを展開（図７の（３））するとともに、実行形式プログラムを呼び出し（図７の（４））、実行形式プログラムが動作する。実行形式プログラムが終了すると実行エンジンに復帰し（図７の（５））、実行エンジンが動作を終了する（図７の（６））。そして、リソース結合型実行形式プログラムが終了する（図７の（７））。
【００３３】
次に、パラメタ有のコマンドでリソース結合型実行形式プログラムを実行する場合について図８を参照して説明する。
まず、図６に示したようなコマンドでリソース結合型実行形式プログラムが起動される（図８の（１））と、最初にリソース結合型実行形式プログラムの実行エンジンが動作する（図８の（２））。そして、実行エンジンはコマンドで指定されたパラメタに対応してソースファイル、ヘッダファイル、オブジェクトファイルなどの開発資源をディスクに展開する（図８の（３））。開発資源の展開が終了すると実行エンジンが動作を終了し（図８の（４））、リソース結合型実行形式プログラムが終了する(図８の（５）)。
【００３４】
以上のように、リソース結合型実行形式プログラムが実行エンジンを含むことで、実行形式プログラムを実行するのか、開発資源を復元するのかを区別して実行することが可能である。
【実施例２】
【００３５】
次に実施例２について説明する。
図９に実施例２の構成を示す。実施例２は実施例１と構成は同様であるが、ソースファイルに「printf(テスト);」という記述を含む構成であることを示している。
【００３６】
すなわち実施例２は、情報処理装置などの表示装置などに「テスト」と表示する実行形式プログラムを含み、実施例１で説明したリソース結合型実行形式プログラムのデータ構造やその動作についてより詳しく説明するものである。
【００３７】
まず、図１０にリソース結合型実行形式プログラムのデータ構造を示す。
リソース結合型実行形式プログラムは、一つの出力ファイルとして生成される。
実施例１では、実行エンジン配置域、実行形式プログラム配置域、開発資源配置域を含む構成を示したが、詳細には、ファイルの先頭にヘッダ域を備え、また、実行エンジン配置域、実行形式プログラム配置域、開発資源配置域にそれぞれの域毎にヘッダ部分を備える。
【００３８】
まず、ファイル先頭のヘッダ域には、実行エントリ先頭相対位置、実行エンジン配置域先頭相対位置、実行エンジン配置域サイズ、実行形式プログラム配置域先頭相対位置、実行形式プログラム配置域サイズ、開発資源配置域先頭相対位置、開発資源配置遺棄サイズ、の情報が含まれる。
【００３９】
そしてヘッダ域に、実行エンジン配置域が続く。実行エンジン配置域のヘッダ部分には実行エンジン先頭相対位置、実行エンジンサイズの情報が含まれ、ヘッダ部分の次に実行エンジン本体が配置される。
【００４０】
実行エンジン配置域の次に、実行形式プログラム配置域が続く。実行形式プログラム配置域のヘッダ部分には、実行形式プログラム先頭相対位置、実行形式プログラムサイズの情報が含まれ、ヘッダ部分の次に実行形式プログラム本体が配置される。本実施例では、“printf(テスト)”を実行するバイナリコードが実行形式プログラムとして配置されている。
【００４１】
実行形式プログラム配置域の次に、開発資源配置域が続く。開発資源配置域のヘッダ部分には、開発資源配置域ヘッダサイズ、ソースファイル１先頭相対位置、ソースファイル１サイズ、ソースファイル２先頭相対位置、ソースファイル２サイズ、ヘッダファイル１先頭相対位置、ヘッダファイル１サイズ、ヘッダファイル２先頭相対位置、ヘッダファイル２サイズ、オブジェクトファイル１先頭相対位置、オブジェクトファイル１サイズ、オブジェクトファイル２先頭相対位置、オブジェクトファイル２サイズ、ライブラリ先頭相対位置、ライブラリサイズなど、リソース結合型実行形式プログラムに含まれる開発資源であるファイルの配置位置、該ファイルのサイズなどの情報が含まれる。そして、ヘッダ部分に引き続いて、ソースファイルやヘッダファイル、オブジェクトファイルなど、順に開発資源が配置される。
【００４２】
図１０に示すように、リソース結合型実行形式プログラムは、実行エンジン、実行形式プログラム、開発資源がマージされた一つのファイルで構成されている。
図１０に示したリソース結合型実行形式プログラムを出力する際のリソース結合制御部（図９の９４）の処理を、図１１Ａ，Ｂに示したフローを参照して説明する。
【００４３】
まず、ソースファイル、ヘッダファイル、オブジェクトファイル、ライブラリ、実行形式プログラム、実行エンジンの各サイズを算出する（図１１ＡのＳ１１1）．
次に、Ｓ１１２で、実行エンジン配置域のサイズ（Ａ）を求める。（Ａ＝実行エンジン先頭相対位置格納域サイズ＋実行エンジンサイズ格納域サイズ＋実行エンジンサイズ）
次に、Ｓ１１３で、実行形式プログラム配置域のサイズ（Ｂ）を求める。（Ｂ＝実行形式プログラム先頭相対位置格納域サイズ＋実行形式プログラムサイズ格納域サイズ＋実行形式プログラムサイズ）
【００４４】
次に、Ｓ１１４で、開発資源配置域のサイズ（Ｃ）を求める。（Ｃ＝開発資源配置域ヘッダサイズ格納域＋ソースファイル１先頭相対位置格納域サイズ＋ソースファイル１サイズ格納域サイズ＋ソースファイル２先頭相対位置格納域サイズ＋ソースファイル２サイズ格納域サイズ＋オブジェクトファイル１先頭相対位置格納域サイズ＋オブジェクトファイル１サイズ格納域サイズ＋オブジェクトファイル２先頭相対位置格納域サイズ＋オブジェクトファイル２サイズ格納域サイズ＋ライブラリ先頭相対位置格納域サイズ＋ライブラリサイズ格納域サイズ＋ソースファイル１サイズ＋ソースファイル２サイズ＋ヘッダファイル１サイズ＋ヘッダファイル２サイズ＋オブジェクトファイル１サイズ＋オブジェクトサイズ２サイズ＋ライブラリサイズ）
【００４５】
次に、Ｓ１１５でリソース結合型実行形式プログラムのサイズ（Ｘ）を求める。（Ｘ＝ヘッダ域サイズ＋実行エンジン配置域サイズ（Ａ）＋実行形式プログラム配置域サイズ（Ｂ）＋開発資源配置域サイズ（Ｃ））
【００４６】
次に、Ｓ１１６で、サイズがＸの出力ファイルを作成する。そして、Ｓ１１７で作成した出力ファイルに図１０に示したリソース結合型実行形式プログラムの各項目の情報を書き込む。
以上のように、図１０に示したリソース結合型実行形式プログラムが生成される。
【００４７】
次に、リソース結合型実行形式プログラムが実行された場合の動作を図１２に示すフローチャートを参照して説明する。尚、本実施例におけるコマンド実行の際のパラメタについては実施例１と同一であるとする。
【００４８】
まず、Ｓ１２０で、利用者がリソース結合型実行形式プログラムを図５または図６に示したようなコマンドにより実行する。
次に、Ｓ１２１で動作ＯＳがリソース結合型実行形式プログラムのヘッダ域の実行エントリ先頭相対位置に基づいて、実行エンジンに制御を渡し、実行エンジンが動作を開始する。
【００４９】
そして、Ｓ１２２で実行エンジンが、パラメタが指定されたか否かを判断し、パラメタが指定された場合（ＹＥＳ）にはＳ１２７に、パラメタが指定されなかった場合（ＮＯ）にはＳ１２３に進む。
【００５０】
パラメタが指定された場合には、Ｓ１２７でリソース結合型実行形式プログラムのヘッダ域から開発資源配置域を求め、開発資源配置域ヘッダの各種資源の先頭相対位置とサイズを参照し、指定されたパラメタに対応する資源を情報処理装置のディスク上に展開する。そして、Ｓ１２８に進む。
【００５１】
パラメタが指定されなかった場合には、Ｓ１２３で、実行エンジンがリソース結合型実行形式プログラムのヘッダ域から実行形式プログラム配置域を求め、実行形式プログラム配置域の実行形式プログラム先頭相対位置とサイズを参照し、実行形式プログラムを情報処理装置のディスク上に展開する。そして、Ｓ１２４で、ディスクに展開した実行形式プログラムを実行エンジンが起動する。Ｓ１２５で、実行形式プログラムが動作し、printf文により、情報処理装置の表示装置に「テスト」と表示される。そして、Ｓ１２６で実行形式プログラムの動作が終了し、処理が実行エンジンに復帰する。そしてＳ１２８に進む。
【００５２】
Ｓ１２８では、実行エンジンが動作を終了し、Ｓ１２９で利用者が実行したリソース結合型実行形式プログラムが終了する。
図１２に示したフローにより、実行エンジンは図７や図８に示したような実行の制御を行うことが可能である。
【００５３】
以上のように、実施例１および実施例２について図面を参照して詳細に説明した。上述した実施例によれば、実行形式プログラム生成の際に、ソースファイルやヘッダファイル、ライブラリ等の開発資源を含んだリソース結合型実行形式プログラムとして生成し、該リソース結合型実行形式プログラムをユーザ等に配布する。リソース結合型実行形式プログラムは、従来の実行形式プログラムと同様にそれ自体が実行することが可能である。更に、リソース結合型実行形式プログラムから必要に応じてソースファイルやヘッダファイル、ライブラリ等の開発資源を展開して取得することが可能である。
【００５４】
これにより、ユーザは従来と同様に実行形式プログラムを実行することが可能で、また必要に応じてソースファイル、ヘッダファイル等の開発資源を展開して取得することが可能である。このように実行形式プログラムの生成に必要な開発資源は、該実行形式プログラムと共に存在することになるため、ソフトウェア開発者は開発資源の保管・管理業務から解放されることになり、結果的にソフトウェア開発者の作業効率を上げることになる。また、ソフトウェア開発者が、ユーザの要求に応じて実行形式プログラムの機能をカスタマイズしても、その機能追加などを記述したソースプログラムファイル等はユーザが保管する実行形式プログラムと共に存在することとなるため、その後の保守管理作業や更なるカスタマイズ等を容易にすることが可能である。
【００５５】
以上、開示のリソース結合型実行形式プログラム、およびその生成装置、生成方法についての実施例について詳細に説明したが、上記実施例に記載したことに限定されないことは言うまでもない。上記実施例では、開発資源としてソースファイル、ヘッダファイル、ライブラリ等を対象に説明したが、開発資源はこれに限定されることはなく、ソフトウェアの開発に必要な、いずれの情報資源であってもかまわない。また、リソース結合型実行形式プログラムを実行するコマンドのパラメタとして図６にその種類を示したが、これに限定されることもない。このように、開示のリソース結合型実行形式プログラム、およびその生成装置、生成方法についての趣旨を逸脱しない範囲において様々な変更が可能である。
【００５６】
ところで、図１３に上記実施例を実現する情報処理装置のハードウェア構成を示す。
情報処理装置は、ＣＰＵ１３１、メモリ１３２、入力装置１３３、出力装置１３４、外部記録装置１３５、媒体駆動装置１３６、可搬記録媒体１３９、ネットワーク接続装置１３７がバス１３８で接続される構成である。
【００５７】
メモリ１３２は例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を含み、実行形式プログラムの実行を処理するためのデータ等の格納、またはリソース結合型実行形式プログラムを生成する際の処理等に用いられる。
【００５８】
ＣＰＵ１３１は、メモリ１３２を利用して上述したフローを実行するのに用いられる。
入力装置１３３は、たとえばキーボード、ポインティングデバイス、タッチパネル等である。出力装置１３４は、たとえばディスプレイやプリンタ等である。
【００５９】
外部記憶装置１３５は、たとえば磁気ディスク装置、光ディスク装置、光磁気ディスク装置等である。この外部記憶装置１３５はリソース結合型実行形式プログラムの格納に用いられたり、展開された開発資源が格納されたりする。また、リソース結合型実行形式プログラム作成部を実現するソフトウェアプログラムを保存しておき、必要に応じてそれらをメモリ１３２上にロードして使用するのにも用いられる。
【００６０】
媒体駆動装置１３６は、可搬型記録媒体１３９を駆動し、その記録内容にアクセスする。可搬型記録媒体１３９としては、メモリカード、メモリスティック、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），  光ディスク、光磁気ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等、任意のコンピュータで読み取り可能な記録媒体が用いられる。この可搬型記録媒体１３９にリソース結合型実行形式プログラムや、リソース結合型実行形式プログラム作成部を実現するソフトウェアプログラムを格納しておき、必要に応じてそれを外部記録装置１３５やメモリ１３２にロードして使用することもできる。
【００６１】
ネットワーク接続装置１３７は、ＬＡＮ，ＷＡＮ等の任意のネットワーク（回線）を介して外部の装置と通信し、通信に伴うデータ変換を行う。また、必要に応じて、リソース結合型実行形式プログラムや、リソース結合型実行形式プログラム作成部を実現するソフトウェアプログラムを、ネットワークを介して外部装置から受け取り、それらを外部記憶装置１３５やメモリ１３２にロードして使用することもできる。
【００６２】
また、リソース結合型実行形式プログラムの情報処理装置へのローディング方法および、リソース結合型実行形式プログラム作成部を実現するソフトウェアプログラムの情報処理装置へのローディング方法について図１４に示しておく。
【００６３】
図１４（ａ）は、情報処理装置のハードディスクなどの外部記憶装置に格納されたプログラムやデータを情報処理装置がローディングする方法を示したものである。
図１４（ｂ）は、ＣＤ−ＲＯＭやＤＶＤなどの可搬型の記憶媒体に記録されたプログラムやデータを情報処理装置の媒体駆動装置を介してローディングする方法を示したものである。
図１４（ｃ）は、ネットワークなどの回線を介して、情報提供者が提供するプログラムやデータを、情報処理装置の通信装置を介してローディングする方法を示したものである。
【００６４】
上述した実施例は、上述したリソース結合型実行形式プログラムを生成する処理、すなわちリソース結合型実行形式プログラム作成部の処理を情報処理装置に行わせるためのプログラムとして構成してもよい。また、上述した実施例は、リソース結合型実行形式プログラム、またはリソース結合型実行形式プログラム作成部の処理を情報処理装置に行わせるためのプログラム、を記録したコンピュータ読出し可能な記録媒体として構成することもできる。また、上述した実施例は、搬送波に具現化された上述したリソース結合型実行形式プログラム、または、リソース結合型実行形式プログラム作成部の処理を情報処理装置に行わせるためのプログラム、を表現するコンピュータ・データ・シグナルとして構成することもできる。
【００６５】
以上のように、開示のリソース結合型実行形式プログラム、およびその生成装置、生成方法は上述したことに限定されるものではなく、本実施の形態の要旨を逸脱しない範囲内で種々の構成または形状を取ることができることは言うまでもない。
【００６６】
以上の実施例１，２を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
情報処理装置に処理を実行させる実行形式プログラムであって、
前記実行形式プログラムは、
実行形式プログラムの生成に必要な開発資源と、
前記生成された実行形式プログラムと、
を含み、
実行開始指示を受けるステップと、
前記実行開始指示が前記実行形式プログラムの実行指示である場合には、該実行形式プログラムを起動し、前記実行開始指示が前記開発資源の出力指示である場合には、前記開発資源を展開して出力するステップと、
を含むことを特徴とする実行形式プログラム。
（付記２）
前記実行形式プログラムは、更に前記開発資源および前記実行形式プログラムが該実行形式プログラムを構成するファイル中のいずれの位置に格納されているかを示す情報、および、前記開発資源および前記実行形式プログラムのデータサイズ量を示す情報を格納するヘッダ域を備え、
前記ヘッダ域に格納されている情報に基づいて、前記実行形式プログラムの起動や、前記開発資源の展開を行うことを特徴とする付記１記載の実行形式プログラム。
（付記３）
前記開発資源は、ソースファイル、ヘッダファイル、オブジェクトファイル、ライブラリを含むことを特徴とする付記１または付記２記載の実行形式プログラム。
（付記４）
情報処理装置に処理を実行させる実行形式プログラムを記録した記憶媒体であって、
該実行形式プログラムは、
実行形式プログラムの生成に必要な開発資源と、
前記生成された実行形式プログラムと、
を含み、
実行開始指示を受けるステップと、
前記実行開始指示が前記実行形式プログラムの実行指示である場合には、該実行形式プログラムを起動し、前記実行開始指示が前記開発資源の出力指示である場合には、前記開発資源を展開して出力するステップと、
を含むことを特徴とする実行形式プログラムを記録した記録媒体。
（付記５）
前記実行形式プログラムは、更に前記開発資源および前記実行形式プログラムが該実行形式プログラムを構成するファイル中のいずれの位置に格納されているかを示す情報、および、前記開発資源および前記実行形式プログラムのデータサイズ量を示す情報を格納するヘッダ域を備え、該ヘッダ域に格納されている情報に基づいて、前記実行形式プログラムの起動や、前記開発資源の展開を行うことを特徴とする付記４記載の記憶媒体。
（付記６）
前記開発資源は、ソースファイル、ヘッダファイル、オブジェクトファイル、ライブラリを含むことを特徴とする付記４または付記５記載の記憶媒体。
（付記７）
開発資源を含む実行形式プログラムである実行形式プログラムを生成する実行形式プログラム生成装置であって、
前記開発資源から前記実行形式プログラムを生成する実行形式プログラム生成部と、
前記開発資源と、前記実行形式プログラムと、前記実行形式プログラムの実行を制御する実行エンジンとを結合して実行形式プログラムを生成するリソース結合制御部と、
を含むことを特徴とする実行形式プログラム生成装置。
（付記８）
前記リソース結合制御部は、
前記開発資源および前記実行形式プログラムおよび前記実行エンジンのデータサイズの合計を算出して、生成する前記実行形式プログラムのサイズを算出し、該サイズに基づいて出力ファイルを作成し、該出力ファイルに前記開発資源および前記実行形式プログラムおよび前記実行エンジンのデータを書き出して該実行形式プログラムを生成する、ことを特徴とする付記７記載の実行形式プログラム生成装置。
（付記９）
前記実行形式プログラム生成部は、
ソースファイルおよびヘッダファイルをコンパイルしオブジェクトファイルを生成するコンパイラと、
前記オブジェクトファイルとライブラリを結合し実行形式プログラムを生成するリンカと、
を含むことを特徴とする付記７または付記８記載の実行形式プログラム生成装置。
（付記１０）
前記実行エンジンは、前記実行形式プログラムへの実行開始指示を受け、該実行開始指示が前記実行形式プログラムの実行指示である場合には該実行形式プログラムを起動し、該実行開始指示が前記開発資源の出力指示である場合には前記開発資源を展開して出力することを特徴とする付記７乃至付記９いずれか一項に記載の実行形式プログラム生成装置。
（付記１１）
開発資源を含む実行形式プログラムである実行形式プログラムを生成する処理を情報処理装置に実行させるプログラムであって、
前記開発資源から前記実行形式プログラムを生成する実行形式プログラム生成ステップと、
前記開発資源と、前記実行形式プログラムと、前記実行形式プログラムの実行を制御する実行エンジンとを結合してリソース結合実行形式プログラムを生成するリソース結合ステップと、
を含むことを特徴とするプログラム。
（付記１２）
前記リソース結合ステップは、
前記開発資源および前記実行形式プログラムおよび前記実行エンジンのデータサイズの合計を算出して、生成する前記実行形式プログラムのサイズを算出するステップと、
該サイズに基づいて出力ファイルを作成し、該出力ファイルに前記開発資源および前記実行形式プログラムおよび前記実行エンジンのデータを書き出して該実行形式プログラムを生成するステップと、
を含むことを特徴とする付記１１記載のプログラム。
（付記１３）
前記実行形式プログラム生成ステップは、
ソースファイルおよびヘッダファイルをコンパイルしオブジェクトファイルを生成するステップと、
前記オブジェクトファイルとライブラリを結合し実行形式プログラムを生成するステップと、
を含むことを特徴とする付記１１または付記１２記載のプログラム。
（付記１４）
前記実行エンジンは、前記実行形式プログラムへの実行開始指示を受け、該実行開始指示が前記実行形式プログラムの実行指示である場合には該実行形式プログラムを起動し、該実行開始指示が前記開発資源の出力指示である場合には前記開発資源を展開して出力することを特徴とする付記１１乃至付記１３いずれか一項に記載のプログラム。
（付記１５）
開発資源を含む実行形式プログラムである実行形式プログラムを生成する処理を情報処理装置に実行させるプログラムを記憶した記録媒体であって、
該プログラムは、
前記開発資源から前記実行形式プログラムを生成する実行形式プログラム生成ステップと、
前記開発資源と、前記実行形式プログラムと、前記実行形式プログラムの実行を制御する実行エンジンとを結合してリソース結合実行形式プログラムを生成するリソース結合ステップと、
を含むことを特徴とする、該プログラムを記憶した記憶媒体。
（付記１６）
前記リソース結合ステップは、
前記開発資源および前記実行形式プログラムおよび前記実行エンジンのデータサイズの合計を算出して、生成する前記実行形式プログラムのサイズを算出するステップと、
該サイズに基づいて出力ファイルを作成し、該出力ファイルに前記開発資源および前記実行形式プログラムおよび前記実行エンジンのデータを書き出して該実行形式プログラムを生成するステップと、
を含むことを特徴とする付記１５記載の記憶媒体。
（付記１７）
前記実行形式プログラム生成ステップは、
ソースファイルおよびヘッダファイルをコンパイルしオブジェクトファイルを生成するステップと、
前記オブジェクトファイルとライブラリを結合し実行形式プログラムを生成するステップと、
を含むことを特徴とする付記１５または付記１６記載の記憶媒体。
（付記１８）
前記実行エンジンは、前記実行形式プログラムへの実行開始指示を受け、該実行開始指示が前記実行形式プログラムの実行指示である場合には該実行形式プログラムを起動し、該実行開始指示が前記開発資源の出力指示である場合には前記開発資源を展開して出力することを特徴とする付記１５乃至付記１７いずれか一項に記載の記憶媒体。
（付記１９）
開発資源を含む実行形式プログラムである実行形式プログラムを生成する方法であって、
前記開発資源から前記実行形式プログラムを生成し、
前記開発資源と、前記実行形式プログラムと、前記実行形式プログラムの実行を制御する実行エンジンとを結合して実行形式プログラムを生成する、
ことを特徴とする方法。
（付記２０）
前記実行形式プログラムを生成する際に、
前記開発資源および前記実行形式プログラムおよび前記実行エンジンのデータサイズの合計を算出して、生成する前記実行形式プログラムのサイズを算出し、
該サイズに基づいて出力ファイルを作成し、該出力ファイルに前記開発資源および前記実行形式プログラムおよび前記実行エンジンのデータを書き出して該実行形式プログラムを生成する、
ことを特徴とする付記１９記載の方法。
（付記２１）
前記開発資源から前記実行形式プログラムを生成する際に、
ソースファイルおよびヘッダファイルをコンパイルしオブジェクトファイルを生成し、
前記オブジェクトファイルとライブラリを結合し実行形式プログラムを生成する、
ことを特徴とする付記１９または付記２０記載の方法。
（付記２２）
前記実行エンジンは、前記実行形式プログラムへの実行開始指示を受け、該実行開始指示が前記実行形式プログラムの実行指示である場合には該実行形式プログラムを起動し、該実行開始指示が前記開発資源の出力指示である場合には前記開発資源を展開して出力することを特徴とする付記１９乃至付記２１いずれか一項に記載の方法。
【符号の説明】
【００６７】
１１、９１      リソース結合型実行形式プログラム作成部
１２、９２      コンパイラ
１３、９３      リンカ
１４、９４      リソース結合制御部
１５、９５      リソース結合型実行形式プログラム
１６、９６      実行エンジン配置域
１７、９７      実行形式プログラム配置遺棄
１８、９８      開発資源配置域
２０      ソースファイル
２１      ヘッダファイル
２２      オブジェクトファイル
２３      ライブラリ
２４      実行形式プログラム
２５      実行エンジン
１３１      ＣＰＵ
１３２      メモリ
１３３      入力装置
１３４      出力装置
１３５      外部記録装置
１３６      媒体駆動装置
１３７      ネットワーク接続装置
１３８      バス
１３９      可搬型記録媒体
【図１】
2010231479.tif 000003
【図２】
2010231479.tif 000004
【図３】
2010231479.tif 000005
【図４】
2010231479.tif 000006
【図５】
2010231479.tif 000007
【図６】
2010231479.tif 000008
【図７】
2010231479.tif 000009
【図８】
2010231479.tif 000010
【図９】
2010231479.tif 000011
【図１０】
2010231479.tif 000012
【図１１Ａ】
2010231479.tif 000013
【図１１Ｂ】
2010231479.tif 000014
【図１２】
2010231479.tif 000015
【図１３】
2010231479.tif 000016
【図１４】
2010231479.tif 000017
【図１５】
2010231479.tif 000018