(57)【要約】【課題】インタプリタの起動を高速化する。【解決手段】メモリに格納されたデータ構造を解釈実行するインタプリタ方式の情報処理装置において、インタプリタを起動するインタプリタ起動手段２と、インタプリタが解釈実行時に使用するインタプリタ用データ記憶領域３と、インタプリタが解釈実行時に使用する構築済みデータ構造を保存する構築済みデータ記憶領域４と、構築済みデータ記憶領域から構築済みデータ構造をインタプリタ用データ記憶領域に読み込む構築済みデータ読み込み手段１５とインタプリタ用データ記憶領域にある構築済みデータ構造を構築済みデータ記憶領域に保存する構築済みデータ書き込み手段１６を有するデータ記憶制御手段５を有する。【選択図】        図１
2005250835.tif 000002
【特許請求の範囲】
【請求項１】
データ構造を解釈実行するインタプリタ方式のインタプリタ型情報処理装置において、
インタプリタが解釈実行時に使用するインタプリタ用データ記憶領域と、
インタプリタが解釈実行時に使用する構築済みデータ構造を保存する構築済みデータ記憶領域と、
構築済みデータ記憶領域から構築済みデータ構造をインタプリタ用データ記憶領域に読み込む構築済みデータ読み込み手段と
を有することを特徴とするインタプリタ型情報処理装置。
【請求項２】
請求項１に記載のインタプリタ型情報処理装置において、さらに、
中間コードを読み出しインタプリタ用データ記憶領域を使用してデータ構造を構築するデータ構造構築手段と、
インタプリタ用データ記憶領域にある構築済みデータ構造を構築済みデータ記憶領域に保存する構築済みデータ書き込み手段と
を有することを特徴とするインタプリタ型情報処理装置。
【請求項３】
請求項２に記載のインタプリタ型情報処理装置において、さらに、
インタプリタ用データ記憶領域にあるデータ構造を検証し、検証処理データを作成する検証手段と、
検証処理データを構築済みデータ記憶領域に保存する検証情報制御手段と
を有することを特徴とするインタプリタ型情報処理装置。
【請求項４】
請求項２に記載のインタプリタ型情報処理装置において、さらに、
構築済みデータをプログラム実行前にネイティブコードに変換するネイティブコード変換手段と、
変換済みのネイティブコードを保存するネイティブコード制御手段と
を有することを特徴とするインタプリタ型情報処理装置。
【請求項５】
請求項２に記載のインタプリタ型情報処理装置において、さらに、構築済みデータ記憶領域において構築済みデータを管理する構築済みデータ管理手段を有することを特徴とするインタプリタ型情報処理装置。
【請求項６】
請求項５に記載のインタプリタ型情報処理装置において、さらに、
インタプリタ用データ記憶領域に複数のデータ構造が存在する場合に、一部のデータ構造を選択して構築済みデータ記憶領域に保存するデータ構造選択書き込み手段と、
構築済みデータ記憶領域から必要なデータ構造のみを選択してインタプリタ用データ記憶領域に読み込むデータ構造選択読み込み手段と
を有することを特徴とするインタプリタ型情報処理装置。
【請求項７】
請求項２に記載のインタプリタ型情報処理装置において、さらに、
データを構築済みデータ記憶領域に保存する時に圧縮して保存するデータ圧縮手と、
構築済みデータ記憶領域からデータを読み出す時に圧縮データを解凍するデータ解凍手段と
を有することを特徴とするインタプリタ型情報処理装置。
【請求項８】
請求項１に記載のインタプリタ型情報処理装置において、さらに、
インタプリタ用データ記憶領域を複数の領域に分割して管理する記憶領域分割管理手段と、
インタプリタ用データ記憶領域に対する読み込みまたは書き込みが発生した時に読み込み領域または書き込み領域に対応するデータ構造を構築済みデータ記憶領域からインタプリタ用データ記憶領域に読み込む構築済みデータ分割管理手段と
を有することを特徴とするインタプリタ型情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラムを解析しながら実行するインタプリタ型の情報処理装置に関するものである。特に、中間コードを読み込み、データ構造を構築する処理を高速化するインタプリタ型の情報処理装置に関するものである。
【背景技術】
【０００２】
従来、プログラムを解析しながら実行するインタプリタ型の情報処理装置では、インタプリタ起動時に、メモリ上にデータ構造を構築しながら中間コードを読み込み、随時、構築されたデータ構造に含まれる命令を解釈（インタプリト）し、演算処理システムにその命令に対応する処理を行わせる。
【０００３】
Ｊａｖａ（登録商標）ではＪＶＭ（Ｊａｖａ  Ｖｅｒｔｕａｌ  Ｍａｃｈｉｎｅ）起動時にＪａｖａバイトコードを読み込み、メモリ上に複数のクラスやインタフェースを表現するクラス構造体（クラスオブジェクト）を構築する処理（クラスロード処理）を行う。実行時には随時、構築されたクラス構造体で表現されているクラスやインタフェースをもとに命令を解釈（インタプリト）し演算処理システムにその命令に対応する処理を行わせる。
【０００４】
従来のＪＶＭでは、一度構築したクラス構造をプログラム終了時に破棄しているためＪＶＭを起動するたびにクラスロード処理がおこなわれている（非特許文献１参照）。
【特許文献１】特開２００１−２７３１５１号公報
【特許文献２】特開平１０−２８３１９３号公報
【特許文献３】特開平１−１６２９３３号公報
【非特許文献１】ティム・リドホルム／フランク・イェリン著「Ｊａｖａ仮想マシン仕様  第２版」株式会社ピアソン・エデュケーション発行２００１年５月２５日ｐ．４０−５０
【発明の開示】
【発明が解決しようとする課題】
【０００５】
インタプリタ起動時間を短縮する妨げとなっている処理のひとつにインタプリタ起動時に中間コードを読み込み、データ構造を構築する処理がある。インタプリタ終了時に構築されたデータ構造を破棄しているため、同じプログラムを何度も繰り返し使用する場合、起動時に再び中間コードを読み込み、データ構造を構築する処理を行う必要がある。
【０００６】
本発明は、この中間コードを読み込み、データ構造を構築する処理を高速化すること目的とする。
【課題を解決するための手段】
【０００７】
この発明のインタプリタ型情報処理装置は、メモリに格納されたデータ構造を解釈実行するインタプリタ方式の情報処理装置において、インタプリタを起動するインタプリタ起動手段と、インタプリタが解釈実行時に使用するインタプリタ用データ記憶領域と、インタプリタが解釈実行時に使用する構築済みデータ構造を保存する構築済みデータ記憶領域と、構築済みデータ記憶領域から構築済みデータ構造をインタプリタ用データ記憶領域に読み込む構築済みデータ読み込み手段を有するデータ記憶制御手段を有することを特徴とする。
【発明の効果】
【０００８】
この発明のインタプリタ型情報処理装置によれば、インタプリタが解釈実行時に使用する構築済みデータ構造を保存する構築済みデータ記憶領域と、構築済みデータ記憶領域から構築済みデータ構造をインタプリタ用データ記憶領域に読み込む構築済みデータ読み込み手段を備えているので、インタプリタの起動時の処理を簡素化することができ、インタプリタの起動を高速化することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１０】
実施の形態１．
以下、図１から図７を用いて実施の形態１の説明をする。
【００１１】
図１は、本発明における実施の形態１のインタプリタの起動環境の概略ブロック図、図２は、構築済みデータ管理情報であり、図３は、インタプリタ用データ記憶領域の詳細図、図４は、構築済みデータ記憶領域の詳細図、図５は、フロー図である。
【００１２】
図１を用いて実施の形態１の構成を説明する。
【００１３】
本装置は、中間コード１１を有するデータ記憶領域１とデータ構造構築手段１２を有するインタプリタ起動手段２と構築済みデータ１６−１が構築されるインタプリタ用データ記憶領域３と構築済みデータ１６−２と構築済みデータ管理情報１７を保存する不揮発性の構築済みデータ記憶領域４と、構築済みデータ管理手段１３と構築済みデータ書き込み手段１４と構築済みデータ読み込み手段１５を有するデータ記憶制御手段５とで構成される情報処理装置である。
【００１４】
データ記憶領域１は、ユーザによって記述されたソースコードをインタプリタの命令セットにコンパイルされた中間コード１１が保存されている領域である。
【００１５】
インタプリタ起動手段２は、インタプリタを起動する手段であり、データ構造構築手段１２は、中間コード１１を読み込み、中間コードの内部データ構造である構築済みデータ１６−１をインタプリタの作業領域であるインタプリタ用データ記憶領域３上に構築する手段である。
【００１６】
データ記憶制御手段５は、インタプリタ用データ記憶領域３と構築済みデータ記憶領域４間でのデータのやりとりを制御する手段であり、構築済みデータ書き込み手段１４は、インタプリタ用データ記憶領域３上に構築された構築済みデータ１６−１を構築済みデータ記憶領域４に複写し、構築済みデータ１６−２とする手段である。
【００１７】
構築済みデータ読み込み手段１５は、構築済みデータ記憶領域４に保存されている構築済みデータ１６−２をインタプリタ用データ記憶領域３に複写し、構築済みデータ１６−１とする手段である。
【００１８】
構築済みデータ管理手段１３は、構築済みデータに関する情報である構築済みデータ管理情報１７を作成し、構築済みデータ記憶領域４上で管理する手段である。
【００１９】
構築済みデータ管理情報１７の内容を図２に示す。
【００２０】
図２は、行ごとに一つの構築済みデータの管理情報を示しており、列ごとにその内容を表す。構造体識別子は構築済みデータを区別するものであり、サイズは構築済みデータの大きさ、インタプリタ用データ記憶領域上先頭アドレス情報はインタプリタ用データ記憶領域に図３のように構築済みデータが入っていたときのそれぞれのインタプリタ用データ記憶領域上の先頭アドレスを示す。
【００２１】
構築済みデータ記憶領域上先頭アドレス情報は、構築済みデータ記憶領域上に図４のように構築済みデータ管理情報と構築済みデータが保存されたときの構築済みデータそれぞれの構築済みデータ記憶領域上の先頭アドレスを示す。
【００２２】
次に、図５を用いて動作を説明する。
【００２３】
プログラムの起動に必要な構築済みデータ１６−２が構築済みデータ記憶領域４に保存されているかどうかを構築済みデータ管理手段１３が構築済みデータ管理情報１７を検索、判定する（Ｓ１０１）。
【００２４】
構築済みデータ１６−２が構築済みデータ記憶領域４にない場合、データ構造構築手段１２により起動プログラムに対応する中間コード１１を読み込み、構築済みデータ１６−１をインタプリタ用データ記憶領域３上に構築する（Ｓ１０２）。
【００２５】
構築後、構築済みデータ書き込み手段１４は、構築済みデータ１６−１を構築済みデータ記憶領域４に構築済みデータ１６−２として複写する（Ｓ１０４）。
【００２６】
複写された構築済みデータ１６−２の構築済みデータ管理情報１７を構築済みデータ管理手段１３により作成し、構築済みデータ記憶領域４上で管理する（Ｓ１０５）。
【００２７】
必要な構築済みデータ１６−２が構築済みデータ記憶領域４に保存されている場合、構築済みデータ管理手段１３は、構築済みデータ記憶領域４で構築済みデータ管理情報１７を取得し、取得した情報を基に構築済みデータ読み込み手段１５は、構築済みデータ記憶領域４からインタプリタ用データ記憶領域３に構築済みデータ１６−２を構築済みデータ１６−１として複写する（Ｓ１０３）。
【００２８】
以上の動作により、一度構築したデータ構造は、不揮発性の構築済みデータ記憶領域４上に保存されるため、２回目以降の起動時に、中間コード１１を読み込み、インタプリタ用データ記憶領域上でデータ構造を構築する必要がなく、構築済みデータ記憶領域４に保存されている構築済みデータ１６−２をインタプリタ用データ記憶領域に複写する作業を行うだけでよいので起動の高速化が行われる。
【００２９】
実施の形態２．
以下、図６、図７を用いて実施の形態２の説明をする。
【００３０】
図６は、本発明の実施の形態２のブロック図、図７は、フロー図である。
【００３１】
図６を用いて実施の形態２の構成を説明をする。
【００３２】
本装置は、実施の形態１の構成に加えて、検証手段２１を有するインタプリタ起動手段２と、検証処理データ２３−１を有するインタプリタ用データ記憶領域３と、検証処理データ２３−２を有する構築済みデータ記憶領域４と、検証情報制御手段２２を有するデータ記憶制御手段５とで構成される情報処理装置である。
【００３３】
検証手段２１は、データ構造構築手段によって構築された構築済みデータ１６−１が正しいか否かを検証し、インタプリタ用データ記憶領域３上に検証処理データ２３−１を作成する手段である。
【００３４】
検証情報制御手段２２は、インタプリタ用データ記憶領域３上に作成された検証処理データ２３−１をインタプリタ用データ記憶領域３と構築済みデータ記憶領域間で管理する手段である。
【００３５】
次に、図７を用いて実施の形態２の動作を説明する。
【００３６】
実施の形態１で２回目以降の起動の場合、必要な構築済みデータ１６−２が構築済みデータ記憶領域４にあるので（Ｓ２０１でＹｅｓ）、構築済みデータ読み込み手段は、構築済みデータ１６−２を構築済みデータ記憶領域４からインタプリタ用データ記憶領域３に構築済みデータ１６−１として読み込み（Ｓ２０４）、検証情報制御手段２２は、構築済みデータ１６−１が検証済みであるかどうかを検証処理データ２３−２が構築済みデータ記憶領域４にあるかどうかをみて判断する（Ｓ２０５）。
【００３７】
検証済みであった場合、検証情報制御手段２２は、読み込まれた構築済みデータに対応する検証処理データ２３−２を構築済みデータ記憶領域４から読み込み、インタプリタ用データ記憶領域に格納する（Ｓ２０６）。
【００３８】
検証済みでなかった場合、検証手段２１は、読み込まれた構築済みデータ１６−１が正しいか否かを検証し、検証処理データ２３−１をインタプリタ用データ記憶領域３に作成する（Ｓ２０３）。検証情報制御手段２２は、作成された検証処理データ２３−１を構築済みデータ記憶領域４に書き込む（Ｓ２０８）。
【００３９】
実施の形態１で初回起動時の場合（Ｓ２０１でＮｏ）、実施の形態１と同様にデータ構造構築処理（Ｓ２０２：図５のＳ１０２に相当）を行い、構築済みデータと構築済みデータ管理情報を保存する（Ｓ２０７：図５のＳ１０４、Ｓ１０５に相当）。検証手段２１は、構築された構築済みデータ１６−１が正しいか否かを検証し、検証処理データ２３−１をインタプリタ用データ記憶領域３上に作成する（Ｓ２０３）。
【００４０】
検証情報制御手段２２は、作成された検証処理データ２３−１を構築済みデータ記憶領域４に書き込む（Ｓ２０８）。
【００４１】
以上の動作により、実施の形態１の効果に加え、一度検証された構築済みデータを再び検証する必要がなくなるため起動の高速化が行われる。
【００４２】
実施の形態３．
以下、図８、図９を用いて実施の形態３の説明をする。
【００４３】
図８は、本発明の実施の形態３のブロック図、図９は、フロー図である。
【００４４】
図８を用いて実施の形態３の構成を説明する。
【００４５】
本装置は、実施の形態１の構成に加えて、ネイティブコード変換手段３１を有するインタプリタ起動手段２と、ネイティブコード制御手段３２を有するデータ記憶制御手段５と、ネイティブコード３３−１が保存されるインタプリタ用データ記憶領域３と、ネイティブコード３３−２が保存される構築済みデータ記憶領域４とで構成される情報処理装置である。
【００４６】
ネイティブコード変換手段３１は、プログラムを実行する前に、中間コードをコンピュータが直接解釈できる実行効率の良いネイティブコード３３−１に変換する手段である。ネイティブコード制御手段３２は、ネイティブコード３３−１をインタプリタ用データ記憶領域３と構築済みデータ記憶領域４間で制御する手段である。
【００４７】
次に、図９を用いて実施の形態３の動作を説明する。実施の形態１で２回目以降の起動の場合、必要な構築済みデータ１６−２が構築済みデータ記憶領域４にあるので（Ｓ３０１でＹｅｓ）、構築済みデータ読み込み手段は、構築済みデータ１６−２を構築済みデータ記憶領域４からインタプリタ用データ記憶領域３に構築済みデータ１６−１として読み込み（Ｓ３０３）、ネイティブコード制御手段３２は、読み込まれた構築済みデータ１６−１に対応するネイティブコード３３−２が構築済みデータ記憶領域に保存されているかどうか判断する（Ｓ３０５）。
【００４８】
ネイティブコード３３−２が保存されている場合、ネイティブコード制御手段３２は、構築済みデータ記憶領域４からネイティブコード３３−２を読み込み、インタプリタ用データ記憶領域３に格納する（Ｓ３０６）。
【００４９】
ネイティブコード３３−２が保存されていない場合、ネイティブコード変換手段３１は、構築済みデータ１６−１をネイティブコードに変換しインタプリタ用データ記憶領域に格納する（Ｓ３０７）。ネイティブコード制御手段３２は、変換されたネイティブコード３３−１を構築済みデータ記憶領域４に書き込む（Ｓ３０８）。
【００５０】
実施の形態１で初回起動時の場合（Ｓ３０１でＮＯ）、実施の形態１と同様にデータ構造構築処理（Ｓ３０２：図５のＳ１０２に相当）を行い、構築済みデータと構築済みデータ管理情報を保存する（Ｓ３０４：図５のＳ１０４、Ｓ１０５に相当）。
【００５１】
ネイティブコード変換手段３１は、構築された構築済みデータ１６−１をネイティブコードに変換しインタプリタ用データ記憶領域に格納する（Ｓ３０７）。
【００５２】
ネイティブコード制御手段３２は、変換されたネイティブコード３３−１を構築済みデータ記憶領域４に書き込む（Ｓ３０８）。
【００５３】
なお、ネイティブコードを保存することにより構築済みデータの中間コードが不要になるため、不要部分を無効化するように構築済みデータ管理情報を変更してもよい。
【００５４】
以上の動作により、実施の形態１の効果に加え、一度変換されたネイティブコードを破棄せず構築済みデータ記憶領域に保存することにより、次回起動時には構築済みデータをネイティブコードに変換する処理をせずに、構築済みデータ記憶領域からインタプリタ用データ記憶領域に読み込む処理をすればよいので起動の高速化が行われる。
【００５５】
実施の形態４．
以下、図１０、図１１を用いて実施の形態４の説明をする。
【００５６】
実施の形態４は、実施の形態１において、プログラムａは複数の構築済みデータ（Ａ、Ｂ、Ｃ）を必要とし、プログラムｂは複数の構築済みデータ（Ａ、Ｂ、Ｄ）を必要とするプログラムであり、初期状態においてはじめにプログラムａを起動し、次に、プログラムｂを起動する場合を例にとり説明する。
【００５７】
図１０は、本発明の実施の形態４のブロック図である。図１０を用いて実施の形態４の構成を説明する。
【００５８】
本装置は、実施の形態１の構成に加えて、構築済みデータ選択書き込み手段４１と構築済みデータ選択読み込み手段４２と構築済みデータ選択管理手段４３を有するデータ記憶制御手段５で構成される情報処理装置である。
【００５９】
構築済みデータ選択書き込み手段４１は、インタプリタ用データ記憶領域３上に構築された構築済みデータから保存するデータを選択して構築済みデータ記憶領域４に書き込む手段である。構築済みデータ選択読み込み手段４２は、構築済みデータ記憶領域４から必要なデータ構造を選択してインタプリタ用データ記憶領域に読み込む手段である。
【００６０】
構築済みデータ選択管理手段４３は、インタプリタ用データ記憶領域から構築済みデータ記憶領域に保存される構築済みデータに関する情報である構築済みデータ管理情報１７を作成し、構築済みデータ記憶領域４上で管理する手段である。
【００６１】
次に、図１１を用いて実施の形態４の動作を説明する。
【００６２】
はじめにプログラムａを起動する。構築済みデータ選択管理手段４３は、構築済みデータ記憶領域４の構築済みデータ管理情報を検索し、必要な構築済みデータＡ（４４−２）、Ｂ（４５−２）、Ｃ（４６−２）が構築済みデータ記憶領域４に保存されているかどうか判断する（Ｓ４０１）。
【００６３】
保存されていない場合、データ構造構築手段１２は、必要な複数の構築済みデータＡ（４４−１）、Ｂ（４５−１）、Ｃ（４６−１）をインタプリタ用データ記憶領域３上に構築する（Ｓ４０２）。
【００６４】
構築済みデータ選択管理手段４３は、構築済みデータ記憶領域４に書き込みする構築済みデータ（新たに構築された構築済みデータ）Ａ（４４−１）、Ｂ（４５−１）、Ｃ（４６−１）を選択し（Ｓ４０４）、それらの構築済みデータ管理情報Ａ（４８−１）、Ｂ（４８−２）、Ｃ（４８−３）を作成、構築済みデータ記憶領域４に保存する（Ｓ４０５）。
【００６５】
構築済みデータ選択書き込み手段４１は、選択された構築済みデータＡ（４４−１）、Ｂ（４５−１）、Ｃ（４６−１）をインタプリタ用データ記憶領域３から構築済みデータ記憶領域４に書き込む（Ｓ４０５）。
【００６６】
次に、プログラムｂを起動する。構築済みデータ選択管理手段４３は、構築済みデータ記憶領域４の管理情報を検索し、必要な構築済みデータＡ（４４−２）、Ｂ（４５−２）、Ｄ（４６−２）が構築済みデータ記憶領域４に保存されているかどうか判断する（Ｓ４０１）。
【００６７】
Ａ（４５−２）とＢ（４６−２）は、プログラムａの起動により保存されているため、構築済みデータ選択読み込み手段４２は、構築済みデータ記憶領域４から構築済みデータＡ（４４−２）とＢ（４５−２）を読み込み、インタプリタ用データ記憶領域３に格納する（Ｓ４０３）。
【００６８】
構築済みデータＤ（４７−２）は、構築済みデータ記憶領域４に保存されていないのでデータ構造構築手段１２は、構築済みデータＤ（４７−１）をインタプリタ用データ記憶領域３上に構築する（Ｓ４０２）。
【００６９】
構築済みデータ選択管理手段４３は、構築済みデータ記憶領域４に書き込みする構築済みデータ（新たに構築された構築済みデータ）Ｄ（４７−１）を選択し（Ｓ４０４）、構築済みデータ選択書き込み手段４１は、選択された構築済みデータＤ（４７−１）を構築済みデータ記憶領域４に書き込む（Ｓ４０５）。
【００７０】
また、構築済みデータ選択管理手段４３は、それらの構築済みデータ管理情報Ｄ（４８−４）を作成、構築済みデータ記憶領域４に保存する（Ｓ４０６）。
【００７１】
本実施の形態では、構築済みデータＡ、Ｂが複数のプログラムで使用されるものであり、構築済みデータＡ、Ｂをライブラリとして一まとめに保存しておくことも可能である。
【００７２】
以上の動作により、実施の形態１の効果に加え、複数のプログラムで使用される同じ構築済みデータを複数保存する必要がないため構築済みデータ記憶領域が節約される。
【００７３】
また、同じデータ構造をもつ複数のプログラムを順次起動する場合に共通のデータ構造はすでに構築済みデータ記憶領域に保存されているため起動を高速化できる。
【００７４】
実施の形態５．
以下、図１２を用いて実施の形態５の説明をする。
【００７５】
図１２は、実施の形態５のブロック図である。
【００７６】
図１２を用いて実施の形態５の構成を説明する。
【００７７】
本装置は、実施の形態１、２、３、４の構成に加え、圧縮手段５１と解凍手段５２を有するデータ記憶制御手段５で構成される情報処理装置である。
【００７８】
圧縮手段５１は、インタプリタ用データ記憶領域３のデータを構築済みデータ記憶領域４に書き込むときにデータを圧縮し圧縮データ５３とする手段である。
【００７９】
解凍手段５２は、構築済みデータ記憶領域４からインタプリタ用データ記憶領域３にデータを読み込むときに圧縮データ５３を解凍し解凍データ５４とする手段である。
【００８０】
ここでいうデータは、構築済みデータ１６、検証処理データ２３、ネイティブコード３３である。
【００８１】
以上の動作により、実施の形態１、２、３、４の効果に加え、データの大きさが小さい状態で構築済みデータ記憶領域に保存されるため、構築済みデータ記憶領域が節約される。
【００８２】
実施の形態６．
以下、図１３と図１４を用いて実施の形態６の説明をする。
【００８３】
図１３は、実施の形態６のブロック図である。
【００８４】
図１３を用いて実施の形態６の説明をする。
【００８５】
本装置は、プログラム実行手段６と、インタプリタ用データ記憶領域３と、記憶領域分割管理手段６１と、構築済みデータ分割管理手段６２を有するデータ記憶制御手段５と、分割された構築済みデータ１６と構築済みデータ管理情報１７を有する構築済みデータ記憶領域４とで構成される情報処理装置である。
【００８６】
記憶領域分割管理手段６１は、インタプリタ用データ記憶領域を複数の領域に分割し構築済みデータ１６との対応を管理する手段である。記憶領域分割管理手段６１の持つ情報を図１４に示した。
【００８７】
構築済みデータ分割管理手段６２は、要求されたデータを構築済みデータ記憶領域４から構築済みデータの一部を指定された領域に読み込む手段である。
【００８８】
次に、例をあげて説明する。プログラム実行手段６が記憶領域分割管理手段６１により分割管理されているインタプリタ用データ記憶領域３にアクセスをする。
【００８９】
記憶領域分割管理手段６１は、インタプリタ用データ記憶領域３に読み込むデータは図１４に示すようにデータＢの１（６３−２−１）であるという情報をもっており、データＢの１（６３−２−１）を構築済みデータ分割管理手段６２に要求する。
【００９０】
構築済みデータ分割管理手段６２は、構築済みデータ記憶領域４の構築済みデータＢ（６３−２）の一部分データ６３−２−１を読み込みインタプリタ用データ記憶領域３に格納する。
【００９１】
以上の動作により、プログラム実行時にそのプログラムで必要な構築済みデータがすべてインタプリタ用データ記憶領域に格納されている必要はなく、実行時のある瞬間に必要となった時点で必要なデータだけ構築済みデータ記憶領域からインタプリタ用データ記憶領域に読み込めばよいので読み込み時間を短縮でき、またインタプリタ用データ記憶領域を節約使用できる。
【００９２】
図１５は、上記実施の形態１〜６における情報処理装置１００の外観を示す図である。
【００９３】
図１５において、情報処理装置１００は、システムユニット２００、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）表示装置１４１、キーボード（Ｋ／Ｂ）１４２、マウス１４３、コンパクトディスク装置（ＣＤＤ）１８６、プリンタ装置１８７、スキャナ装置１８８を備え、これらはケーブルで接続されている。さらに、情報処理装置１００は、ＦＡＸ機３１０、電話器３２０とケーブルで接続され、また、ローカルエリアネットワーク（ＬＡＮ）１０５、ウェブサーバ５００を介してインターネット５０１に接続されている。
【００９４】
図１６は、実施の形態１〜６における情報処理装置１００のハードウェア構成図である。
【００９５】
図１６において、情報処理装置１００は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１３７を備えている。ＣＰＵ１３７は、バス１３８を介してＲＯＭ１３９、ＲＡＭ１４０、通信ボード１４４、ＣＲＴ表示装置１４１、Ｋ／Ｂ１４２、マウス１４３、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）１４５、磁気ディスク装置１４６、ＣＤＤ１８６、プリンタ装置１８７、スキャナ装置１８８と接続されている。通信ボード１４４は、ＦＡＸ機３１０、電話器３２０、ＬＡＮ１０５等に接続されている。
【００９６】
例えば、通信ボード１４４、Ｋ／Ｂ１４２、ＦＤＤ１４５は、入力部の一例となる。
【００９７】
また、例えば、通信ボード１４４は、出力部の一例となる。
【００９８】
また、例えば、ＲＡＭ１４０は、インタプリタ用データ記憶領域３が割り当てられる揮発性記憶部の一例である。、ＲＯＭ１３９、ＦＤＤ１４５、磁気ディスク装置１４６、ＣＤＤ１８６は、構築済みデータ記憶領域４が割り当てられる不揮発性記憶部の一例である。
【００９９】
ここで、通信ボードは、ＬＡＮ１０５に限らず、直接、インターネット、或いはＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）に接続されていても構わない。直接、インターネット、或いはＩＳＤＮ等のＷＡＮに接続されている場合、情報処理装置１００は、インターネット、或いはＩＳＤＮ等のＷＡＮに接続され、ウェブサーバ５００は不用となる。
【０１００】
磁気ディスク装置１４６には、オペレーティングシステム（ＯＳ）１４７、ウィンドウシステム１４８、プログラム群１４９、ファイル群１５０が記憶されている。プログラム群は、ＣＰＵ１３７、ＯＳ１４７、ウィンドウシステム１４８により実行される。
【０１０１】
上記プログラム群１４９には、実施の形態１〜６の説明において「〜手段」として説明した機能を実行するプログラムが記憶されている。ファイル群１５０には、実施の形態１〜６の説明において「〜を保存する」、「〜を記憶する」、「〜を書き込む」、「〜を読み込む」として説明したデータや情報が、「〜ファイル」として記憶されている。
【０１０２】
また、実施の形態１〜６の説明において「〜手段」として説明したものは、ハードウェア回路や半導体チップや回路基板により実現できる。あるいは、実施の形態１〜６の説明において「〜手段」として説明したものは、ＲＯＭ１３９に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
【０１０３】
また、実施の形態１〜６を実施させるプログラムは、また、磁気ディスク装置、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体による記録装置を用いて記憶されても構わない。
【０１０４】
以上のように、実施の形態１〜６は、方法の発明やプログラムや記録媒体の発明としても有効である。
【０１０５】
以上のように、上記実施の形態１〜６の情報処理装置は、メモリに格納されたデータ構造を解釈実行するインタプリタ方式の情報処理装置において、インタプリタを起動するインタプリタ起動手段と、インタプリタが解釈実行時に使用するインタプリタ用データ記憶領域と、インタプリタが解釈実行時に使用する構築済みデータ構造を保存する構築済みデータ記憶領域と、構築済みデータ記憶領域から構築済みデータ構造をインタプリタ用データ記憶領域に読み込む構築済みデータ読み込み手段を有するデータ記憶制御手段を有することを特徴とする。
【０１０６】
その結果、インタプリタの起動時のロード処理を短縮することにより、インタプリタの起動を高速化するものである。
【０１０７】
また、上記インタプリタ起動手段は、中間コードを読み出しインタプリタ用データ記憶領域を使用してデータ構造を構築するデータ構造構築手段を有し、上記データ記憶制御手段は、インタプリタ用データ記憶領域にある構築済みデータ構造を構築済みデータ記憶領域に保存する構築済みデータ書き込み手段を有することを特徴とする。
【０１０８】
また、上記インタプリタ起動手段は、インタプリタ用データ記憶領域にあるデータ構造を検証し、検証処理データを作成する検証手段を有し、上記データ記憶制御手段は、検証処理データを構築済みデータ記憶領域に保存する検証情報制御手段を有することを特徴とする。
【０１０９】
また、上記インタプリタ起動手段は、構築済みデータをプログラム実行前にネイティブコードに変換するネイティブコード変換手段を有し、上記データ記憶制御手段は、変換済みのネイティブコードを保存するネイティブコード制御手段を有することを特徴とする。
【０１１０】
また、上記データ記憶制御手段は、構築済みデータ記憶領域において構築済みデータを管理する構築済みデータ管理手段を有することを特徴とする。
【０１１１】
また、上記データ記憶制御手段は、インタプリタ用データ記憶領域に複数のデータ構造が存在する場合に、一部のデータ構造を選択して構築済みデータ記憶領域に保存するデータ構造選択書き込み手段と構築済みデータ記憶領域から必要なデータ構造のみを選択してインタプリタ用データ記憶領域に読み込むデータ構造選択読み込み手段を有することを特徴とする。
【０１１２】
また、上記データ記憶制御手段は、データを構築済みデータ記憶領域に保存する時に圧縮して保存するデータ圧縮手と、構築済みデータ記憶領域からデータを読み出す時に圧縮データを解凍するデータ解凍手段を有することを特徴とする。
【０１１３】
また、インタプリタ用データ記憶領域を複数の領域に分割して管理する記憶領域分割管理手段を有し、上記データ記憶制御手段は、インタプリタ用データ記憶領域に対する読み込みまたは書き込みが発生した時に読み込みまたは書き込み領域に対応するデータ構造を構築済みデータ記憶領域からインタプリタ用データ記憶領域に読み込む構築済みデータ分割管理手段を有することを特徴とする。
【０１１４】
なお、原始プログラム（中間コード）を機械語（ネイティブコード）に変換し、変換されたネイティブコードを不揮発メモリに保存し、不揮発メモリ上のネイティブコードを再利用することにより中間コードからネイティブコードへの変換処理に掛かる時間を削減する技術がある。
【０１１５】
また、ソースプログラムの解析・変換処理を行った実行形式データ、すなわちネイティブコードを保存しておき、実行時に利用することによりプログラムの実行を高速化する技術がある。
【０１１６】
また、命令テキストを解釈・実行する際にオウンコード、すなわちネイティブコードに変換後、保存しておき、実行時に利用することによりプログラムの実行を高速化する技術がある。
【０１１７】
これに対し、上記実施の形態１〜６の情報処理装置は、中間コードの読み込み処理とデータ構造の構築処理に掛かる時間を削減するために、インタプリタ用データ記憶領域上の構築済みデータを不揮発メモリに保存するものであり、目的、構成、動作が異なる。また、上記実施の形態１〜６の情報処理装置の効果はインタプリタの起動が高速化されることであり、ネイティブコードを使用する、使用しないに関わらず有効であり、効果が異なる。
【図面の簡単な説明】
【０１１８】
【図１】実施の形態１のインタプリタの起動環境の概略ブロック図である。
【図２】実施の形態１の構築済みデータ管理情報を示す図である。
【図３】実施の形態１のインタプリタ用データ記憶領域の詳細図である。
【図４】実施の形態１の構築済みデータ記憶領域の詳細図である。
【図５】実施の形態１の動作を説明するフロー図である。
【図６】実施の形態２のブロック図である。
【図７】実施の形態１の動作を説明するフロー図である。
【図８】実施の形態３の動作を説明するブロック図である。
【図９】実施の形態３の動作を説明するフロー図である。
【図１０】実施の形態４のブロック図である。
【図１１】実施の形態４の動作を説明するフロー図である。
【図１２】実施の形態５のブロック図である。
【図１３】実施の形態６のブロック図である。
【図１４】記憶領域分割管理手段６１の持つ情報を示す図である。
【図１５】上記実施の形態１〜６における情報処理装置１００の外観を示す図である。
【図１６】実施の形態１〜６における情報処理装置１００のハードウェア構成図である。
【符号の説明】
【０１１９】
１  データ記憶領域、２  インタプリタ起動手段、３  インタプリタ用データ記憶領域、４  構築済みデータ記憶領域、５  データ記憶制御手段、１１  中間コード、１２  データ構造構築手段、１３  構築済みデータ管理手段、１４  構築済みデータ書き込み手段、１５  構築済みデータ読み込み手段、１６−１  構築済みデータ、１６−２  構築済みデータ、１７  構築済みデータ管理情報、２１  検証手段、２２  検証情報制御手段、２３−１  検証処理データ、２３−２  検証処理データ、３１  ネイティブコード変換手段、３２  ネイティブコード制御手段、３３−１  ネイティブコード、３３−２  ネイティブコード、４１  構築済みデータ選択書き込み手段、４２  構築済みデータ選択読み込み手段、４３  構築済みデータ選択管理手段、４４−１  構築済みデータＡ、４４−２  構築済みデータＡ、４５−１  構築済みデータＢ、４５−２  構築済みデータＢ、４６−１  構築済みデータＣ、４６−２  構築済みデータＣ、４７−１  構築済みデータＤ、４７−２  構築済みデータＤ、４８−１  Ａ、４８−２  Ｂ、４８−３  Ｃ、４８−４  Ｄ、１０５  ＬＡＮ、１３７  ＣＰＵ、１３８  バス、１３９  ＲＯＭ、１４０  ＲＡＭ、１４１  ＣＲＴ表示装置、１４２  Ｋ／Ｂ、１４３  マウス、１４４  通信ボード、１４５  ＦＤＤ、１４６  磁気ディスク装置、１４７  ＯＳ、１４８  ウィンドウシステム、１４９  プログラム群、１５０  ファイル群、１８６  ＣＤＤ、１８７  プリンタ装置、１８８  スキャナ装置、１００  情報処理装置、２００  システムユニット、３１０  ＦＡＸ機、３２０  電話器、５００  ウェブサーバ、５０１  インターネット。
【図１】
2005250835.tif 000003
【図２】
2005250835.tif 000004
【図３】
2005250835.tif 000005
【図４】
2005250835.tif 000006
【図５】
2005250835.tif 000007
【図６】
2005250835.tif 000008
【図７】
2005250835.tif 000009
【図８】
2005250835.tif 000010
【図９】
2005250835.tif 000011
【図１０】
2005250835.tif 000012
【図１１】
2005250835.tif 000013
【図１２】
2005250835.tif 000014
【図１３】
2005250835.tif 000015
【図１４】
2005250835.tif 000016
【図１５】
2005250835.tif 000017
【図１６】
2005250835.tif 000018