JP2001273151A - プログラム実行装置、プログラム実行方法、記録媒体、及び制御プログラム - Google Patents
プログラム実行装置、プログラム実行方法、記録媒体、及び制御プログラムInfo
- Publication number
- JP2001273151A JP2001273151A JP2001010875A JP2001010875A JP2001273151A JP 2001273151 A JP2001273151 A JP 2001273151A JP 2001010875 A JP2001010875 A JP 2001010875A JP 2001010875 A JP2001010875 A JP 2001010875A JP 2001273151 A JP2001273151 A JP 2001273151A
- Authority
- JP
- Japan
- Prior art keywords
- machine language
- program
- source program
- stored
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
実行させるときの実行開始時の性能を向上させる。 【解決手段】 プログラム実行装置10に、原始プログ
ラム1に記述される関数の翻訳であって実行手段16で
実行可能な機械語を該関数ごとに記憶する、電源電圧が
消失しても記憶内容が保持される記憶手段11と、原始
プログラム1を実行手段16で実行可能な機械語に翻訳
する翻訳手段12と、翻訳手段12により翻訳された機
械語を記憶手段11に記憶させる記憶制御手段13と、
原始プログラム1で用いられている関数の翻訳である機
械語が記憶手段11に記憶されているか否かの判定を行
なう判定手段14と、判定手段14による判定結果に応
じて、翻訳手段12の翻訳する機械語、または記憶手段
11に記憶されている機械語、のどちらかを実行手段1
6に直接実行させる実行制御手段15とを備える。
Description
ミング言語で記述されているプログラムを演算処理シス
テムで実行させる技術に関し、特に、ジャスト・イン・
タイム・コンパイラ方式により、原始プログラムを特定
の演算処理システムのプラットホームで直接実行可能な
機械語に翻訳して該機械語を実行させる技術に関する。
ム上で同一のプログラムを動作させようとする多くの試
みが以前から行なわれている。プログラミング言語Ja
va(Javaは、サン・マイクロシステムズ・インコ
ーポレイテッドの登録商標)はその回答のひとつであ
る。Javaはプラットホーム独立を実現し、異種のプ
ラットホーム間での可搬性に優れている。
コードは、構文解析などの処理が施され、バイトコード
と呼ばれるバイナリファイルに変換されて配布されるの
が一般的である。Javaバイトコードは演算処理シス
テムのプラットホームに独立である汎用的な命令コード
であり、Java VM(バーチャル・マシン)と呼ば
れるJavaの実行系で解釈され実行されるコードであ
る。Java VMに相当する環境を各々の演算処理シ
ステムが備えることによって、異なる演算処理システム
上で同一のJavaバイトコードの実行が可能となる。
ステム上で実行させる技術について説明する。Java
インタプリタは、Javaバイトコードを命令毎に逐次
解釈(インタプリト)し、演算処理システムにその命令
に対応する処理を行なわせるものである。Javaイン
タプリタは、Javaバイトコードで記述されたプログ
ラムをそのまま解釈して処理できることが大きな利点で
はあるが、命令解釈のための時間を要するために処理速
度が遅いという短所がある。
ラムの実行速度を向上させる手法として、処理させる演
算処理システムで直接実行可能な機械語であるネイティ
ブコードにJavaバイトコードを予め翻訳(コンパイ
ル)しておく手法があり、このためのツールをネイティ
ブ・コンパイラという。Javaバイトコードのネイテ
ィブコード化によりプログラムの実行速度は格段に向上
するが、Javaの大きな利点である異種のプラットホ
ーム間での可搬性が損なわれるという問題があり、更
に、プログラムの変更によりJavaバイトコードが更
新される度に、演算処理システムのオペレータがネイテ
ィブコードへの翻訳作業をシステムに行なわせるように
指示しなければならない煩わしさもある。
トホーム間での可搬性を維持しつつ、Javaインタプ
リタの抱える処理速度の問題を改善するためにジャスト
・イン・タイム・コンパイラ(以下、「JITコンパイ
ラ」という)が提案されている。
ドを実行する際に、そのバイトコードで用いられている
関数 (Javaにおけるメソッド)を単位としてネイ
ティブコードに翻訳しながら演算処理システムに逐次実
行させる。ここで、翻訳されたネイティブコードをメイ
ンメモリに保持しておくようにする。Javaバイトコ
ードの翻訳を進めていくうちに、既にネイティブコード
に翻訳されている関数が出現したときは、その関数につ
いての再度の翻訳は行なわずに、メインメモリに保持さ
れているネイティブコードをそのまま演算処理システム
に直接実行させるようにして翻訳処理に要する処理時間
を削減する。一般的にプログラム全体の実行速度を低下
させる大きな影響を与えている関数は繰り返し呼び出さ
れていることが多々あるので、この手法を用いることに
よりJavaバイトコードの実行速度を向上させること
ができる。
による解釈処理では困難なJavaバイトコードで記述
されている命令の最適化も行なうので、この最適化によ
っても処理速度が高速化される。しかも、ネイティブ・
コンパイラでは必要となる、演算処理システムに対する
オペレータによる煩雑な操作はJITコンパイラでは不
要である。
トコードの実行に使用するものが特に広く普及している
が、他のプログラミング言語で記述されたプログラム
や、プログラムに対して構文解析や最適化の処理が施さ
れて得られる中間言語で記述されているプログラム(本
明細書では、これらのプログラムを総称して「原始プロ
グラム」と称することとする)を、特定のプラットホー
ムが直接解釈できるネイティブコードに翻訳しながらそ
のプラットホーム上で実行させるように構成することも
可能である。
Tコンパイラは、Javaの有する大きな利点である異
種のプラットホーム間での可搬性を維持しつつ実行速度
の問題を改善することが可能であり、更にオペレータに
よる操作作業の負担がネイティブ・コンパイラよりも少
ない利点を有している。しかしながら、原始プログラム
の実行開始時にネイティブコードへの翻訳処理が必ず行
なわれるため、JITコンパイラを用いて行なう原始プ
ログラムの実行では、その原始プログラムに記述されて
いる処理が実際に開始されるまでにある程度のタイムラ
グが生じてしまう問題を有していた。
いて原始プログラムを実行させるときの実行開始時の性
能を向上させることが本発明が解決しようとする課題で
ある。
図である。本発明に係る装置であるプログラム実行装置
10は、機械語を実行する実行手段16を有し、ジャス
ト・イン・タイム・コンパイラ方式により、原始プログ
ラム1を実行手段16で直接実行可能な機械語に翻訳し
て実行する装置を前提とする。
ム実行装置10に、原始プログラム1に記述される関数
の翻訳であって実行手段16で実行可能な機械語を該関
数ごとに記憶する、電源電圧が消失しても記憶内容が保
持される記憶手段11と、原始プログラム1を実行手段
16で実行可能な機械語に翻訳する翻訳手段12と、翻
訳手段12により翻訳された機械語を記憶手段11に記
憶させる記憶制御手段13と、原始プログラム1で用い
られている関数の翻訳である機械語が記憶手段11に記
憶されているか否かの判定を行なう判定手段14と、判
定手段14による判定結果に応じて、翻訳手段12の翻
訳する機械語、または記憶手段11に記憶されている機
械語、のどちらかを実行手段16に直接実行させる実行
制御手段15とを有するように構成することによって前
述した課題を解決する。
は、例えばハードディスク装置やフラッシュEEPRO
M(一括消去型電気的消去及び書き込み可能読み出し専
用半導体メモリ)などを用いることができる。
グラム1に記述される関数の翻訳である機械語を記憶す
る。原始プログラム1で用いられている関数の翻訳であ
る機械語が記憶手段11に記憶されていると判定手段1
4が判定すれば、実行制御手段15は翻訳手段12によ
るその関数の翻訳を待たずに、記憶手段11に記憶され
ているその関数の機械語を直接実行させるように実行手
段16を制御するので、プログラム実行装置10は前述
したJITコンパイラに相当する動作が行なわれる。従
って、上記の構成によれば、JITコンパイラの有する
前述した利点をそのまま有している。
は、電源電圧が消失してもその記憶内容が保持される。
従って、例えばオペレータが一日の仕事を終えてプログ
ラム実行装置10の電源を切り、その翌日に仕事を再開
するような場合、前日までに同一の原始プログラム1を
一度でも実行していれば、記憶手段11に記憶されてい
る、原始プログラム1に記述されている関数の翻訳であ
る機械語をその日の最初の実行から利用することができ
るので、プログラム実行装置10はプログラムの翻訳処
理に起因する実行開始時のタイムラグを生じさせずに原
始プログラム1を実行させることができる。
1には、原始プログラム1で用いられることのあり得る
関数の翻訳である機械語が予め記憶されているように構
成しても良い。この構成では、プログラム実行装置10
上での原始プログラム1の初めての実行の際に原始プロ
グラム1に記述されている関数の翻訳である機械語が既
に記憶されている場合があり、このような場合には原始
プログラム1に記述されている関数の翻訳である機械語
を記憶手段11から得ることができるので、プログラム
の翻訳処理に起因する実行開始時のタイムラグを短縮す
ることができる。
1の記憶内容を複写して記憶する半導体メモリを更に有
し、実行制御手段15は、記憶手段11に記憶されてい
る機械語を実行手段16に実行させる代わりに、その半
導体メモリに記憶されている、記憶手段11に記憶され
ている記憶内容の複写である機械語を実行手段16に実
行させるように構成しても良い。例えば記憶手段11と
してハードディスク装置を用いている場合などでは、ハ
ードディスク装置から機械語を読み出すよりも、そのハ
ードディスク装置と同一の記憶内容が複写されている半
導体メモリから機械語を読み出す方が、機械語の検索・
読み出しが高速に行なえるので、プログラム装置10に
よる原始プログラム1の翻訳・実行の処理時間を更に短
縮することができる。
ログラム実行装置10に、原始プログラム1に記述され
る関数の翻訳であって実行手段16で実行可能な機械語
を該関数ごとに記憶し、原始プログラム1の実行終了後
も記憶内容を保持する記憶手段11と、原始プログラム
1を実行手段16で実行可能な機械語に翻訳する翻訳手
段12と、翻訳手段12により翻訳された機械語を、翻
訳手段12により翻訳される原始プログラム1が更新さ
れた日時に対応付けて、記憶手段11に記憶させる記憶
制御手段13と、原始プログラム1の更新された日時
と、記憶手段11に記憶されている前記機械語に対応付
けられている更新日時とが一致するか否かを判定する判
定手段14と、判定手段14による判定結果に応じて、
翻訳手段12の翻訳する機械語、または記憶手段11に
記憶されている機械語、のどちらかを実行手段16に直
接実行させる実行制御手段15とを有するように構成す
ることによって前述した課題を解決する。
れているプログラムファイルを読み込む読込手段を更に
有し、記憶制御手段13は、原始プログラム1が格納さ
れているプログラムファイルに示されている該プログラ
ムファイルの更新日時を前記機械語に対応付ける原始プ
ログラム1の更新された日時とみなして、記憶手段11
に該機械語を記憶させ、判定手段14は、そのプログラ
ムファイルに示されている該プログラムファイルの更新
日時と、前記機械語に対応させて記憶手段11に記憶さ
れている更新日時とが一致するか否かを判定するように
構成してもよい。
態様の装置と同様に、JITコンパイラの有する利点を
そのまま有している。更に、上記の構成では、原始プロ
グラム1の実行終了後も記憶内容を保持しているので、
同一の原始プログラム1を再度実行させる場合には、実
行制御手段15は翻訳手段12による原始プログラム1
の翻訳を待たずに、記憶手段11に記憶されているその
関数の機械語を実行手段16に直接実行させることによ
り、プログラムの翻訳処理に起因する実行開始時のタイ
ムラグを生じさせずに原始プログラム1を実行させるこ
とができる。ただし、この場合、後に実行される原始プ
ログラム1と先に実行されたものとが、原始プログラム
のバージョンアップによる修正等により、同一でないこ
とがあり得る。そこで、記憶制御手段13が、翻訳手段
12により翻訳された機械語と、翻訳手段12により翻
訳される原始プログラム1が更新された日時とを対応付
けて記憶手段11に記憶させ、判定手段14が、原始プ
ログラム1の更新された日時と、機械語に対応付けて記
憶手段11に記憶されている更新日時とが一致するか否
かを判定する。そしてこの判定の結果、両者が一致しな
いのであれば、原始プログラム1で用いられている関数
の翻訳である機械語が記憶手段11に記憶されていて
も、実行制御手段15は翻訳手段12により新たに翻訳
された機械語を実行手段16に実行させる。こうするこ
とによって、原始プログラム1に変更が加えられても、
その変更に応じて正しく原始プログラム1を実行させる
ことができる。
1として、ハードディスク装置やフラッシュEEPRO
Mなどの、電源電圧が消失しても記憶内容が保持される
ものに限らず、他の読み書き可能な記憶媒体を使用する
こともできる。
態様の装置において、原始プログラム1は、Javaの
バイト・コードで記述されていてもよい。この場合、原
始プログラム1に記述される関数とはJavaにおける
メソッドに相当する。
は、ジャスト・イン・タイム・コンパイラ方式により、
原始プログラムを特定の演算処理システムのプラットホ
ームで直接実行可能な機械語に翻訳して該機械語を実行
させる方法を前提とする。
実行方法では、前記原始プログラムの翻訳である前記機
械語を、該原始プログラムに記述されている関数ごと
に、電源電圧が消失しても記憶内容が保持される記憶部
に記憶させ、前記原始プログラムに記述されている関数
の翻訳である前記機械語が前記記憶部に記憶されている
か否かの判定を行ない、前記判定結果に応じて、前記原
始プログラムを翻訳して得る機械語、または前記記憶部
に記憶されている機械語、のどちらかを特定の演算処理
システムのプラットホームで直接実行させることによっ
て前述した課題を解決する。そして、このプログラム実
行方法によっても前述した本発明の第一の態様の装置と
同様な作用・効果を奏する。
行方法では、前記原始プログラムの翻訳である前記機械
語を、該原始プログラムに記述されている関数ごとに、
該機械語の翻訳前の原始プログラムが更新された日時に
対応付けて記憶し、前記原始プログラムの更新された日
時と、記憶されている前記機械語に対応付けられている
更新日時とが一致するか否かの判定を行ない、前記判定
結果に応じて、前記原始プログラムを翻訳して得る機械
語、または記憶されている機械語、のどちらかを特定の
演算処理システムのプラットホームで直接実行させるこ
とによって前述した課題を解決する。そして、このプロ
グラム実行方法によっても前述した本発明の第二の態様
の装置と同様な作用・効果を奏する。
われる機能と同様の制御をコンピュータに行なわせる制
御プログラムをコンピュータに実行させることによっ
て、あるいは、その制御プログラムを記録したコンピュ
ータ読み取り可能な記録媒体から、その制御プログラム
をコンピュータに読み取らせて実行させることによって
も、前述した課題を解決することができ、この構成によ
っても前述したプログラム実行装置と同様な作用・効果
を奏する。
に基づいて説明する。なお、ここでは、Javaのバイ
トコードを翻訳して実行するプログラム実行装置におい
て本発明を実施する例について説明する。
置の全体構成を示す図である。同図に示すように、この
プログラム実行装置(以下、「本装置」という)20
は、入力部21、CPU22、出力部23、I/F部2
4、半導体メモリ25、ハードディスク装置26を有
し、バス27を介して相互に接続されている。
等のポインティングデバイスなどを有し、本装置のオペ
レータからの各種指示の入力を取得する。また、フロッ
ピー(登録商標)ディスクや光磁気ディスク、磁気テー
プなどの記録媒体からデータを読み出すためのデータ読
み出し装置を有するようにしてもよい。
た制御プログラムに従って本装置20全体の動作を制御
する中央演算処理装置であり、機械語を直接実行する。
出力部23は、ディスプレイ装置やプリンタなどを有
し、本装置20で行なった処理の結果等をオペレータに
提示するものである。
ネットワークに接続するためのインターフェースのため
の処理を司るものである。半導体メモリ25は、本装置
20全体の制御処理をCPU22に行なわせるための制
御プログラムを予め記憶しておいたり、ハードディスク
装置26の記憶内容を複写して記憶したり、あるいはC
PU22により実行される処理のためのワークエリアと
して用いられるものであり、ROM(リード・オンリ・
メモリ)25−1及びRAM(ランダム・アクセス・メ
モリ)25−2を有している。
供給される電源電圧が消失しても記憶内容が保持される
データ記憶装置である。次に図3について説明する。図
3は、本装置20における翻訳・実行処理の全体の流れ
を図で示したものである。
置20に翻訳・実行を行なわせるソフトウェアモジュー
ルであり、本実施の形態ではJavaのバイトコードに
よって記述されている。プログラムソースモジュール4
1は、前述した記録媒体に格納されているプログラムフ
ァイルとして提供されたものを入力部21のデータ読み
取り装置で読み取ることにより、あるいは、他の装置や
ネットワークからプログラムファイルとして送付された
ものをI/F部24が受け取ることにより、本装置20
に取り込まれる。
モジュール41は、JITコンパイラ30により翻訳・
実行される。JITコンパイラ30は、CPU22が本
装置20全体の制御プログラムを実行することにより実
現される。
処理の内容を機能別に分けると、プログラムロード部3
1、高速化判定部32、コンパイル(翻訳)部33、フ
ァイルロード部34、プログラム実行部35の各機能ブ
ロックに大別される。
取り込まれたプログラムファイルからプログラムソース
モジュール41を取り出して、RAM25−2における
CPU22がワークメモリとして使用している領域(ワ
ークエリア)に格納する。
ジュール41の構文分析を行ない、そこに記述されてい
るメソッドの定義の翻訳に相当するネイティブコード
(コンパイル済み格納モジュール43)が、ハードディ
スク装置26に記憶されているか否かを、後述する管理
簿42を参照することにより判定する。本実施の形態で
は、管理簿42はハードディスク装置26に記憶されて
いる。
定義の翻訳に相当するコンパイル済み格納モジュール4
3がハードディスク装置26に記憶されていないと高速
化判定部32が判定したときに、そのメソッドの定義の
翻訳を行ない、その結果得られたCPU22で直接実行
可能なネイティブコードを、RAM25−2における前
述したワークエリアにコンパイル済み実行モジュール4
4として格納すると共に、コンパイル済み格納モジュー
ル43としてハードディスク装置26に記憶させる。更
に、管理簿42におけるその記憶させたコンパイル済み
格納モジュール43についての管理情報を更新する。
ドの定義の翻訳に相当するコンパイル済み格納モジュー
ル43がハードディスク装置26に記憶されていると高
速化判定部32が判定したときに、そのコンパイル済み
格納モジュール43をハードディスク装置26からロー
ドし(読み出し)、RAM25−2のワークエリアにコ
ンパイル済み実行モジュール44として格納する。
3もしくはファイルロード部34によってRAM25−
2のワークエリアに格納されたコンパイル済み実行モジ
ュール44をCPU22で直接実行する。
判定部32、コンパイル(翻訳)部33、ファイルロー
ド部34、プログラム実行部35の各機能ブロックで示
される処理を繰り返し実行することによって、プログラ
ムソースモジュール41を実行させる。
管理簿42の一例を表として示す図である。管理簿42
は、ハードディスク装置26に記憶されているコンパイ
ル済み格納モジュール43についての管理情報が記録さ
れるものである。
ードディスク装置26に記憶させたコンパイル済み格納
モジュール43に対応する、そのコンパイル済み格納モ
ジュール43が翻訳である翻訳前のメソッド定義のメソ
ッド名が記録される。そして、同図に示す表の右側の欄
には、左側の欄のメソッド名に対応するメソッド定義が
記述されていたプログラムソースモジュール41の更新
日時が記録される。この更新日時には、本実施の形態で
は、プログラムソースモジュール41が格納されていた
プログラムファイルの管理情報として示されている更新
日時を用いる。高速化判定部32では、プログラムロー
ド部31がRAM25−2のワークエリアに格納したプ
ログラムソースモジュール41を分析する。そして、そ
こに記述されているメソッド定義のメソッド名が管理簿
42に記録されており、且つそのプログラムソースモジ
ュール41の更新日時が管理簿42のそのメソッド名に
対応する更新日時と一致するか否かを判定する。この判
定結果が真であれば、そのメソッドの定義の翻訳に相当
するコンパイル済み格納モジュール43がハードディス
ク装置26に記憶されていると判定する。
M25−1に格納されている、本装置20全体の制御プ
ログラムをCPU22が実行することにより行なわれる
制御処理のうち、本発明に関係する、プログラムソース
モジュール41の翻訳・実行を行なう処理であるJIT
コンパイル処理の第一の例の処理内容をフローチャート
で示した図である。以下、同図に沿ってCPU22が行
なうJITコンパイル処理について説明する。
れたプログラムファイルからプログラムソースモジュー
ル41を取り出し、RAM25−2のワークエリアに格
納する(S101)。この処理は図3におけるプログラ
ムロード部31の機能に相当する。
ワークエリアに格納されているプログラムソースモジュ
ール41の構文分析を行ない、そこに記述されているメ
ソッドの定義をひとつ抽出する(S102)。ここで、
CPU22は管理簿42を参照し(S103)、抽出さ
れたメソッド定義のメソッド名が管理簿42の記録内容
に含まれているか否かを判定する(S104)。この判
定処理の結果がYesならばS105に進み、Noなら
ばS107に進む。
理簿42の記録内容に含まれているのであれば、CPU
22は、プログラムソースモジュール41が格納されて
いたプログラムファイルの管理情報を調べ、プログラム
ソースモジュール41の更新日時を取得する(S10
5)。そして、このプログラムソースモジュール41の
更新日時と、抽出されたメソッド定義のメソッド名の記
録に対応付けられて管理簿42に記録されている更新日
時とが一致するか否かを判定する(S106)。この判
定処理の結果がYesならばS111に進み、Noなら
ばS107に進む。
れている処理は図3における高速化判定部32の機能に
相当する。前述したS104またはS106のどちらか
の判定処理でその結果がNoであったときには、CPU
22は、S102に示した処理で抽出されたメソッド定
義のコンパイルを実行し(S107)、その結果得られ
た、CPU22で直接実行可能なネイティブコードをR
AM25−2のワークエリアにコンパイル済み実行モジ
ュール44として格納し(S108)、更にそのネイテ
ィブコードをハードディスク装置26にコンパイル済み
格納モジュール43として記憶させる(S109)。こ
のネイティブコードの記憶は、プログラムソースモジュ
ール41の翻訳・実行が終了し、CPU22がこの図5
に示したJITコンパイル処理の実行を一旦終了しても
ハードディスク装置26に保持されている。
し、前述したS102でコンパイルしたメソッド定義の
メソッド名と、そのメソッド定義が記述されていたプロ
グラムソースモジュール41を格納していたプログラム
ファイルの管理情報に示されている更新日時とを対応付
けて記録し(S110)、その後はS112に進む。
されている処理は図3におけるコンパイル部33の機能
に相当する。一方、前述したS106の判定処理でその
結果がYesであったときには、CPU22は、S10
2に示した処理で抽出されたメソッド定義の翻訳である
ネイティブコードをハードディスク装置26から読み出
し、読み出したそのネイティブコードをRAM25−2
のワークエリアにコンパイル済み実行モジュール44と
して格納する(S111)。この処理は図3におけるフ
ァイルロード部34の機能に相当する。
ークエリアにコンパイル済み実行モジュール44として
格納されているネイティブコードを直接実行する(S1
12)。この処理は図3におけるプログラム実行部35
の機能に相当する。
した後には、CPU22は、RAM25−2のワークエ
リアに格納されているプログラムソースモジュール41
の実行処理を終了したか否かを判定する(S113)。
この判定処理の結果がYesならば今回のJITコンパ
イル処理を終了する。一方、この判定処理の結果がNo
ならばS102へ戻り、プログラムソースモジュール4
1に次の実行順として記述されているメソッド定義につ
いて上述した処理を繰り返す。
Tコンパイル処理である。次に、本発明を実施するプロ
グラム実行装置の第二の例について説明する。この第二
の例では、図2におけるハードディスク装置26に、プ
ログラムソースモジュール41で記述されることがあり
得るメソッド定義の翻訳であるネイティブコードを予め
格納しておくようにするものである。こうすることによ
り、そのプログラムソースモジュール41のプログラム
実行装置10上での初めての実行の際でも、プログラム
ソースモジュール41に記述されているメソッド定義の
翻訳であるネイティブコードをハードディスク装置26
から得ることのできる場合があるので、メソッドの翻訳
処理に起因する実行開始時のタイムラグを短縮すること
ができる。
二の例の全体構成は図2に示したものと同様であるが、
図2に示す構成要素のうち、ハードディスク装置26の
記憶内容が前述した第一の例と異なっている。図6は、
本発明を実施するプログラム実行装置の第二の例におけ
るハードディスク装置の記憶内容を示す図であり、ハー
ドディスク装置26には、第一の例と同様のコンパイル
済み格納モジュール43が記憶されるのに加え、プログ
ラムソースモジュール41で記述されることがあり得る
メソッド定義の翻訳であるコンパイル済み標準モジュー
ル51が予め記憶されている。このような、その翻訳で
あるネイティブコードがコンパイル済み標準モジュール
51としてハードディスク装置26に記憶されるメソッ
ド定義としては、例えば、Javaの標準のクラスライ
ブラリであるjavaパッケージに含まれるクラスに属
するメソッド定義などの、任意のJava実行系で使用
できることが保証されているメソッド定義が適用可能で
ある。
を実施するプログラム実行装置の第二の例における管理
簿42の例を表で示したものであり、ハードディスク装
置26の記憶内容が図6に示した内容である場合に対応
するものである。図7を、前述した本発明の第一の実施
例における管理簿42の記録内容を示した図4と比較す
ると分かるように、図7においては、コンパイル済み格
納モジュール43についての管理情報が管理簿42に記
録される他に、コンパイル済み標準モジュール51につ
いての管理情報が管理簿に予め記録されている。コンパ
イル済み標準モジュール51についての管理情報として
は、そのコンパイル済み標準モジュール51が翻訳であ
る翻訳前のメソッド定義のメソッド名が管理簿42に記
録されている。
置の第二の例におけるCPU22により実行されるJI
Tコンパイル処理の処理内容について、図8に示すフロ
ーチャートを参照しながら説明する。
にかけて示されている処理は、図5にフローチャートで
示したJITコンパイル処理の第一の例におけるS10
1からS104にかけて示した処理と全く同一のもので
あり、その説明は省略する。
2で抽出されたメソッド定義のメソッド名が管理簿42
のコンパイル済み標準モジュール51についての管理情
報として記録されているか否かを判定する。この判定処
理の結果がYesならばS212に進み、NoならばS
206に進む。
らS214にかけて示されている処理も、図5にフロー
チャートで示したJITコンパイル処理の第一の例にお
けるS105からS113にかけて示した処理と全く同
一のものである。
置の第三の例について説明する。この第三の例では、プ
ログラム実行装置に電源を投入して起動させたときに、
ハードディスク装置26の記憶内容をRAM25−2に
複写して格納する。そして、CPU22によって行なわ
れるJITコンパイル処理では、ハードディスク装置2
6の記憶内容に基づいて翻訳・実行の処理を進めるので
はなく、ハードディスク装置26の記憶内容の複写であ
るRAM25−2の格納データに従ってその処理を進め
る。一般的に、記憶内容の読み出しは半導体メモリから
の方がハードディスク装置よりも高速に行なえるので、
こうすることにより、プログラム装置10によるプログ
ラムソースモジュール41の翻訳・実行の処理時間を更
に短縮することができる。
三の例の全体構成は図2に第一の例として示したものと
同様であるが、図9に示すように、RAM25−2の記
憶領域に、CPU22による処理の実行のために一時的
に使用されるワークエリア61の領域の他に、ハードデ
ィスク装置26の記憶内容が複写されて格納されるキャ
ッシュエリア62の領域を設けるようにする。そして、
このキャッシュエリア62の領域は、CPU22が後述
するJITコンパイル処理の実行を終了してもその記憶
内容をクリアせずに保持するようにし、次にJITコン
パイル処理を改めて実行しても、その処理においてその
記憶内容が利用できるようにする。
たものと同様のものでよい。但し、前述した第一の例で
は管理簿42はハードディスク装置26に記憶されてい
たが、この第三の例では、ハードディスク装置26の管
理簿42についての記録内容もRAM25−2に複写さ
れ、CPU22はRAM25−2上の管理簿42を参照
して処理を行なうものとする。
三の例における、装置全体の制御処理の処理内容を図1
0にフローチャートで示す。この処理は、本装置20に
電源を投入するとその直後にCPU22により直ちに実
行される処理である。
U22は初期化処理を実行する(S301)。初期化処
理はCPU22自身の有する各種のレジスタを初期化し
たり、RAM25−2の初期化などを行なう処理であ
る。
26の記憶内容をRAM25−2のキャッシュエリア6
2に複写する(S302)。その後、CPU22は、本
装置20の入力部21、出力部23、I/F部24の制
御等を含む各種の制御処理を実行し(S303)、その
後にJITコンパイル処理を実行する(S304)。こ
の処理を終えた後にはS303へ戻り、以降の処理が繰
り返される。
図10にS304として示されているJITコンパイル
処理の処理内容を示すフローチャートである。まず、図
11におけるS311からS319にかけて示されてい
る処理は、図5にフローチャートで示したJITコンパ
イル処理の第一の例におけるS101からS109にか
けて示した処理と同様のものである。但し、S313に
おいて、CPU22は、RAM25−2のキャッシュエ
リア62に格納されている、ハードディスク装置26の
複写である管理簿42を参照する。
ルにより得られたネイティブコードをRAM25−2の
キャッシュエリア62にも格納し、このネイティブコー
ドをS319において記憶させたハードディスク装置2
6の記憶内容とキャッシュエリア62の記憶内容とを一
致させる。
置26及びキャッシュエリア62双方の管理簿42を同
様に更新し、S312でコンパイルしたメソッド定義の
メソッド名と、そのメソッド定義が記述されていたプロ
グラムソースモジュール41を格納していたプログラム
ファイルの管理情報に示されている更新日時とを対応付
けて記録し(S321)、その後はS323に進む。
esであったときには、CPU22は、S312に示し
た処理で抽出されたメソッド定義の翻訳であるネイティ
ブコードをRAM25−2のキャッシュエリア62から
読み出し、読み出したそのネイティブコードをRAM2
5−2のワークエリアにコンパイル済み実行モジュール
44として格納する(S322)。
及びS324に示されている処理は、図5にフローチャ
ートで示したJITコンパイル処理の第一の例における
S112及びS113に示した処理と全く同一のもので
あり、説明は省略する。
ディスク装置26に、プログラムソースモジュール41
で記述されることがあり得るメソッド定義の翻訳である
ネイティブコードを予め格納しておくようにしたプログ
ラム実行装置で、この第三の例のように、ハードディス
ク装置26の記憶内容をRAM25−2に複写してJI
Tコンパイル処理を実行することも可能である。
て説明したJITコンパイル処理を汎用的なコンピュー
タで実施させることも可能である。そのためには、本発
明の各実施形態において説明した、図5、図8、あるい
は図11のJITコンパイル処理に相当する処理をコン
ピュータに行なわせる制御プログラムをそのコンピュー
タで読み取り可能な記録媒体(記憶媒体)に予め記憶さ
せておき、その記録媒体から読み出したその制御プログ
ラムを読み出させてそのコンピュータのメインメモリに
一旦格納させた後に、そのコンピュータの有する中央処
理装置に格納されたこのプログラムを読み出させて実行
させるように構成すればよい。
れをコンピュータで読み取ることの可能な記録媒体の例
を図12に示す。このような記録媒体としては、例え
ば、コンピュータ71の本体に内蔵若しくは外付けされ
る半導体メモリやハードディスク装置などのメモリ7
2、CD−ROM、DVD−ROM、MO(光磁気ディ
スク)、フロッピーディスクなどといった可搬型記憶媒
体73、あるいはコンピュータ71と回線74で接続さ
れていてコンピュータ71がプログラムをダウンロード
することの可能なプログラムサーバ75の記憶装置76
などがあるが、これらのいずれであってもよい。
ジャスト・イン・タイム・コンパイラ方式により、原始
プログラムを特定の演算処理システムのプラットホーム
で直接実行可能な機械語に翻訳して該機械語を実行させ
るときに、前記原始プログラムの翻訳である前記機械語
を、該原始プログラムに記述されている関数ごとに、電
源電圧が消失しても記憶内容が保持される記憶部に記憶
させ、前記原始プログラムに記述されている関数の翻訳
である前記機械語が前記記憶部に記憶されているか否か
の判定を行ない、前記判定結果に応じて、前記原始プロ
グラムを翻訳して得る機械語、または前記記憶部に記憶
されている機械語、のどちらかを特定の演算処理システ
ムのプラットホームで直接実行させるように構成する。
そして、この構成により、電源を切った後に同一の原始
プログラムを再度実行させるような場合には、プログラ
ムの翻訳処理に起因する実行開始時のタイムラグを生じ
させずに原始プログラムを実行させることができる。
イム・コンパイラ方式により、原始プログラムを特定の
演算処理システムのプラットホームで直接実行可能な機
械語に翻訳して該機械語を実行させるときに、前記原始
プログラムの翻訳である前記機械語を、該原始プログラ
ムに記述されている関数ごとに、該機械語の翻訳前の原
始プログラムが更新された日時に対応付けて記憶し、前
記原始プログラムの更新された日時と、記憶されている
前記機械語に対応付けられている更新日時とが一致する
か否かの判定を行ない、前記判定結果に応じて、前記原
始プログラムを翻訳して得る機械語、または記憶されて
いる機械語、のどちらかを特定の演算処理システムのプ
ラットホームで直接実行させるように構成する。そし
て、この構成により、原始プログラムに変更が加えられ
ても、プログラムの翻訳処理に起因する実行開始時のタ
イムラグを生じさせずに、且つ、その変更に応じて正し
く原始プログラムを実行させることができる。
っても、JITコンパイラを用いて原始プログラムを実
行させるときの実行開始時の性能を向上させることがで
きるという効果を奏する。
成を示す図である。
翻訳・実行処理の全体の流れを示した図である。
フローチャートで示した図である。
例におけるハードディスク装置の記憶内容を示す図であ
る。
の例を表で示した図である。
フローチャートで示した図である。
例におけるRAMの記憶内容を示す図である。
の例における装置全体の制御処理の処理内容を示すフロ
ーチャートである。
内容を示すフローチャートである。
読み取ることの可能な記録媒体の例を示す図である。
Claims (12)
- 【請求項1】 機械語を実行する実行手段を有し、ジャ
スト・イン・タイム・コンパイラ方式により、原始プロ
グラムを該実行手段で直接実行可能な機械語に翻訳して
実行するプログラム実行装置であって、 前記原始プログラムに記述される関数の翻訳であって前
記実行手段で実行可能な機械語を該関数ごとに記憶す
る、電源電圧が消失しても記憶内容が保持される記憶手
段と、 前記原始プログラムを前記実行手段で実行可能な機械語
に翻訳する翻訳手段と、 前記翻訳手段により翻訳された機械語を前記記憶手段に
記憶させる記憶制御手段と、 前記原始プログラムで用いられている関数の翻訳である
機械語が前記記憶手段に記憶されているか否かの判定を
行なう判定手段と、 前記判定手段による判定結果に応じて、前記翻訳手段の
翻訳する機械語、または前記記憶手段に記憶されている
機械語、のどちらかを前記実行手段に直接実行させる実
行制御手段と、 を有することを特徴とするプログラム実行装置。 - 【請求項2】 前記記憶手段には、前記原始プログラム
で用いられることのあり得る関数の翻訳である機械語が
予め記憶されていることを特徴とする請求項1に記載の
プログラム実行装置。 - 【請求項3】 前記記憶手段の記憶内容を複写して記憶
する半導体メモリを更に有し、 前記実行制御手段は、前記記憶手段に記憶されている機
械語を前記実行手段に実行させる代わりに、前記半導体
メモリに記憶されている、該記憶手段に記憶されている
記憶内容の複写である機械語を該実行手段に実行させ
る、ことを特徴とする請求項1に記載のプログラム実行
装置。 - 【請求項4】 機械語を実行する実行手段を有し、ジャ
スト・イン・タイム・コンパイラ方式により、原始プロ
グラムを該実行手段で直接実行可能な機械語に翻訳して
実行するプログラム実行装置であって、 前記原始プログラムに記述される関数の翻訳であって前
記実行手段で実行可能な機械語を該関数ごとに記憶し、
該原始プログラムの実行終了後も記憶内容を保持する記
憶手段と、 前記原始プログラムを前記実行手段で実行可能な機械語
に翻訳する翻訳手段と、 前記翻訳手段により翻訳された機械語を、前記翻訳手段
により翻訳される原始プログラムが更新された日時に対
応付けて、前記記憶手段に記憶させる記憶制御手段と、 前記原始プログラムの更新された日時と、前記記憶手段
に記憶されている前記機械語に対応付けられている更新
日時とが一致するか否かを判定する判定手段と、 前記判定手段による判定結果に応じて、前記翻訳手段の
翻訳する機械語、または前記記憶手段に記憶されている
機械語、のどちらかを前記実行手段に直接実行させる実
行制御手段と、 を有することを特徴とするプログラム実行装置。 - 【請求項5】 前記原始プログラムが格納されているプ
ログラムファイルを読み込む読込手段を更に有し、 前記記憶制御手段は、前記プログラムファイルに示され
ている該プログラムファイルの更新日時を前記機械語に
対応付ける該原始プログラムの更新された日時とみなし
て、前記記憶手段に該機械語を記憶させ、 前記判定手段は、前記プログラムファイルに示されてい
る該プログラムファイルの更新日時と、前記機械語に対
応させて前記記憶手段に記憶されている更新日時とが一
致するか否かを判定する、 ことを特徴とする請求項4に記載のプログラム実行装
置。 - 【請求項6】 前記原始プログラムは、Javaのバイ
ト・コードで記述されていることを特徴とする請求項1
又は4に記載のプログラム実行装置。 - 【請求項7】 ジャスト・イン・タイム・コンパイラ方
式により、原始プログラムを特定の演算処理システムの
プラットホームで直接実行可能な機械語に翻訳して該機
械語を実行させるプログラム実行方法であって、 前記原始プログラムの翻訳である前記機械語を、該原始
プログラムに記述されている関数ごとに、電源電圧が消
失しても記憶内容が保持される記憶部に記憶させ、 前記原始プログラムに記述されている関数の翻訳である
前記機械語が前記記憶部に記憶されているか否かの判定
を行ない、 前記判定結果に応じて、前記原始プログラムを翻訳して
得る機械語、または前記記憶部に記憶されている機械
語、のどちらかを特定の演算処理システムのプラットホ
ームで直接実行させる、 ことを特徴とするプログラム実行方法。 - 【請求項8】 ジャスト・イン・タイム・コンパイラ方
式により、原始プログラムを特定の演算処理システムの
プラットホームで直接実行可能な機械語に翻訳して該機
械語を実行させるプログラム実行方法であって、 前記原始プログラムの翻訳である前記機械語を、該原始
プログラムに記述されている関数ごとに、該機械語の翻
訳前の原始プログラムが更新された日時に対応付けて記
憶し、 前記原始プログラムの更新された日時と、記憶されてい
る前記機械語に対応付けられている更新日時とが一致す
るか否かの判定を行ない、 前記判定結果に応じて、前記原始プログラムを翻訳して
得る機械語、または記憶されている機械語、のどちらか
を特定の演算処理システムのプラットホームで直接実行
させる、 ことを特徴とするプログラム実行方法。 - 【請求項9】 コンピュータに実行させることによっ
て、ジャスト・イン・タイム・コンパイラ方式により、
原始プログラムを特定の演算処理システムのプラットホ
ームで直接実行可能な機械語に翻訳して該機械語を実行
させる制御を該コンピュータに行なわせる制御プログラ
ムを記録したコンピュータで読み取り可能な記録媒体で
あって、 前記原始プログラムの翻訳である前記機械語を、該原始
プログラムに記述されている関数ごとに、電源電圧が消
失しても記憶内容が保持される記憶部に記憶させるステ
ップと、 前記原始プログラムに記述されている関数の翻訳である
前記機械語が前記記憶部に記憶されているか否かの判定
を行なうステップと、 前記判定結果に応じて、前記原始プログラムを翻訳して
得る機械語、または前記記憶部に記憶されている機械
語、のどちらかを特定の演算処理システムのプラットホ
ームで直接実行させるステップと、 からなる処理を該コンピュータに実行させる制御プログ
ラムを記録した記録媒体。 - 【請求項10】 コンピュータに実行させることによっ
て、ジャスト・イン・タイム・コンパイラ方式により、
原始プログラムを特定の演算処理システムのプラットホ
ームで直接実行可能な機械語に翻訳して該機械語を実行
させる制御を該コンピュータに行なわせる制御プログラ
ムを記録したコンピュータで読み取り可能な記録媒体で
あって、 前記原始プログラムの翻訳である前記機械語を、該原始
プログラムに記述されている関数ごとに、該機械語の翻
訳前の原始プログラムが更新された日時に対応付けて記
憶するステップと、 前記原始プログラムの更新された日時と、記憶されてい
る前記機械語に対応付けられている更新日時とが一致す
るか否かの判定を行なうステップと、 前記判定結果に応じて、前記原始プログラムを翻訳して
得る機械語、または記憶されている機械語、のどちらか
を特定の演算処理システムのプラットホームで直接実行
させるステップと、 からなる処理を該コンピュータに実行させる制御プログ
ラムを記録した記録媒体。 - 【請求項11】 コンピュータに実行させることによっ
て、ジャスト・イン・タイム・コンパイラ方式により、
原始プログラムを特定の演算処理システムのプラットホ
ームで直接実行可能な機械語に翻訳して該機械語を実行
させる制御を該コンピュータに行なわせる制御プログラ
ムであって、 前記原始プログラムの翻訳である前記機械語を、該原始
プログラムに記述されている関数ごとに、電源電圧が消
失しても記憶内容が保持される記憶部に記憶させるステ
ップと、 前記原始プログラムに記述されている関数の翻訳である
前記機械語が前記記憶部に記憶されているか否かの判定
を行なうステップと、 前記判定結果に応じて、前記原始プログラムを翻訳して
得る機械語、または前記記憶部に記憶されている機械
語、のどちらかを特定の演算処理システムのプラットホ
ームで直接実行させるステップと、 からなる処理を該コンピュータに実行させる制御プログ
ラム。 - 【請求項12】 コンピュータに実行させることによっ
て、ジャスト・イン・タイム・コンパイラ方式により、
原始プログラムを特定の演算処理システムのプラットホ
ームで直接実行可能な機械語に翻訳して該機械語を実行
させる制御を該コンピュータに行なわせる制御プログラ
ムであって、 前記原始プログラムの翻訳である前記機械語を、該原始
プログラムに記述されている関数ごとに、該機械語の翻
訳前の原始プログラムが更新された日時に対応付けて記
憶するステップと、 前記原始プログラムの更新された日時と、記憶されてい
る前記機械語に対応付けられている更新日時とが一致す
るか否かの判定を行なうステップと、 前記判定結果に応じて、前記原始プログラムを翻訳して
得る機械語、または記憶されている機械語、のどちらか
を特定の演算処理システムのプラットホームで直接実行
させるステップと、 からなる処理を該コンピュータに実行させる制御プログ
ラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001010875A JP3889227B2 (ja) | 2000-01-21 | 2001-01-18 | プログラム実行装置、プログラム実行方法、記録媒体、及び制御プログラム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000012599 | 2000-01-21 | ||
JP2000-12599 | 2000-01-21 | ||
JP2001010875A JP3889227B2 (ja) | 2000-01-21 | 2001-01-18 | プログラム実行装置、プログラム実行方法、記録媒体、及び制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001273151A true JP2001273151A (ja) | 2001-10-05 |
JP3889227B2 JP3889227B2 (ja) | 2007-03-07 |
Family
ID=26583909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001010875A Expired - Fee Related JP3889227B2 (ja) | 2000-01-21 | 2001-01-18 | プログラム実行装置、プログラム実行方法、記録媒体、及び制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3889227B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003107186A1 (ja) * | 2002-06-18 | 2003-12-24 | 松下電器産業株式会社 | プログラム実行処理端末装置、プログラム実行処理方法及びプログラム |
WO2004075048A1 (ja) * | 2003-02-18 | 2004-09-02 | Access Co., Ltd. | ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、およびサーバ |
-
2001
- 2001-01-18 JP JP2001010875A patent/JP3889227B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003107186A1 (ja) * | 2002-06-18 | 2003-12-24 | 松下電器産業株式会社 | プログラム実行処理端末装置、プログラム実行処理方法及びプログラム |
US7506323B2 (en) | 2002-06-18 | 2009-03-17 | Panasonic Corporation | Program execution processing terminal device, program execution processing method, and program |
WO2004075048A1 (ja) * | 2003-02-18 | 2004-09-02 | Access Co., Ltd. | ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、およびサーバ |
CN100346297C (zh) * | 2003-02-18 | 2007-10-31 | 株式会社爱可信 | 本地编译方法、本地编译预处理方法、服务器和通信系统 |
Also Published As
Publication number | Publication date |
---|---|
JP3889227B2 (ja) | 2007-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5230049A (en) | Program source code translator | |
US7707566B2 (en) | Software development infrastructure | |
EP4099153B1 (en) | Extending a virtual machine instruction set architecture | |
US5481713A (en) | Method and apparatus for patching code residing on a read only memory device | |
CN1134731C (zh) | 在计算机系统中编译指令的方法 | |
EP0905617B1 (en) | Method for generating a java bytecode data flow graph | |
JP4699580B2 (ja) | データ処理システムの配列の静的初期化方法、データ処理方法、並びにデータ処理システム及びその制御手順をコンピュータに実行させるプログラムを記憶したコンピュータ読み取り可能な記憶媒体 | |
JP2004280795A (ja) | エクストリームパイプライン及び最適化再配列技術 | |
JPH0731604B2 (ja) | 目標コンピュータ・システム、異なるコンピュータ・システム間でプログラムを実行する方法 | |
CA2306519A1 (en) | Method and apparatus for handling exceptions as normal control flow | |
US20030033593A1 (en) | Dynamic execution layer interface for explicitly or transparently executing application or system binaries | |
US20030192035A1 (en) | Systems and methods for implementing efficient execution transfers between successive translations of stack-based program code in a virtual machine environment | |
US7581216B2 (en) | Preserving platform independence with native accelerators for performance critical program objects | |
US7739674B2 (en) | Method and apparatus for selectively optimizing interpreted language code | |
US20040083467A1 (en) | System and method for executing intermediate code | |
JPH0769833B2 (ja) | 多言語最適化コンパイラ内のシンボル テーブル構成用インタフェイス | |
US20030110478A1 (en) | Portable run-time code synthesis in a caching dynamic translator | |
US20240231864A9 (en) | Hybrid just in time load module compiler with performance optimizations | |
US20010042241A1 (en) | Apparatus and method for executing program using just-in time-compiler system | |
Smith et al. | POPLOG's Two-level virtual machine support for interactive languages | |
JPH06309204A (ja) | データ処理方法及びその装置 | |
US20040015913A1 (en) | Method for fast compilation of preverified JAVA TM bytecode to high quality native machine code | |
US5150474A (en) | Method for transferring arguments between object programs by switching address modes according to mode identifying flag | |
JP3889227B2 (ja) | プログラム実行装置、プログラム実行方法、記録媒体、及び制御プログラム | |
US20080077912A1 (en) | Software development methods, systems, and storage media storing software developed thereby |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060829 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061025 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061129 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091208 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111208 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111208 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121208 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121208 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131208 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |