(57)【要約】【課題】  複数言語により記述されたソースプログラムを効率よくコンパイルするとともに、ＣＰＵの処理負担を効果的に軽減するプログラム変換装置を提供する。【解決手段】  プログラム変換装置１０は、電子機器１においてＣＰＵ２０の外部に備えられており、ＣＰＵ２０とは独立してソースプログラムからオブジェクトコードへの変換処理を実行可能なように構成されている。また、本実施の形態におけるプログラム変換装置１０は、ソースプログラムの記述言語を解析する解析部１１と、そのソースプログラムの記述言語をマシン語に変換する翻訳部１２と、この変換に用いるソフトウェアを格納するソフトウェア格納部１３と、その変換後のオブジェクトテキストを一旦格納するオブジェクトテキスト格納部１４と、その変換後のオブジェクトテキストを実行目的のオブジェクトコードに合成する合成部１５とを有して構成される。【選択図】        図１
2007293573.tif 000002
【特許請求の範囲】
【請求項１】
電子機器内においてＣＰＵとは独立して設けられ、複数種類の言語により記述されたソースプログラムをオブジェクトコードに変換するプログラム変換装置であって、
前記プログラム変換装置は、前記ソースプログラムにおける同一言語の記述部分を連続してマシン語に変換する処理を、前記ＣＰＵとは独立して実行することを特徴とするプログラム変換装置。
【請求項２】
電子機器内においてＣＰＵとは独立して設けられ、複数種類の言語により記述されたソースプログラムをオブジェクトコードに変換するプログラム変換装置であって、
前記プログラム変換装置は、
前記ソースプログラムの記述言語を解析して前記ソースプログラムを言語ごとに分割する解析手段と、
前記解析手段により言語ごとに分割された前記ソースプログラムの記述部分を、同一言語ごとにまとめてマシン語に変換する翻訳手段と、
前記翻訳手段により変換されたプログラムの各記述部分を合成してオブジェクトコードを生成する合成手段と、
を有し、前記オブジェクトコードの生成処理を、前記ＣＰＵとは独立して実行することを特徴とするプログラム変換装置。
【請求項３】
前記翻訳手段は、前記解析手段により分割されたソースプログラムの記述部分のマシン語への変換処理の処理順序を調整し、モジュール最適化を実行することを特徴とする請求項２記載のプログラム変換装置。
【請求項４】
前記合成手段は、前記生成したオブジェクトコードをＯＳに準拠したデータ形式に変換することを特徴とする請求項２又は３記載のプログラム変換装置。
【請求項５】
前記プログラム変換装置は、前記翻訳手段によりマシン語に変換されたソースプログラムの記述部分を一時格納するテキスト格納手段をさらに有し、
前記合成手段は、前記テキスト格納手段により一時格納されたソースプログラムの記述部分を合成して前記オブジェクトコードを生成することを特徴とする請求項２から４のいずれか１項に記載のプログラム変換装置。
【請求項６】
前記プログラム変換装置は、前記合成手段により生成したオブジェクトコードを格納するキャッシュメモリをさらに有し、
前記ＣＰＵは、前記キャッシュメモリから読み出して前記オブジェクトコードを実行することを特徴とする請求項２から５のいずれか１項に記載のプログラム変換装置。
【請求項７】
前記プログラム変換装置は、コード情報を所定の国の言語に変換するエンコード実行手段をさらに備えることを特徴とする請求項２から６のいずれか１項に記載のプログラム変換装置。
【請求項８】
前記プログラム変換装置は、前記通信機器における通信制御を行う通信制御手段をさらに有することを特徴とする請求項２から７のいずれか１項に記載のプログラム変換装置。
【請求項９】
前記プログラム変換装置は、前記電子機器に備えられている記憶デバイスに内蔵されていることを特徴とする請求項１から８のいずれか１項に記載のプログラム変換装置。
【請求項１０】
ユーザが使用するユーザ端末と、該ユーザ端末からの要求によりソフトウェア処理を実行するソフトウェア実行サーバと、前記ソフトウェアを格納するソフトウェア格納サーバとを有するシステムであって、
前記プログラム実行サーバは、前記ユーザ端末からのソフトウェアの実行要求を受信すると、該ソフトウェアを格納している前記ソフトウェア格納サーバを検索し、該当する前記ソフトウェア格納サーバにソフトウェアの取得要求を送信し、
前記ソフトウェア格納サーバは、前記ソフトウェアの取得要求に応じて該当するソフトウェアを前記プログラム実行サーバに送信し、
前記プログラム実行サーバは、前記ソフトウェアを前記ソフトウェア格納サーバから受信すると、該受信したソフトウェアのソースプログラムを言語ごとに分割し、該言語ごとに分割したソースプログラムの記述部分を、同一言語ごとにまとめてマシン語に変換し、該変換したプログラムの各記述部分を合成してオブジェクトコードを生成し、該生成したオブジェクトコードを実行し、該実行結果の情報を前記ユーザ端末に送信することを特徴とするプログラム変換システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム変換装置及びプログラム変換システムに関し、特に、ソースプログラムをコンパイルするプログラム変換装置及びプログラム変換システムに関する。
【背景技術】
【０００２】
近年、ＰＣ等のコンピュータは一般社会や生活に爆発的に普及し、様々な分野や業種で利用されている。コンピュータは、このような様々な利用分野や業種において、所定のコンピュータ言語により記述されたソースプログラムを読み取り実行することによって、その目的や用途に応じた各処理を実行する。
【０００３】
ところで、一般に、このソースプログラムはＣ言語等の高級言語で記述されている。
通常、コンピュータのＣＰＵは、このソースプログラムに記述されている高級言語を直接読み取り実行することができない。このため、コンピュータは、コンパイラ等のソフトウェアを用いて、そのソースプログラムを中間コードにコンパイルし、最終的にはオブジェクトコードにコンパイルする。このオブジェクトコードは、ＣＰＵにより読み取り可能なマシン語により記述されており、このコンパイル処理後、コンピュータは実行することが可能となる。
【０００４】
以上のように、一般に、コンピュータはソースプログラムを実行する際には、コンパイル等の変換処理を実行する。
このとき、実行するソースプログラムが複数の言語により混在して記述されている場合には、そのコンパイル処理が複雑になり、コンピュータ内でのＣＰＵ等の実行速度の低速化を招くという問題が生じてしまう。
【０００５】
このような複数言語により記述されたソースプログラムのコンパイル技術に関するものとして、特許文献１が開示するところの複数言語混在コンパイラが提案されている。
この特許文献１に開示されているコンパイラは、混在する複数言語を各言語ごとに分割してコンパイル処理を行うことで、複数言語により構成されているソースプログラムをオブジェクトコードにコンパイルする際の速度を向上させるというものである。
例えば、ソースプログラムが言語Ａ，言語Ｂといった複数の言語により記述されている場合、そのコンパイラは、このソースプログラム中の言語Ａ記述部分と言語Ｂ記述部分とに分離して認識する。そして、コンパイラは、それぞれの言語仕様に沿った構文解析及び翻訳を実行し、最終的には、言語ごとに翻訳された記述部分を結合してオブジェクトコードを生成する。これにより、従来のものと比べてコンパイルの処理速度の高速化を可能としている。
【特許文献１】特開平７−１２１３７９
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、この特許文献１のコンパイラは、確かに従来のものと比べてコンパイルの処理速度の高速化を可能としているものの、あくまでも電子計算機のプログラムの処理プロセッサ（いわゆるＣＰＵ）に実装することを想定したものであるため、ＣＰＵにかかる処理負担を軽減しきれないという問題が生じる。
この結果、ＣＰＵが実行する全処理におけるこのコンパイルによる処理負担が影響し、各処理の実行に遅延が生じてしまうという問題があった。
【０００７】
本発明は、上記問題点に鑑みてなされたものであり、複数言語により記述されたソースプログラムを効率よくコンパイルするとともに、従来ＣＰＵで行われていた処理を、メモリ上又は外部のコンピュータ上で実行するように構築することにより、ＰＣやモバイル機器内のＣＰＵの負担を効果的に軽減するためのプログラム変換装置及びプログラム変換システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
かかる目的を達成するため、本発明は、電子機器内においてＣＰＵとは独立して設けられ、複数種類の言語により記述されたソースプログラムをオブジェクトコードに変換するプログラム変換装置であって、プログラム変換装置は、ソースプログラムにおける同一言語の記述部分を連続してマシン語に変換する処理を、ＣＰＵとは独立して実行することを特徴とする。
【０００９】
また、本発明は、電子機器内においてＣＰＵとは独立して設けられ、複数種類の言語により記述されたソースプログラムをオブジェクトコードに変換するプログラム変換装置であって、プログラム変換装置は、ソースプログラムの記述言語を解析してソースプログラムを言語ごとに分割する解析手段と、解析手段により言語ごとに分割されたソースプログラムの記述部分を、同一言語ごとにまとめてマシン語に変換する翻訳手段と、翻訳手段により変換されたプログラムの各記述部分を合成してオブジェクトコードを生成する合成手段と、を有し、オブジェクトコードの生成処理を、ＣＰＵとは独立して実行することを特徴とする。
【００１０】
また、本発明によれば、翻訳手段は、解析手段により分割されたソースプログラムの記述部分のマシン語への変換処理の処理順序を調整し、モジュール最適化を実行することを特徴とする。
【００１１】
また、本発明によれば、合成手段は、生成したオブジェクトコードをＯＳに準拠したデータ形式に変換することを特徴とする。
【００１２】
また、本発明によれば、プログラム変換装置は、翻訳手段によりマシン語に変換されたソースプログラムの記述部分を一時格納するテキスト格納手段をさらに有し、合成手段は、テキスト格納手段により一時格納されたソースプログラムの記述部分を合成してオブジェクトコードを生成することを特徴とする。
【００１３】
また、本発明によれば、プログラム変換装置は、合成手段により生成したオブジェクトコードを格納するキャッシュメモリをさらに有し、ＣＰＵは、キャッシュメモリから読み出してオブジェクトコードを実行することを特徴とする。
【００１４】
また、本発明によれば、プログラム変換装置は、コード情報を所定の国の言語に変換するエンコード実行手段をさらに備えることを特徴とする。
【００１５】
また、本発明によれば、プログラム変換装置は、通信機器における通信制御を行う通信制御手段をさらに有することを特徴とする。
【００１６】
また、本発明によれば、プログラム変換装置は、電子機器に備えられている記憶デバイスに内蔵されていることを特徴とする。
【００１７】
また、本発明のプログラム変換システムは、ユーザが使用するユーザ端末と、ユーザ端末からの要求によりソフトウェア処理を実行するソフトウェア実行サーバと、ソフトウェアを格納するソフトウェア格納サーバとを有するシステムであって、プログラム実行サーバは、ユーザ端末からのソフトウェアの実行要求を受信すると、ソフトウェアを格納しているソフトウェア格納サーバを検索し、該当するソフトウェア格納サーバにソフトウェアの取得要求を送信し、ソフトウェア格納サーバは、ソフトウェアの取得要求に応じて該当するソフトウェアをプログラム実行サーバに送信し、プログラム実行サーバは、ソフトウェアをソフトウェア格納サーバから受信すると、受信したソフトウェアのソースプログラムを言語ごとに分割し、言語ごとに分割したソースプログラムの記述部分を、同一言語ごとにまとめてマシン語に変換し、変換したプログラムの各記述部分を合成してオブジェクトコードを生成し、生成したオブジェクトコードを実行し、実行結果の情報をユーザ端末に送信することを特徴とする。
【００１８】
なお、以上の構成要素の任意の組合せや、本発明の構成要素や表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１９】
本発明によれば、プログラム変換装置は、ソースプログラムにおける同一言語の記述部分を連続してマシン語に変換する処理を、ＣＰＵとは独立して実行するので、ＣＰＵに負荷をかけずに効率のよいプログラムの変換処理を実行することが可能となる。
【発明を実施するための最良の形態】
【００２０】
＜第１の実施の形態＞
（第１の実施の形態の構成）
図１は、本発明の第１の実施の形態におけるプログラム変換装置１０の構成図である。
以下、図を用いて、このプログラム変換装置１０の構成について説明を進める。
図に示すように、プログラム変換装置１０は、電子機器１においてＣＰＵ２０の外部に備えられており、ＣＰＵ２０とは独立してソースプログラムからオブジェクトコードへの変換処理を実行可能なように構成されている。
また、本実施の形態におけるプログラム変換装置１０は、複数言語により記述されているソースプログラムの記述言語を解析する解析部１１と、そのソースプログラムの記述言語をマシン語に変換する翻訳部１２と、この変換に用いるソフトウェアを格納するソフトウェア格納部１３と、その変換後のオブジェクトテキストを一旦格納するオブジェクトテキスト格納部１４と、その変換後のオブジェクトテキストを実行目的のオブジェクトコードに合成する合成部１５とを有して構成される。
【００２１】
解析部１１は、複数言語により混在して記述されているソースプログラムを解析し、このソースプログラムの記述言語を認識する。そして、解析部１１は、このソースプログラムを各言語ごとに分割した部分ソーステキストを生成する。
【００２２】
翻訳部１２は、その解析部１１により生成された各言語の部分ソーステキストに対し、それぞれコンパイル又はアセンブル等のプログラム変換処理を実行し、各部分ソーステキストを、マシン語により記述された部分オブジェクトテキストに変換する。
【００２３】
ソフトウェア格納部１３は、その翻訳部１２によるプログラム変換処理に用いられる変換用のソフトウェアを格納する。このソフトウェア格納部１３には、ソースプログラムを記述する各言語をマシン語に変換するためのコンパイラやアセンブラ等が格納されている。
【００２４】
オブジェクトテキスト格納部１４は、その翻訳部１２により変換され生成した部分オブジェクトテキストを一時格納しておく部位であり、レジスタとしての機能を備えている。
【００２５】
合成部１５は、そのオブジェクトテキスト格納部１４に格納された複数の部分オブジェクトテキストを合成し、実行目的のオブジェクトコードを生成する。
【００２６】
（第１の実施の形態の動作）
図２は、本発明の第１の実施の形態におけるプログラム変換装置１０の動作の流れを示すフローチャートである。
以下、図に沿って、プログラム変換装置１０によるソースプログラムの変換処理について説明する。
【００２７】
まず、ＣＰＵ２０から、複数の言語により混在して記述されている実行目的のソースプログラム１００が、解析部１１に入力される（ステップＳ１０１）。
【００２８】
解析部１１は、この入力されたソースプログラム１００を解析し、このプログラム１００中の各記述部分がどの言語で記述されているかを認識する（ステップＳ１０２）。
【００２９】
次に、解析部１１は、記述言語が切り替わる行に至るごとに、ソースプログラム１００を分割し、複数の部分ソーステキスト１１０（１１０ａ，１１０ｂ，１１０ｃ，・・・）を生成する（ステップＳ１０３）。
なお、このとき、生成した部分ソーステキスト１１０ａ，１１０ｂ，１１０ｃ，・・・を再度合成可能なように、解析部１１は、プログラム全体における各部分ソーステキスト１１０ａ，１１０ｂ，１１０ｃ，・・・の配置場所を示す配置情報を生成し、それぞれ各部分ソーステキスト１１０ａ，１１０ｂ，１１０ｃ，・・・に付加する（ステップＳ１０４）。
【００３０】
次に、解析部１１は、生成した各部分ソーステキスト１１０ａ，１１０ｂ，・・・に対し、どの言語により記述されているかを示す言語識別子を付加する（ステップＳ１０５）。
そして、解析部１１は、生成した部分ソーステキスト１１０ａ，１１０ｂ，・・・を翻訳部１２へ出力する（ステップＳ１０６）。
【００３１】
翻訳部１２は、これら部分ソーステキスト１１０ａ，１１０ｂ，・・・が入力されると、各部分ソーステキスト１１０ａ，１１０ｂ，１１０ｃ，・・・に付加された言語識別子を検出し、この言語識別子に基づいて各部分ソーステキスト１１０ａ，１１０ｂ，１１０ｃ，・・・をマシン語に変換する順序を決定する（ステップＳ１０７）。
このとき、翻訳部１２は、同一言語の部分ソーステキスト１１０を連続して変換するように順序を決定する。
【００３２】
次に、翻訳部１２は、各ソーステキスト１１０の変換に必要なソフトウェアをソフトウェア格納部１３から読み出す（ステップＳ１０８）。
翻訳部１２は、この読み出した変換ソフトウェアを用いて、部分ソーステキスト１１０ａ，１１０ｂ，１１０ｃ，・・・をそれぞれ、マシン語により記述された部分オブジェクトテキスト１２０ａ，１２０ｂ，１２０ｃ，・・・（部分オブジェクトテキスト１２０）に変換する（ステップＳ１０９）。
【００３３】
次に、翻訳部１２は、変換し生成した部分オブジェクトテキスト１２０ａ，１２０ｂ，１２０ｃ，・・・を一旦オブジェクトテキスト格納部１４に格納する（ステップＳ１１０）。
このようにオブジェクトテキスト格納部１４に格納された、部分オブジェクトテキスト１２０ａ，１２０ｂ，１２０ｃ，・・・は、共有ライブラリとして機能する。
【００３４】
次に、合成部１５は、オブジェクトテキスト格納部１４に格納された部分オブジェクトテキスト１２０ａ，１２０ｂ，１２０ｃ，・・・を読み出し、前述の配置情報に従ってこれらを再配置して合成し、オブジェクトコード１３０を生成する（ステップＳ１１１）。
また、このとき、合成部１５は、これらの部分オブジェクトテキスト１２０の不要部分を削除する等して同期及び最適化処理を行う。
【００３５】
次に、合成部１５は、生成したオブジェクトコード１３０を、使用するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に準拠した形式に変換し（ステップＳ１１２）、ＣＰＵ２０へ出力する（ステップＳ１１３）。
そして、ＣＰＵ２０内のレジスタやキャッシュ、ハードディスクに保存した後に、ＣＰＵ２０は、このオブジェクトコード１３０を実行する。
以上で動作が終了する。
【００３６】
（ソースプログラムの変換動作の具体例）
図３は、前述のプログラム変換装置１０によるソースプログラム１００の変換処理の具体例を説明するための図である。
以下、この図を用いて詳細に説明する。
【００３７】
まず、解析部１１は、記述言語が切り替わる行に至るごとに、ソースプログラム１００を分割し、複数の部分ソーステキスト１１０ａ，１１０ｂ，１１０ｃ，・・・を生成する。
【００３８】
次に、翻訳部１２は、各部分ソーステキスト１１０ａ，１１０ｂ，１１０ｃ，・・・をマシン語に変換する順序を決定する。このとき、翻訳部１２は、同一言語の部分ソーステキスト１１０が連続するように変換する順序を決定する。
例えば、各部分ソーステキスト１１０ａ，１１０ｂ，１１０ｃ，１１０ｄ，１１０ｅの記述言語が、それぞれ順に、Ｃ言語、Ｊａｖａ（登録商標）言語、Ｃ言語、ＨＴＭＬ等のマークアップ言語、Ｊａｖａ（登録商標）言語、である場合には、１１０ａ，１１０ｃ，１１０ｂ，１１０ｅ，１１０ｄと並べ替えて、Ｃ言語、Ｃ言語、Ｊａｖａ（登録商標）言語、Ｊａｖａ（登録商標）言語、マークアップ言語の順に変換を行う。
【００３９】
このように変換処理の実行順序を並べ替えることにより、翻訳部１２による変換用ソフトウェアの読み出し回数を低減し、ソースプログラム１００の変換処理の高速化を実現することができる。
図４は、この翻訳部１２によるソースプログラム１００の変換処理の高速化を説明するための図である。
図に示すように前述の例において、並び替え前は、翻訳部１２は、各部分ソーステキスト１１０ａ，１１０ｂ，１１０ｃ，１１０ｄ，１１０ｅの変換を実行するごとに、その変換用ソフトウェア（コンパイラ）を計５回読み出す必要がある。
これに対し、並び替え後には、翻訳部１２は、記述言語が切り替わるごとに、その記述言語に応じた変換用ソフトウェアを読み出せばよいので、その読み出し回数は共通化され３回となり従来の各処理工程の簡略化が可能となる。
このように、部分ソーステキスト１１０の変換順序を変更し、モジュール化（最適化）をすることにより、変更前に比べて変換処理全体を高速化することができる。
【００４０】
（第１の実施の形態の実施例）
以下、プログラム変換装置１０を電子機器に利用したときの実施例１について説明する。
図５は、第１の実施の形態の一実施例におけるプログラム変換装置１０を実装した電子機器１の構成の概略を示す図である。
図に示すように、プログラム変換装置１０は、ＲＡＭ３０に内蔵されている。
この実施例においては、解析部１１、翻訳部１２及び合成部１５は、それぞれプロセッサ及びＲＡＭ３０の記憶領域の一部により構成され、ソフトウェア格納部１３及びオブジェクトテキスト格納部１４は、ＲＡＭ３０の記憶領域の一部により構成される。
なお、ＲＡＭ３０の記憶領域のうち、プログラム変換装置１０により使用されていない領域は、通常のＲＡＭの記憶領域として使用される。
【００４１】
このように、プログラム変換装置１０は、電子機器１内においてＣＰＵ２０の外部に設置され、従来はＣＰＵ２０にて実行されていたコンパイルやアセンブリ等のプログラム変換処理を実行するので、ＣＰＵ２０の処理負担を大幅に軽減することが可能となり、その処理の高速化を容易に実現することが可能となる。
【００４２】
なお、プログラム変換装置１０は、内蔵するプロセッサ及び記憶領域を用いて、ＣＰＵ２０に代わって、ソースプログラム１００のスキャニング、原始／高級言語の翻訳・解析・分類処理、フェッチ（命令読込み）、デコード、演算処理、ライブラリの共通化処理、再配置・同期処理、モジュール最適化処理、エンコード、（日本語等の）言語処理又は通信制御処理等の各処理を実行することで、ＣＰＵ２０の処理負担を軽減させることができる。
さらに、プログラム変換装置１０内の記憶領域をレジスタ（一時保存処理）又はハードディスクへのキャッシュメモリとして使用することにより、ＣＰＵ２０内のハード資源を有効利用することができる。
【００４３】
なお、本実施例においては、プログラム変換装置１０はＲＡＭ３０に内蔵されているが、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）又はＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等、この内蔵されるＲＡＭの種類は特に限定しないものとする。
また、プログラム変換装置１０は、ＲＡＭ以外のその他の記憶デバイスに内蔵されるように構成してもよい。例えば、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  ＥＰＲＯＭ）等の記憶デバイスに内蔵されるようにしてもよい。
また、プログラム変換装置１０は、記憶デバイス以外の、電子機器１内の他のデバイスに内蔵されるようにしてもよい。
また、プログラム変換装置１０は、様々な種類の電子機器１に組み込むことができる。例えば、ＰＣ、ワークステーション、ＰＤＡ等の各種コンピュータ、又は携帯電話機やＰＨＳ等の通信機器に組み込むようにしてもよい。
【００４４】
（第１の実施の形態のまとめ）
以上説明したように、本実施の形態によれば、プログラム変換装置１０は、ソースプログラム１００を言語別に部分ソーステキスト１１０に分割し、これら生成した部分ソーステキスト１１０を同一言語にまとめてマシン語への変換処理を行うので、変換の際に各言語に応じた変換用のソフトウェアを読み出す回数を削減することができ、その結果、ソースプログラム１００の変換処理を大幅に高速化することが可能となる。
また、プログラム変換装置１０は、ＣＰＵ２０とは独立してソースプログラム１００の変換処理を実行するので、ＣＰＵ２０の処理負担を大幅に軽減させることが可能となる。
【００４５】
なお、ソースプログラム１００を構成する言語は、いわゆる高級言語であってもよいし、低級言語であってもよく、特定のものに限定されないものとする。
例えば、この言語としては、ＦＯＲＴＲＡＮ、ＡＬＧＯＬ、ＣＯＢＯＬ、ＢＡＳＩＣ、Ｐａｓｃａｌ、Ｃ言語、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｌｉｓｐ、Ｐｒｏｌｏｇ、ＲＰＧ、ＣＤＭＡ系言語、ＨＴＭＬ等のマークアップ言語等である。
【００４６】
また、翻訳部１２は、部分ソーステキスト１１０を変換する際、その記述言語の種類に応じた変換ソフトウェアをソフトウェア格納部１３から読み出して変換処理を実行する。
例えば、部分ソーステキスト１１０がＣ言語等のコンパイラ型言語で記述されている場合には、翻訳部１２は、コンパイラをソフトウェア格納部１３から読み出してコンパイルを行う。
一方、部分ソーステキスト１１０がＰｅｒｌ等のインタープリタ型言語である場合には、プログラム実行時までこのまま変換を行わず、その配置情報に基づいて合成部１５によりオブジェクトコード１３０中に配置される。このオブジェクトコード１３０中のインタープリタ型言語で記述されている部分は、ＣＰＵ２０がオブジェクトコード１３０を実行時にインタープリタにより解釈される。
また、部分ソーステキスト１１０がアセンブリ言語である場合には、翻訳部１２は、アセンブラをソフトウェア格納部１３から読み出してアセンブルを行う。
【００４７】
また、プログラム変換装置１０は、プログラム変換処理を効率化した上でＣＰＵ２０に代わって実行するものであるが、ＣＰＵ２０に代わって、他の処理を実行することができる。
例えば、前述の電子機器１に設けられているキーボード等の入力装置から入力された情報、又はネットワークを介して電子機器１が受信した情報等を、所定の国の言語（日本語など）にエンコードして、ディスプレイ上などに表示する処理を、プログラム変換装置１０がＣＰＵ２０に代わって実行することができる。
このとき、このエンコードのためのソフトウェアは、プログラム変換装置１０内のソフトウェア格納部１２に予め格納されている。
【００４８】
また、プログラム変換装置１０は、ＣＰＵ２０の外部キャッシュメモリとして機能する記憶領域をさらに有するように構成してもよい。
このプログラム変換装置１０内のキャッシュメモリに、前述の合成部１５により生成されたオブジェクトコード１３０やその他のデータを格納しておくことにより、ＣＰＵ２０のハード資源を有効利用することが可能となる。
【００４９】
また、プログラム変換装置１０は、ＣＰＵ２０とデータ伝送回路（図示せず）とを電気的につなぐ通信制御装置（ＣＣＵ；Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）に代わって、伝送データのエラーチェックやモデムインタフェースの制御等の通信制御処理を実行することもできる。
この場合には、プログラム変換装置１０は、その通信制御処理を実行するためのソフトウェアを実装する。
【００５０】
このように、プログラム変換装置１０は、電子機器１内の他のデバイスに代わって各種処理を実行することにより、それらの処理負担を軽減させることができる。
【００５１】
＜第２の実施の形態＞
（第２の実施の形態の概要）
以上説明したように、第１の実施の形態では、プログラム変換装置１０は、ユーザが使用する電子機器１内のＲＡＭ３０に内蔵されている。
これに対し、本実施の形態では、ユーザが使用するユーザ端末の外部の他の機器に前述のプログラム変換装置１０の機能を持たせて、そのユーザ端末にかかる処理負担を軽減させる。
以下、特記しない限り、本実施の形態における構成及び動作は、第１の実施の形態と同様であるものとして説明を進める。
【００５２】
（第２の実施の形態の構成）
図６は、本発明の第２の実施の形態におけるプログラム変換システム２の構成を示す図である。
図に示すように、プログラム変換システム２は、各ユーザが操作するユーザ端末４０と、このユーザ端末４０にインターネット等のネットワークを介して接続されユーザ端末４０の代わりにソースプログラムの変換処理を行うプログラム実行サーバ５０と、ソフトウェアを格納するソフトウェア格納サーバ６０とを有して構成される。
【００５３】
ユーザ端末４０は、汎用のＰＣ、携帯電話機、ＰＨＳ又はＰＤＡ等の通信機能を備えた端末装置である。ユーザは、ユーザ端末４０を用いてプログラム実行サーバ５０に所望のソースプログラムを変換及び実行させることができる。
【００５４】
プログラム実行サーバ５０は、例えばワークステーション等のハイエンドのコンピュータであり、ユーザ端末４０の代わりにソースプログラムを変換及び実行する、前述のプログラム変換装置１０と同様の機能を備えた情報処理装置である。
図に示すように、プログラム実行サーバ５０は、プログラム実行サーバ５０全体を制御する制御部５１と、情報を格納するハードディスク等の情報格納部５２とを有する。
この情報格納部５２の格納領域は、複数のユーザに対して分割して割り当てて使用を許可している。
【００５５】
ソフトウェア格納サーバ６０は、例えばワークステーション等のハイエンドのコンピュータであり、ソースプログラム１００を格納している。ソフトウェア格納サーバ６０は、プログラム実行サーバ５０からソースプログラム１００の取得要求を受信すると、その要求されたソースプログラム１００を送信する。
【００５６】
（第２の実施の形態の動作）
図７は、本発明の第２の実施の形態におけるプログラム変換システム２の動作の流れを示す図である。
次に、この図に沿って、本実施の形態における動作について説明する。
【００５７】
まず、ユーザは、ユーザ端末４０を操作して、ソフトウェアの実行をプログラム実行サーバ５０に要求する（ステップＳ２０１）。
【００５８】
プログラム実行サーバ５０は、このソフトウェアの実行要求を受信すると、該当するソフトウェアを格納しているソフトウェア格納サーバ６０を検索し、そのソフトウェア格納サーバ６０に対して、該当するソフトウェアの取得を要求する（ステップＳ２０２）。
【００５９】
ソフトウェア格納サーバ６０は、ソフトウェアの取得要求を受信すると、格納しているソフトウェアから該当するものを抽出してプログラム実行サーバ５０に送信する（ステップＳ２０３）。
【００６０】
プログラム実行サーバ５０は、このソフトウェアを受信すると、第１の実施の形態におけるプログラム変換装置１０と同様に、このソフトウェアのソースプログラム１００を記述言語ごとに処理順序を並べ替えてオブジェクトコード１３０への変換を行う（ステップＳ２０４）。
なお、この変換処理の流れで生成した部分オブジェクトテキスト１２０は、情報格納部５２において各ユーザに割り当てられた格納領域に格納しておき、ライブラリとして利用可能となる。これ以降、この格納領域から読み出すことで、プログラムの実行処理の高速化を実現することができるようになる。
【００６１】
次に、プログラム実行サーバ５０は、このオブジェクトコード１３０を実行し、その実行結果を示す情報を、前述の情報格納部５２において該当するユーザに割り当てられている格納領域に格納する（ステップＳ２０５）。このように、情報格納部５２に格納しておくことにより、これ以降ユーザが再度この実行結果を参照したいときに迅速に提供することができるようになる。
また、このとき、プログラム実行サーバ５０は、その実行結果を示す情報をユーザ端末４０に送信する（ステップＳ２０６）。
ユーザ端末４０は、この実行結果を示す情報を受信すると、自端末に備えられているディスプレイにその実行結果情報を表示する（ステップＳ２０７）。
【００６２】
（第２の実施の形態のまとめ）
以上説明したように、本実施の形態においては、プログラム実行サーバ５０は、ソースプログラム１００の変換処理及び実行処理をユーザ端末４０に代わって行うので、ユーザ端末４０の処理負担を軽減させ、処理全体の高速化を実現することが可能となる。
特に、各端末・サーバ間のネットワークの通信速度を一定以上に保つことにより、この処理の高速化を確実に実現することができる。
また、ユーザ端末４０自体がソフトウェア（ソースプログラム１００）を保有していなくても、その実行結果を容易に取得することが可能となる。
さらに、プロセッサのクロック数を増加させて処理全体の高速化を試みる場合に、たとえユーザ端末４０の仕様に限界があり内蔵プロセッサのアップグレードが困難であっても、プログラム実行サーバ５０の内蔵プロセッサのみをアップグレードするだけで、ユーザ端末４０における処理全体の高速化を実現できる。
【００６３】
なお、本実施の形態における「実行結果情報」は、そのソフトウェアの内容により多様なものが考えられる。例えば、演算結果、検索結果、他の文字／画像情報等であってもよい。
【００６４】
また、プログラム実行サーバ５０は、各ユーザに割り当てた格納領域及びその格納領域に備えられたプロセッサを用いて、ユーザ端末４０（内のＣＰＵ）に代わって、ソースプログラム１００のスキャニング、原始／高級言語の翻訳・解析・分類処理、フェッチ（命令読込み）、デコード、演算処理、ライブラリの共通化処理、再配置・同期処理、モジュール最適化処理、エンコード、（日本語等の）言語処理又は通信制御処理等の各処理を実行することで、ユーザ端末４０（内のＣＰＵ）の処理負担を軽減させることができる。
さらに、ユーザ端末４０に代わって、プログラム実行サーバ５０内の各格納領域をレジスタ（一時保存処理）又はハードディスクへのキャッシュメモリとして使用することにより、ユーザ端末４０内のハード資源を有効利用することができる。
このプログラム実行サーバ５０においてハードディスク４２等の記憶・蓄積デバイスの拡張、プログラムの実装、プロセッサのクロック数のアップグレード等を行うことにより、あたかもこのプログラム実行サーバ５０を利用するユーザ端末４０個々の処理機能が向上したかのような効果が得られる。
【００６５】
（第２の実施の形態の変型例）
以上説明したように、本実施の形態におけるプログラム変換システム２は、プログラム実行サーバ５０が、ソフトウェア格納サーバ６０からソフトウェアを取得し、そのソフトウェアのソースプログラム１００の変換処理及び実行処理を行うものである。
本実施の形態の変型例として、ソフトウェア格納サーバ６０自体が、ソースプログラム１００の変換処理及び実行処理を行うようにすることもできる。
【００６６】
図８は、本発明の第２の実施の形態の変型例におけるプログラム変換システム２の動作の流れを示す図である。
以下、この図に沿って、本変型例について説明する。
【００６７】
プログラム実行サーバ５０が、ユーザ端末４０からソフトウェアの実行要求を受信するところまでは一緒である（ステップＳ３０１）。ここで、プログラム実行サーバ５０は、ソフトウェア格納サーバ６０に対してソフトウェアの実行を要求する（ステップＳ３０２）。
ソフトウェア格納サーバ６０は、この実行要求を受信すると、自身に格納されているソフトウェアの変換処理及び実行処理を前述のプログラム変換装置１０と同様に行う（ステップＳ３０３）。そして、ソフトウェア格納サーバ６０は、この実行結果を示す情報をプログラム実行サーバ５０に送信する（ステップＳ３０４）。
プログラム実行サーバ５０は、この実行結果情報を受信すると、情報格納部５２において該当するユーザに割り当てられている格納領域に格納しておく（ステップＳ３０５）。
また、プログラム実行サーバ５０は、この実行結果情報をユーザ端末４０に送信する（ステップＳ３０６）。そして、ユーザ端末４０は、この実行結果情報を表示する（ステップＳ３０７）。
【００６８】
以上説明したように、ユーザ端末４０に代わって、ソフトウェア格納サーバ６０がソースプログラム１００の変換処理及び実行処理を行うことにより、ユーザ端末４０の処理を軽減することが可能となる。
【００６９】
＜実施形態全体のまとめ＞
なお、前述の実施の形態において、電子機器１、ユーザ端末４０、プログラム実行サーバ５０又はソフトウェア格納サーバ６０の記述している構成部位の他、通常のコンピュータに必要な構成については、その記述を省略しているだけで当然備えているものとする。
【００７０】
なお、上記の実施例は本発明の好適な実施の一例であり、本発明の実施例は、これに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々変形して実施することが可能となる。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施の形態におけるプログラム変換装置の構成図である。
【図２】本発明の実施の形態におけるプログラム変換装置の動作の流れを示すフローチャートである。
【図３】本発明の実施の形態におけるプログラム変換装置によるソースプログラムの変換処理の具体例を説明するための図である。
【図４】本発明の実施の形態における翻訳部によるソースプログラムの変換処理の高速化を説明するための図である。
【図５】本発明の実施例１におけるプログラム変換装置を実装した電子機器の構成の概略を示す図である。
【図６】本発明の実施例２におけるプログラム変換システムの構成を示す図である。
【図７】本発明の第２の実施の形態におけるプログラム変換システムの動作の流れを示す図である。
【図８】本発明の第２の実施の形態の変型例におけるプログラム変換システムの動作の流れを示す図である。
【符号の説明】
【００７２】
１    電子機器
２    プログラム変換システム
１０    プログラム変換装置
１１    解析部
１２    翻訳部
１３    ソフトウェア格納部
１４    オブジェクトテキスト格納部
１５    合成部
２０    ＣＰＵ
３０    ＲＡＭ
４０    ユーザ端末
５０    プログラム実行サーバ
６０    ソフトウェア格納サーバ
１００    ソースプログラム
１１０，１１０ａ，１１０ｂ，１１０ｃ，・・・    部分ソーステキスト
１２０，１２０ａ，１２０ｂ，１２０ｃ，・・・    部分オブジェクトテキスト
１３０    オブジェクトコード
【図１】
2007293573.tif 000003
【図２】
2007293573.tif 000004
【図３】
2007293573.tif 000005
【図４】
2007293573.tif 000006
【図５】
2007293573.tif 000007
【図６】
2007293573.tif 000008
【図７】
2007293573.tif 000009
【図８】
2007293573.tif 000010