(57)【要約】【課題】ターゲットマシンを模倣した仮想環境下によるクロス開発でも、プログラム生成作業に要する時間を短縮する。【解決手段】ターゲットマシンの動作を模倣するエミュレータ部３０と、オブジェクトファイルを生成するクロスコンパイラ部４０とを備える。エミュレータ部３０は、クロスコンパイラ部４０に対し、オブジェクトファイル４１５の生成を指示する。クロスコンパイラ部４０は、エミュレータ部３０からの生成指示を受けて、ソースファイル４３に対してプリプロセス処理、コンパイル処理及びアセンブル処理を順に実行して、オブジェクトファイル４１５を生成する。そして、生成されたオブジェクトファイル４１５を、エミュレータ部３０に転送する。エミュレータ部３０は、クロスコンパイラ部４０で生成されたオブジェクトファイル４１５から実行ファイル３４を生成する。【選択図】      図１
2010061538.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットマシンで実行される実行ファイルをクロス開発環境で開発するプログラム開発装置において、
前記ターゲットマシンの動作を模倣するエミュレータ部と、
前記ターゲットマシンのオブジェクトプログラムを記述したオブジェクトファイルを生成するクロスコンパイラ部と、
前記エミュレータ部と前記クロスコンパイラ部との間でデータのやり取りを行う通信手段とを備え、
前記エミュレータ部は、
前記クロスコンパイラ部に対し、前記通信手段を介して、前記オブジェクトファイルの生成を指示する指示手段と、
前記クロスコンパイラ部で生成されたオブジェクトファイルから前記実行ファイルを生成するリンカ手段と、を具備し、
前記クロスコンパイラ部は、
前記エミュレータ部からの生成指示を受けて、ソースファイルに対してプリプロセス処理、コンパイル処理及びアセンブル処理を順に実行して、前記オブジェクトファイルを生成するクロスコンパイル手段と、
生成されたオブジェクトファイルを、前記通信手段を介して、前記エミュレータ部に転送する転送手段と、を具備したことを特徴とするプログラム開発装置。
【請求項２】
複数のＣＰＵコアを有する制御部を備え、
前記クロスコンパイラ部のクロスコンパイル手段が実行するプリプロセス処理、コンパイル処理及びアセンブル処理の一連の処理を前記複数のＣＰＵコアがそれぞれ並列に実行することを特徴とする請求項１記載のプログラム開発装置。
【請求項３】
ターゲットマシンで実行される実行ファイルをクロス開発環境で開発するプログラム開発装置において、
前記ターゲットマシンの動作を模倣するエミュレータ装置と、
前記ターゲットマシンのオブジェクトプログラムを記述したオブジェクトファイルを生成するコンパイル装置と、
前記エミュレータ装置と前記コンパイル装置とを相互通信自在に接続するネットワークとを備え、
前記エミュレータ装置は、
前記コンパイル装置に対し、前記ネットワークを介して、前記オブジェクトファイルの生成を指示する指示手段と、
前記コンパイル装置で生成されたオブジェクトファイルから前記実行ファイルを生成するリンカ手段と、を具備し、
前記コンパイル装置は、
前記エミュレータ装置からの生成指示を受けて、ソースファイルに対してプリプロセス処理、コンパイル処理及びアセンブル処理を順に実行して、前記オブジェクトファイルを生成するクロスコンパイル手段と、
生成されたオブジェクトファイルを、前記ネットワークを介して、前記エミュレータ装置に転送する転送手段と、を具備したことを特徴とするプログラム開発装置。
【請求項４】
前記ネットワークに接続されるコンパイル装置を複数台とし、
前記クロスコンパイル手段が実行するプリプロセス処理、コンパイル処理及びアセンブル処理の一連の処理を、各コンパイル装置がそれぞれ並列に実行することを特徴とする請求項３記載のプログラム開発装置。
【請求項５】
ターゲットマシンで実行される実行ファイルを、前記ターゲットマシンとは異なるコンピュータ上で開発するプログラム開発方法において、
前記コンピュータのオペレーティングシステムの管理下で、前記ターゲットマシンの動作を模倣するエミュレータ部と、前記ターゲットマシンのオブジェクトプログラムを記述したオブジェクトファイルを生成するクロスコンパイラ部とを実現し、
前記エミュレータ部が、前記クロスコンパイラ部に対して前記オブジェクトファイルの生成を指示するステップと、
前記エミュレータ部からの生成指示を受けて、前記クロスコンパイラ部が、ソースファイルに対してプリプロセス処理、コンパイル処理及びアセンブル処理を順に実行して、前記オブジェクトファイルを生成するステップと、
前記クロスコンパイラ部が、生成されたオブジェクトファイルを前記エミュレータ部に転送するステップと、
前記エミュレータ部が、前記クロスコンパイラ部で生成されたオブジェクトファイルから前記実行ファイルを生成するステップと、
を含むことを特徴とするプログラム開発方法。
【請求項６】
ターゲットマシンで実行される実行ファイルを開発するための前記ターゲットマシンとは異なるコンピュータに、
前記コンピュータのオペレーティングシステムの管理下で、前記ターゲットマシンの動作を模倣するエミュレータ部と、前記ターゲットマシンのオブジェクトプログラムを記述したオブジェクトファイルを生成するクロスコンパイラ部とを実現させる機能と、
前記エミュレータ部が、前記クロスコンパイラ部に対して前記オブジェクトファイルの生成を指示することを実行させる機能と、
前記エミュレータ部からの生成指示を受けて、前記クロスコンパイラ部が、ソースファイルに対してプリプロセス処理、コンパイル処理及びアセンブル処理を順に実行して、前記オブジェクトファイルを生成することを実行させる機能と、
前記クロスコンパイラ部が、生成されたオブジェクトファイルを前記エミュレータ部に転送することを実行させる機能と、
前記エミュレータ部が、前記クロスコンパイラ部で生成されたオブジェクトファイルから前記実行ファイルを生成することを実行させる機能と、
を実現させるためのクロス開発用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ターゲットマシンで実行される実行ファイルをクロス開発環境で開発するプログラム開発技術に関する。
【背景技術】
【０００２】
従来より、ソフトウェアの開発環境を持たないマシン用のソフトウェアは、ターゲットマシンとは異なるコンピュータシステム上で開発される。このようなソフトウェアの開発をクロス開発と称する。
【０００３】
クロス開発は、一般に、以下の作業手順で実施される。先ず、プログラマが高級言語で作成したソースプログラムを、コンピュータシステム上のコンパイラにより機械語のオブジェクトプログラムにコンパイルして、オブジェクトファイルを生成する。次に、生成されたオブジェクトファイルのオブジェクトプログラムに、同コンピュータシステム上のリンカにより必要なライブラリなどを付け加えて、実行形式のプログラムファイルを生成する。最後に、生成された実行形式のプログラムファイルを、コンピュータシステムからターゲットマシンにダウンロードし、そのプログラムファイルのプログラムをターゲットマシン上で実行して、デバッグを行う。
【０００４】
ここで、ターゲットマシンが既に試作されている場合には問題はない。しかし、試作されていない場合には実行形式のプログラムのデバッグを直ぐには行えないという問題がある。
【０００５】
このような問題を解決するために、コンピュータシステム上で実行形式のプログラムを実行した場合にターゲットマシンと同じ結果が得られるように、仮想的にターゲットマシンを模倣したコンピュータシステム、いわゆるエミュレータ装置が知られている（例えば、特許文献１参照）。
【特許文献１】特開２０００−１２２８９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のエミュレータ装置を用いたクロス開発では、ＯＳ（Operating System：基本ソフトウェア）のカーネル再構築のような大規模なプログラムの生成作業を行った場合、ターゲットマシンを模倣するためのエミュレート処理にＣＰＵ（Central Processing Unit）のリソースをとられてしまうためＣＰＵの負荷が大きくなり、生成作業に要する時間がかかるという問題があった。
【０００７】
本発明はこのような事情に基づいてなされたもので、その目的とするところは、ターゲットマシンを模倣した仮想環境下によるクロス開発においても、プログラム生成作業に要する時間を短縮できるプログラム開発技術を提供しようとするものである。
【課題を解決するための手段】
【０００８】
本発明は、ターゲットマシンの動作を模倣するエミュレータ部と、ターゲットマシンのオブジェクトプログラムを記述したオブジェクトファイルを生成するクロスコンパイラ部と、エミュレータ部とクロスコンパイラ部との間でデータのやり取りを行う通信手段とを備える。エミュレータ部は、クロスコンパイラ部に対し、通信手段を介して、オブジェクトファイルの生成を指示する指示手段と、クロスコンパイラ部で生成されたオブジェクトファイルから実行ファイルを生成するリンカ手段とを具備する。クロスコンパイラ部は、エミュレータ部からの生成指示を受けて、ソースファイルに対してプリプロセス処理、コンパイル処理及びアセンブル処理を順に実行して、オブジェクトファイルを生成するクロスコンパイル手段と、生成されたオブジェクトファイルを、通信手段を介して、エミュレータ部に転送する転送手段とを具備する。
【発明の効果】
【０００９】
かかる手段を講じた本発明によれば、ターゲットマシンを模倣した仮想環境下によるクロス開発においても、プログラム生成作業に要する時間を短縮できる効果を奏する。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実施するための最良の形態について、図面を用いて説明する。  
（第１の実施の形態）
第１の実施の形態は、ターゲットマシンで実行される実行ファイルをクロス開発環境で開発するプログラム開発装置として、単体のパーソナルコンピュータ（ＰＣ）を適用した場合である。なお、ターゲットマシンは、例えばファクシミリ、プリンタ、複合機等、ソフトウェアの開発環境を持たないコンピュータ搭載機器であればよく、特に限定されるものではない。
【００１１】
パーソナルコンピュータのハードウェア構成は周知であり、その概略を図２のブロック図にて示す。すなわち、パーソナルコンピュータを適用したプログラム開発装置１０は、ＣＰＵ１１、メインメモリ１２、補助記憶１３、入力部１４、出力部１５及びネットワークインターフェイス１６等で構成される。ＣＰＵ１１と、メインメモリ１２、補助記憶１３、入力部１４、出力部１５及びネットワークインターフェイス１６とは、アドレスバス，データバス等のバスライン１７で接続される。
【００１２】
メインメモリ１２は、ＣＰＵ１１が実行するプログラムやデータを格納するための記憶領域であって、例えばＲＡＭ（Random Access Memory）が用いられる。補助記憶１３は、メインメモリ１２の容量不足を補うもので、例えばＨＤＤ（Hard Disk Drive）装置が用いられる。入力部１４は、データやコマンドを入力するもので、キーボード、ポインティングデバイス等が用いられる。出力部１５は、入力データやＣＰＵ１１の処理データ等を出力するもので、例えばディスプレイが用いられる。ネットワークインターフェイス１６は、ＬＡＮ（Local Area Network）、インターネット等のネットワークを介して接続される外部コンピュータシステムとの間のデータ通信を司るものである。
【００１３】
かかる構成のプログラム開発装置１０のソフトウェア構成を、図１の模式図で示す。図１に示すように、プログラム開発装置１０は、パーソナルコンピュータの基本ソフトウェアであるＯＳ（Operating System）２０の管理下で動作する業務ソフトウェアとして、エミュレータ部３０とクロスコンパイラ部４０とを実装している。これらエミュレータ部３０とクロスコンパイラ部４０とからなるソフトウェアを、クロス開発用プログラムと称する。
【００１４】
エミュレータ部３０は、ターゲットマシンの動作を模倣するソフトウェアであり、エミュレータ用ＯＳ３１と、このエミュレータ用ＯＳ３１の管理下で動作するエミュレータ用コンパイラ３２とを主体としている。また、ターゲットマシンで必要な既成プログラムの集合体であるライブラリ３３を、エミュレータ部３０は含んでいる。エミュレータ用ＯＳ３１は、ターゲットマシンに実装されるＯＳに対応したものである。
【００１５】
エミュレータ用コンパイラ３２は、ターゲットマシンで実行可能な実行ファイル３４を生成するためのソフトウェアであり、オブジェクトファイル生成スタブ３２１とリンカ３２２とを備えている。
【００１６】
クロスコンパイラ部４０は、ターゲットマシンのオブジェクトプログラムを記述したオブジェクトファイル４１５を生成するソフトウェアであり、クロスコンパイラ４１を主体としている。また、それぞれターゲットマシンに対応したヘッダファイル４２とソースファイル４３とを、クロスコンパイラ部４０は含んでいる。必要に応じて、ヘッダファイル４２とソースファイル４３を、エミュレータＯＳ３１へコピー又はリンクさせてもよい。
【００１７】
クロスコンパイラ４１は、オブジェクトファイル生成スタブ４１１、プリプロセッサ４１２、コンパイラ４１３及びアセンブラ４１４を含んでいる。
【００１８】
エミュレータ用コンパイラ３２に実装されたオブジェクトファイル生成スタブ３２１と、クロスコンパイラ４１に実装されたオブジェクトファイル生成スタブ４１１とはそれぞれ、相互間でデータのやり取りを行うための通信手段５０Ａ，５０Ｂを備えている。ＴＥＬＮＥＴ、ＳＳＨ（Secure SHell）、ＣＯＲＢＡ（Common Object Request Broker Architecture）、ＲＰＣ（Remote Procedure Call）、ＲＭＩ（Remote Method Invocation）等を、通信手段５０Ａ，５０Ｂとして適用することができる。
【００１９】
次に、本実施の形態のプログラム開発装置１０を利用して、ターゲットマシンで実行されるプログラムを開発する場合の手順について、図３の流れ図を用いて説明する。
【００２０】
先ず、ユーザは、ターゲットマシン用ソフトウェアの基になるヘッダファイル４２、ソースファイル４３及びライブラリ３３を用意する。用意されたヘッダファイル４２、ソースファイル４３及びライブラリ３３は、補助記憶１３に格納される（Ｓ１）。ソースファイル４３には、プログラマが高級言語で作成したターゲットマシン用のソースプログラムが保存されている。ライブラリ３３には、ターゲットマシンで必要な既成プログラムが保存されている。
【００２１】
次に、ユーザは、エミュレータ用コンパイラ３２の実行を指令する。このとき、入力部１４を介してコマンドライン引数を加える。この指令により、エミュレータ用コンパイラ３２が起動する（Ｓ２）。起動したエミュレータ用コンパイラ３２は、オブジェクトファイル生成スタブ３２１を起動する（Ｓ３）。起動したオブジェクトファイル生成スタブ３２１は、通信手段５０Ａ，５０Ｂを利用して、前記コマンドライン引数をクロスコンパイラ部４０のオブジェクトファイル生成スタブ４１１に転送する（Ｓ４）。
【００２２】
コマンドライン引数を受取ったオブジェクトファイル生成スタブ４１１は、クロスコンパイラ４１を起動する（Ｓ５）。このとき、オブジェクトファイル生成スタブ４１１は、クロスコンパイラ４１にコマンドライン引数を引き渡す。
【００２３】
起動したクロスコンパイラ４１は、コマンドライン引数をパラメータとし、前記ヘッダファイル４２及びソースファイル４３のデータから、ターゲットマシン用のオブジェクトファイル４１５を生成する。すなわちクロスコンパイラ４１は、先ず、ソースプログラムに対してコンパイル前のプリプロセス処理を行うために、プリプロセッサ４１２を実行する。次に、クロスコンパイラ４１は、プリプロセス処理されたソースプログラムをアセンブリ言語のプログラムにコンパイルするために、コンパイラ４１３を実行する。次に、クロスコンパイラ４１は、コンパイルされたアセンブリ言語のプログラムを、機械語のオブジェクトプログラムに変換するために、アセンブラ４１４を実行する。かくして、クロスコンパイラ４１は、オブジェクトプログラムが記述されたオブジェクトファイル４１５を生成する（Ｓ６）。
【００２４】
オブジェクトファイル４１５が生成されると、オブジェクトファイル生成スタブ４１１は、通信手段５０Ａ，５０Ｂを利用して、当該オブジェクトファイル４１５をエミュレータ部３０のオブジェクトファイル生成スタブ３２１に転送する（Ｓ７）。
【００２５】
オブジェクトファイル４１５を受信したオブジェクトファイル生成スタブ３２１は、リンカ３２２を起動する。リンカ３２２は、オブジェクトファイル４１５からターゲットマシンで実行可能な実行ファイル３４を生成するために、オブジェクトファイル４１５に記述されたオブジェクトプログラムにライブラリ３３内の既存プログラムをリンクさせる（Ｓ８）。
【００２６】
かくして、エミュレータ部３０に実行ファイル３４が生成される。生成された実行ファイル３４のプログラムは、エミュレータ部３０で動作可能である。そこでユーザは、エミュレータ部３０上で実行ファイル３４のプログラムを実行して、デバッグを行う（Ｓ９）。以上で、ターゲットマシンで実行されるプログラムのクロス開発が終了する。
【００２７】
このように、本実施の形態においては、単体のパーソナルコンピュータからなるプログラム開発装置１０内に、ソフトウェアによって、エミュレータ部３０とクロスコンパイラ部４０とを構築する。エミュレータ部３０とクロスコンパイラ部４０とは、パーソナルコンピュータ用ＯＳ２０の管理下で動作する。また、エミュレータ部３０とクロスコンパイラ部４０とは、通信手段５０Ａ，５０Ｂにより相互間でデータのやり取りを行えるようになっている。
【００２８】
エミュレータ部３０は、ターゲットマシンの動作を模倣するために、当該ターゲットマシンに実装されるＯＳに対応したエミュレータ用ＯＳ３１を備えている。クロスコンパイラ部４０は、ソースファイル４３からオブジェクトファイル４１５を生成するために必要なソフトウェア、すなわちプリプロセッサ４１２、コンパイラ４１３及びアセンブラ４１４を実装してなるクロスコンパイラ４１を備えている。
【００２９】
エミュレータ部３０は、クロスコンパイラ部４０に対し、通信手段を介して、オブジェクトファイル４１５の生成を指示する（Ｓ１，Ｓ２，Ｓ３：指示手段）。この指示は、エミュレータ用ＯＳ３１の管理下で動作するエミュレータ用コンパイラ３２内のオブジェクトファイル生成スタブ３２１によって実行される。
【００３０】
クロスコンパイラ部４０は、エミュレータ部３０からの生成指示を受けて、オブジェクトファイル４１５を生成するために、ソースファイル４３に対してプリプロセス処理、コンパイル処理及びアセンブル処理を順に実行する（Ｓ５，Ｓ６：クロスコンパイル手段）。これらのプリプロセス処理、コンパイル処理及びアセンブル処理は、パーソナルコンピュータ用ＯＳ２０の管理下で動作するクロスコンパイラ４１によって実行される。
【００３１】
クロスコンパイラ部４０は、生成されたオブジェクトファイル４１５を、通信手段５０Ａ，５０Ｂを介して、エミュレータ部３０に転送する（Ｓ７：転送手段）。このファイル転送は、パーソナルコンピュータ用ＯＳ２０の管理下で動作するクロスコンパイラ４１内のオブジェクトファイル生成スタブ４１１によって実行される。
【００３２】
エミュレータ部３０は、クロスコンパイラ部４０で生成されたオブジェクトファイル４１５から、実行ファイル３４を生成する（Ｓ８：リンカ手段）。このファイル生成は、エミュレータ用ＯＳ３１の管理下で動作するエミュレータ用コンパイラ３２内のリンカ３２２によって実行される。
【００３３】
このように、本実施の形態によれば、ソースファイル４３からオブジェクトファイル４１５を生成するまでの処理過程を、ターゲットマシンを模倣した仮想環境下でなく、実機上、すなわちパーソナルコンピュータ上で実行できるので、ターゲットマシンを模倣するためのエミュレート処理に要する負荷を軽減できる効果を奏する。
【００３４】
また、オブジェクトファイル４１５から実行ファイル３４を生成するための処理過程は、ターゲットマシンを模倣したエミュレータ部３０で実行されるので、ライブラリ３３の検索パスや種類が異なるといったようなバグを回避することができる。しかも、実行ファイル３４がエミュレータ部３０上で生成されるので、そのままターゲットマシンを模倣した仮想環境下で実行ファイル３４のデバッグを行うこともでき、デバッグが容易であるとの利点もある。
【００３５】
（第２の実施の形態）
第２の実施の形態は、プログラム開発装置として適用されるパーソナルコンピュータを、マルチコアＣＰＵ搭載機器とした場合である。
【００３６】
マルチコアＣＰＵを搭載したパーソナルコンピュータのハードウェア構成は周知であり、その概略を図４のブロック図にて示す。なお、図２と共通する部分については同一符号を付して詳細な説明を省略する。すなわち、マルチコアＣＰＵ搭載のパーソナルコンピュータを適用したプログラム開発装置１０は、マルチコアＣＰＵ６１、メインメモリ１２、補助記憶１３、入力部１４、出力部１５及びネットワークインターフェイス１６等で構成される。マルチコアＣＰＵ６１と、メインメモリ１２、補助記憶１３、入力部１４、出力部１５及びネットワークインターフェイス１６とは、アドレスバス，データバス等のバスライン１７で接続される。
【００３７】
マルチコアＣＰＵ６１は、１チップ上に複数（図では２つ）のＣＰＵコア６１１，６１２を搭載しており、各ＣＰＵコア６１１，６１２は、各々が独立して処理を実行することができ、結果的に同一処理の並列処理が可能である。
【００３８】
かかる構成のマルチコアＣＰＵ搭載のパーソナルコンピュータを適用したプログラム開発装置１０において、ソフトウェア構成は、図１に示した第１の実施の形態と同様であるが、一部のソフトウェアの動作が異なる。
【００３９】
すなわち、エミュレータ部３０側のオブジェクトファイル生成スタブ３２１は、コマンドライン引数をクロスコンパイラ部４０のオブジェクトファイル生成スタブ４１１に転送するが、第２の実施の形態では、この転送処理を複数のジョブとして並列に行う。そうすることにより、クロスコンパイラ部４０では、クロスコンパイラ４１が各ジョブに従いオブジェクトファイル４１５の生成処理を並列に実行する。すなわち、プリプロセッサ４１２によるプリプロセス処理、コンパイラ４１３によるコンパイル処理及びアセンブラ４１４によるアセンブル処理の一連の処理が、複数のＣＰＵコア６１１，６１２によってそれぞれ並列に実行される。
【００４０】
このように、実機上、すなわちパーソナルコンピュータ上で実行されるオブジェクトファイル４１５の生成処理を並列処理することによって、コンパイルをさらに効率的に行うことができる。
【００４１】
（第３の実施の形態）
第３の実施の形態では、複数台のパーソナルコンピュータをネットワークで接続してなるマルチコンピュータシステムに、本発明のプログラム開発装置を適用した場合である。
【００４２】
マルチコンピュータシステムのシステム構成は周知であり、その概略を図５に示す。すなわち、複数台のパーソナルコンピュータＰＣ１，ＰＣ２，ＰＣ３、…が、ＬＡＮ、インターネット等のネットワーク８０によって双方向通信自在に接続されている。
【００４３】
本実施の形態では、各パーソナルコンピュータＰＣ１，ＰＣ２，ＰＣ３、…のうち、１台（パーソナルコンピュータＰＣ１）をエミュレータ装置７１と設定し、残り（パーソナルコンピュータＰＣ２，ＰＣ３、…）をコンパイル装置７２と設定する。
【００４４】
エミュレータ装置７１には、第１の実施の形態で説明したエミュレータ部３０が各ソフトウェアによって構築されている。各コンパイル装置７２には、第１の実施の形態で説明したクロスコンパイラ部４０が各ソフトウェアによって構築されている。
【００４５】
エミュレータ装置７１に実装されたエミュレータ用コンパイラ３２内のオブジェクトファイル生成スタブ３２１は、ネットワーク８０を介して複数のコンパイル装置７２にオブジェクトファイル４１５の生成を指示する（指示手段）。
【００４６】
各コンパイル装置７２は、エミュレータ装置７１からの生成指示を受けて、オブジェクトファイル４１５を生成するために、クロスコンパイラ４１を動作させて、ソースファイル４３に対するプリプロセス処理、コンパイル処理及びアセンブル処理を順に実行する（クロスコンパイル手段）。
【００４７】
オブジェクトファイル４１５が生成されると、各コンパイル装置７２は、このオブジェクトファイル４１５を、ネットワーク８０を介してエミュレータ装置７１にそれぞれ転送する（転送手段）。
【００４８】
エミュレータ装置７１は、各コンパイル装置７２で生成されたオブジェクトファイル４１５から、それぞれ実行ファイル３４を生成する（リンカ手段）。
【００４９】
このように第３の実施の形態においても、ターゲットマシンを模倣した仮想環境の下ではソースファイル４３からオブジェクトファイル４１５を生成するまでのコンパイル処理過程を実施せず、上記コンパイル処理過程は、専用のパーソナルコンピュータである複数のコンパイル装置７２で分散して実施するようにしたので、効率的にコンパイルを実行することができる。
【００５０】
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【００５１】
例えば前記第３の実施の形態では、コンパイル装置７２を複数台としたが、コンパイル装置を１台だけとしてもよい。その場合でも、コンパイル処理過程も含めてエミュレートされた環境下でプログラム開発する場合と比較して、プログラム生成作業に要する時間の短縮を図ることができる。
【００５２】
また、各実施の形態では装置内部に発明を実施する機能が予め記録されている場合で説明をしたが、これに限らず同様の機能をネットワークから装置にダウンロードしても良いし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、ＣＤ−ＲＯＭ等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のＯＳ（オペレーティング・システム）等と協働してその機能を実現させるものであってもよい。
【００５３】
この他、前記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を組合わせてもよい。
【図面の簡単な説明】
【００５４】
【図１】本発明の第１の実施の形態であるプログラム開発装置のソフトウェア構成を示す模式図。
【図２】同プログラム開発装置のハードウェア構成を示すブロック図。
【図３】同プログラム開発装置におけるプログラミング処理手順を示す流れ図。
【図４】本発明の第２の実施の形態におけるプログラム開発装置のハードウェア構成を示すブロック図。
【図５】本発明の第２の実施の形態におけるプログラム開発装置のシステム構成を示す模式図。
【符号の説明】
【００５５】
１０…プログラム開発装置、１１…ＣＰＵ、２０…パーソナルコンピュータ用ＯＳ、３０…エミュレータ部、３１…エミュレータ用ＯＳ、３２…エミュレータ用コンパイラ、３３…ライブラリ、３４…実行ファイル、３２１…オブジェクトファイル生成スタブ、３２２…リンカ、４０…クロスコンパイラ部、４１…クロスコンパイラ、４２…ヘッダファイル、４３…ソースファイル、４１１…オブジェクトファイル生成スタブ、４１２…プリプロセッサ、４１３…コンパイラ、４１４…アセンブラ、４１５…オブジェクトファイル、６１…マルチコアＣＰＵ、７１…エミュレータ装置、７２…コンパイル装置、８０…ネットワーク。
【図１】
2010061538.tif 000003
【図２】
2010061538.tif 000004
【図３】
2010061538.tif 000005
【図４】
2010061538.tif 000006
【図５】
2010061538.tif 000007