(57)【要約】【課題】  コンパイルの残り所要時間を計算するための計算モデルの係数等を事前に求めておく必要が無く、コンパイルの残り所要時間をリアルタイムに表示することのできるコンパイル装置の提供。【解決手段】  入力されたソースプログラムを予め展開した展開済みソースプログラムのうちのコンパイル済みの行数と、コンパイル開始からの経過時間と、前記展開済みソースプログラムのうちのコンパイルが済んでいない行数と、を用いてコンパイルの終了までの残り時間を算出して、表示装置に表示する。コンパイルの終了までの残り時間の表示がリアルタイムに表示されるよう、コンパイルの終了までの残り時間の算出と、表示装置への表示は、所定の時間間隔で繰り返し実行される。【選択図】  図２
2010191617.tif 000002
【特許請求の範囲】
【請求項１】
入力されたソースプログラムを展開した展開済みソースプログラムのコンパイル中に所定の時間間隔で、前記展開済みソースプログラムのうちのコンパイル済みの行数と、コンパイル開始からの経過時間と、前記展開済みソースプログラムのうちのコンパイルが済んでいない行数と、を用いて、コンパイルの終了までの残り時間を算出して、表示装置に表示するコンパイル時間計算部を含むコンパイル処理部を備えるコンパイル装置。
【請求項２】
さらに、入力されたソースプログラムを展開し、展開済みソースプログラムを生成するコンパイル前処理部を備える請求項１のコンパイル装置。
【請求項３】
前記コンパイル前処理部は、前記展開済みソースプログラムの総行数を算出し、前記展開済みソースプログラムのいずれかの箇所に記録しておき、
前記コンパイル時間計算部は、前記展開済みソースプログラムに記録された前記展開済みソースプログラムの総行数を用いて、前記展開済みソースプログラムのコンパイル所要時間を求め、前記コンパイル所要時間からコンパイル開始からの経過時間を差し引くことにより、コンパイルの終了までの残り時間を算出する請求項２のコンパイル装置。
【請求項４】
前記コンパイル時間計算部は、前記展開済みソースプログラムに含まれるソースプログラムの個数をｎ個、そのうちのコンパイル済みのソースプログラムに与えられた番号をｊとする次式の計算モデルを用い、
前記コンパイル済みのソースプログラムの手続き部の行数Ｌ１、Ｌ2、・・・、Ｌｊの和と、前記コンパイル済みのソースプログラムのコンパイル所要時間Ｔ１、Ｔ2、・・・、Ｔｊの和と、から求めた一行あたりのコンパイル処理速度に、前記展開済みソースプログラムのコンパイルが済んでいない行数Ｌｊ＋１、Ｌｊ＋２、・・・、Ｌｎの和を乗じて、現時点からコンパイルの終了までの残り時間ＲＴを算出する請求項１または２のコンパイル装置。
【数１】
2010191617.tif 000005
【請求項５】
前記コンパイル前処理部は、前記ｎ個のソースプログラムの行数Ｌ１、Ｌ2、・・・、Ｌｎを算出し、前記展開済みソースプログラムのいずれかの箇所にそれぞれ記録しておき、
前記コンパイル時間計算部は、前記ｎ個のソースプログラムの行数Ｌ１、Ｌ2、・・・、Ｌｎを用いて、前記展開済みソースプログラムのコンパイル所要時間を求め、コンパイル所要時間からコンパイル開始からの経過時間を差し引くことにより、コンパイルの終了までの残り時間を算出する請求項４のコンパイル装置。
【請求項６】
入力されたソースプログラムを予め展開した展開済みソースプログラムのうちのコンパイル済みの行数と、コンパイル開始からの経過時間と、前記展開済みソースプログラムのうちのコンパイルが済んでいない行数と、を用いてコンパイルの終了までの残り時間を算出し、表示装置に表示する処理をコンパイラが作動しているコンピュータに所定の時間間隔で実行させるプログラム。
【請求項７】
入力されたソースプログラムを予め展開した展開済みソースプログラムのうちのコンパイル済みの行数と、コンパイル開始からの経過時間と、前記展開済みソースプログラムのうちのコンパイルが済んでいない行数と、を用いてコンパイルの終了までの残り時間を所定の時間間隔で算出するステップと、
前記コンパイルの終了までの残り時間を表示装置に表示するステップとを含む、コンパイルの終了までの残り時間の表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンパイル装置、プログラムおよびコンパイル中におけるコンパイルの終了までの残り時間の表示方法に関する。
【背景技術】
【０００２】
ソースプログラムをコンパイルしてオブジェクトファイルを生成するコンパイル処理は、ソースプログラムの規模が大きい場合、非常に長い時間を要することが知られている。
【０００３】
そこで、特許文献１には、構文解析や意味解析といったフェーズ毎に、コンパイル実行時間を算出し、積み上げてコンパイル終了時間を求める計算モデルを用いて、コンパイル終了時間を計算して、利用者端末に表示させる手段を備えたコンパイル装置が開示されている。
【０００４】
また、特許文献２には、ソースプログラムのバイト数を用いて、コンパイルの残り時間を予測する翻訳時間予測部と、この残り時間を表示する翻訳残り時間表示部と、を備えたコンパイル装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平４−０６５７２１公報
【特許文献２】特開平５−２５７７０５公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１のコンパイル装置は、コンパイル開始時に翻訳対象のコンパイル終了時間を計算して表示するものであり、その後のシステムの負荷状況により生じする翻訳対象のコンパイル終了時間の変動を、コンパイル終了時間に反映することができないという問題点がある。
【０００７】
一方、特許文献２のコンパイル装置は、コンパイル開始時に翻訳対象のコンパイル終了時間を計算して表示することができるとされているが、同文献の段落００１９に記載されているとおり、大量のサンプルプログラムコンパイルを行って基準値α１〜α３を事前に決定しておく必要がある。また、このようにして得られた基準値α１〜α３は、コンパイルに用いるコンピュータの性能によって変動するため、別のコンピュータでは上記決定した基準値α１〜α３が必ずしも妥当するとは限らないという問題点がある。
【０００８】
本発明は、上記した事情に鑑みてなされたものであって、コンパイルの残り所要時間を算出するにあたり、その計算モデルの係数等を事前に求めておく必要が無く、コンパイルの残り所要時間をリアルタイムに表示することのできるコンパイル装置、プログラムおよびコンパイル中におけるコンパイルの終了までの残り時間の表示方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の視点によれば、入力されたソースプログラムを展開した展開済みソースプログラムのコンパイル中に所定の時間間隔で、前記展開済みソースプログラムのうちのコンパイル済みの行数と、コンパイル開始からの経過時間と、前記展開済みソースプログラムのうちのコンパイルが済んでいない行数と、を用いて、コンパイルの終了までの残り時間を算出して、表示装置に表示するコンパイル時間計算部を含むコンパイル処理部を備えるコンパイル装置が提供される。
【００１０】
本発明の第２の視点によれば、入力されたソースプログラムを予め展開した展開済みソースプログラムのうちのコンパイル済みの行数と、コンパイル開始からの経過時間と、前記展開済みソースプログラムのうちのコンパイルが済んでいない行数と、を用いてコンパイルの終了までの残り時間を算出し、表示装置に表示する処理をコンパイラが作動しているコンピュータに所定の時間間隔で実行させるプログラムが提供される。
【００１１】
本発明の第３の視点によれば、入力されたソースプログラムを予め展開した展開済みソースプログラムのうちのコンパイル済みの行数と、コンパイル開始からの経過時間と、前記展開済みソースプログラムのうちのコンパイルが済んでいない行数と、を用いてコンパイルの終了までの残り時間を所定の時間間隔で算出するステップと、前記コンパイルの終了までの残り時間を表示装置に表示するステップとを、含むコンパイルの終了までの残り時間の表示方法が提供される。
【発明の効果】
【００１２】
本発明によれば、コンパイル中に所定の時間間隔で、コンパイル所要時間を再計算し、その残り時間をユーザに伝えることが可能となる。また、本発明では、実際のコンパイル時間に基づいて終了予測時間を再計算しているため、コンパイル実行中におけるコンピュータの負荷の変化や、コンパイルを行うコンピュータの仕様の違いによる影響を受けることもない。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態のコンパイル前処理部の構成を表したブロック図である。
【図２】本発明の第１の実施形態のコンパイル処理部の構成を表したブロック図である。
【図３】展開済みソースプログラムの構成を模式的に表した図である。
【図４】本発明の第１の実施形態のコンパイル処理部が用いる計算モデル中の変数の表である。
【発明を実施するための形態】
【００１４】
続いて、本発明の概要について簡単に説明する。本発明は、コンパイル実行部（図２の３４０）に加えて、行数取得部（図２の３１０）およびコンパイル時間計算部（図２の３２０）を含むコンパイル処理部（図２の３００）を備えるコンパイル装置により実現できる。
【００１５】
コンパイル時間計算部（図２の３２０）は、入力されたソースプログラムを展開した展開済みソースプログラムのコンパイル中に所定の時間間隔で、展開済みソースプログラムのうちのコンパイル済みの行数と、コンパイル開始からの経過時間（図２の処理時間計測タイマ３５０から入手）とから、一行あたりのコンパイル処理速度を求め、これに展開済みソースプログラムの手続き部の総行数を乗じて予測コンパイル時間を求める。さらに、コンパイル時間計算部（図２の３２０）は、この予測コンパイル時間と、前記コンパイル開始からの経過時間と、の差により、現時点からコンパイルの終了までの残り時間を算出して、表示装置に表示する処理を繰り返す。
【００１６】
以上により、コンピュータ毎に計算モデルを調整することなく、コンパイルの残り所要時間をリアルタイムに表示することが可能となる。
【００１７】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図１は、コンパイルの前処理を行うコンパイル前処理部の構成を表したブロック図である。
【００１８】
図１を参照すると、コード展開部２１０と行数集計部２２０とを備えたコンパイル前処理部２００が示されている。
【００１９】
コード展開部２１０は、入力データとしてソースプログラム１００を受け取り、ソースプログラム１００の展開処理を行う。展開処理とは、例えば、Ｃ言語において、ヘッダファイルをｉｎｃｌｕｄｅしている部分を実際のヘッダファイルの内容に置き換えたり、マクロやインライン関数を定義値に置換したりする処理のことである。
【００２０】
行数集計部２２０は、コード展開部２１０から展開後のソースプログラム１００のデータを受け取り、展開したソースプログラムの手続部の行数を順番にカウントする。行数集計部２２０は、コメント記号等を用いて、上記カウントした行数情報をソースプログラムに埋め込んだ行数情報付き展開済みソースプログラム（前処理済みソースプログラム）１１０を生成・出力する。
【００２１】
図３は、上記行数情報付き展開済みソースプログラム（前処理済みソースプログラム）１１０を模式的に表した図である。図３の例では、行数情報付き展開済みソースプログラム（前処理済みソースプログラム）１１０の先頭に、ソースプログラム１００および上記展開時に置き換えられたヘッダファイルを含む各ソースプログラムの手続き部の行数の合計が記録され、その後に、各ソースプログラムの手続き部の行数が、番号１〜ｎの順番で記録されている。
【００２２】
図２は、上記した行数情報付き展開済みソースプログラム（前処理済みソースプログラム）１１０を用いてコンパイル処理を行うコンパイル処理部の構成を表したブロック図である。
【００２３】
図２を参照すると、行数取得部３１０とコンパイル時間計算部３２０と、コンパイルの残り所要時間を計算するために用いる計算モデル３３０と、コンパイル実行部３４０と、コンパイル開始からの経過時間を計測する処理時間計測タイマ３５０とを備えたコンパイル処理部３００が示されている。
【００２４】
行数取得部３１０は、行数情報付き展開済みソースプログラム（前処理済みソースプログラム）１１０から、これからコンパイルしようとしている部分のソースの行数情報を取得する。
【００２５】
コンパイル時間計算部３２０は、行数情報付き展開済みソースプログラム（前処理済みソースプログラム）１１０から、すべてのソースプログラムの行数情報と、そのうちのコンパイル済みの行数情報、コンパイル開始からの経過時間と、を計算モデル３３０に与えてコンパイルの残り所要時間を計算する。さらに、コンパイル時間計算部３２０は、現在時刻にコンパイル残り所要時間を加えたものを終了予測時刻とし、利用者端末４００に表示する。またこのとき、コンパイル時間計算部３２０は、「あとＸＸ分でコンパイルが終了します。」というように、コンパイルの残り所要時間を表示するものとしてもよい。
【００２６】
上記計算モデル３３０としては、次式［数１］のものを用いることができる。図４は、計算モデル３３０の各変数をまとめたものである。
【００２７】
【数１】
2010191617.tif 000003
【００２８】
また、上記［数１］は、次式のように書き換えることができる。
【００２９】
【数２】
2010191617.tif 000004
【００３０】
コンパイル実行部３４０は、行数情報付き展開済みソースプログラム（前処理済みソースプログラム）１１０のコンパイル処理を行い、オブジェクトプログラム１２０に変換し、出力する。コンパイル時間計算部３２０で計算したコンパイル残り時間は、また、コンパイル実行部３４０は、１本のソースプログラムのコンパイルを行う度に、処理時間計測タイマ３５０で計測したコンパイル開始からの経過時間を計算モデル３３０へフィードバックし、次のコンパイル時のコンパイル残り所要時間の計算データとして使用させる。
【００３１】
なお、前記したコンパイル時間計算部３２０およびコンパイル実行部３４０は、コンパイル装置を構成するコンピュータに上記した処理を実行させるプログラムにより実現することができる。
【００３２】
続いて、本実施形態の動作について図面を参照して詳細に説明する。まず、図１に示すとおり、コンパイル前処理部２００は、ソースプログラム１００を入力データとして受け取る。
【００３３】
次にコード展開部２１０が、ソースプログラム１００の展開処理を行ない行数集計部２２０に入力する。
【００３４】
次に行数集計部２２０は、展開されたソースプログラムの手続き部の行数をカウントし、カウントした行数情報を埋め込んだ行数情報付き展開済みソースプログラム（前処理済みソースプログラム）１１０を生成・出力する。
【００３５】
次に、コンパイル処理部３００は、図２に示すとおり、行数情報付き展開済みソースプログラム（前処理済みソースプログラム）１１０を入力データとして受け取る。
【００３６】
次に、行数取得部３１０が、前記行数情報付き展開済みソースプログラム（前処理済みソースプログラム）１１０にコメント等として埋め込まれた行数情報を参照し、すべてのソースプログラムの行数情報と、これからコンパイルしようとしている部分のソースプログラムの行数情報を取得する。
【００３７】
コンパイル時間計算部３２０では、すべてのソースプログラムの行数情報、すでにコンパイル済みの行数情報およびコンパイル実行部３４０からフィードバックされたコンパイル開始からの経過時間を計算モデル３３０に与えてコンパイルの残り所要時間を計算する。更に、コンパイル時間計算部３２０では、現在時刻にコンパイル残り所要時間を加えた時刻を終了予測時間とし、利用者端末４００に表示する。
【００３８】
コンパイル実行部３４０は、前記行数情報付き展開済みソースプログラム（前処理済みソースプログラム）１１０のコンパイル処理を行い、オブジェクトプログラムに変換・出力する。コンパイル実行部３４０は、一のソースプログラムのコンパイルが完了する度に、処理時間計測タイマ３５０で実行時間を計測し、計算モデル３３０へフィードバックし、次のタイミングでのコンパイル残り時間の計算データとして使用させる。
【００３９】
以上のように本発明の第１の実施形態によれば、コンパイル開始時あるいはコンパイル中の任意の時点で、ユーザに、コンパイル残り所要時間を知らせることが可能となる。このコンパイル残り所要時間は、展開済みソースプログラムに含まれる個々のソースプログラムの行数とコンパイル所要時間を用いて算出した実際のコンパイルの処理速度により再計算されるため、システムの負荷状況を反映したものとなる。
【００４０】
さらに本発明の第１の実施形態によれば、実際のコンパイル所要時間に基づいて、一行当たりのコンパイル処理速度を随時見直し、終了予測時間を計算するため、仕様の違うコンピュータで実行する場合でも、コンピュータごとに計算モデルを調整する必要がないという効果が得られる。
【００４１】
以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態のコンパイル前処理部２００およびコンパイル処理部３００の構成は、適宜変更することが可能である。例えば、上記したコンパイル処理部３００のコンパイル時間計算部３２０と、コンパイル実行部３４０とを入れ替えても、上記した実施形態と同様の作用効果を得ることができる。
【００４２】
また、上記した実施形態では、行数情報をソースプログラムに埋め込むものとして説明したが、コンパイル時間計算部３２０が参照できるファイル等に行数情報を格納する構成も採用することが可能である。
【００４３】
また、上記した実施形態では、コンパイル前処理部２００とコンパイル処理部３００とを別々に説明したが、同一のコンピュータを、コンパイル前処理部２００及びコンパイル処理部３００として機能させ、コンパイル前処理とコンパイル処理を連続して実行させることも可能である。また、一のコンピュータを用いて、いくつかのソースプログラムのコンパイル前処理をまとめて実行しておき、他のコンピュータに、コンパイル処理を実行させることも可能である。
【符号の説明】
【００４４】
１００  ソースプログラム
１１０  行数情報付き展開済みソースプログラム（前処理済みソースプログラム）
１２０  オブジェクトプログラム
２００  コンパイル前処理部
２１０  コード展開部
２２０  行数集計部
３００  コンパイル処理部
３１０  行数取得部
３２０  コンパイル時間計算部
３３０  計算モデル
３４０  コンパイル実行部
３５０  処理時間計測タイマ
４００  利用者端末
【図１】
2010191617.tif 000006
【図２】
2010191617.tif 000007
【図３】
2010191617.tif 000008
【図４】
2010191617.tif 000009