JP3538292B2 - 実行時プログラム翻訳方法 - Google Patents

実行時プログラム翻訳方法

Info

Publication number
JP3538292B2
JP3538292B2 JP04568897A JP4568897A JP3538292B2 JP 3538292 B2 JP3538292 B2 JP 3538292B2 JP 04568897 A JP04568897 A JP 04568897A JP 4568897 A JP4568897 A JP 4568897A JP 3538292 B2 JP3538292 B2 JP 3538292B2
Authority
JP
Japan
Prior art keywords
program
intermediate language
translation
module
data
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.)
Expired - Lifetime
Application number
JP04568897A
Other languages
English (en)
Other versions
JPH10240546A (ja
Inventor
元章 里山
幸昭 野村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP04568897A priority Critical patent/JP3538292B2/ja
Priority to US09/030,280 priority patent/US20010011369A1/en
Publication of JPH10240546A publication Critical patent/JPH10240546A/ja
Application granted granted Critical
Publication of JP3538292B2 publication Critical patent/JP3538292B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、実行時プログラム
翻訳方法に係り、特に、サーバ計算機と複数の機種の異
なるクライアント計算機とがネットワークに接続された
ネットワーク環境において、複数の計算機に共通に実行
できる中間語プログラムをサーバ計算機から読み込ん
で、インタプリタのような解釈系によって実行する際
に、読み込んだ中間語プログラムをクライアント計算機
固有の機械語プログラムへ翻訳する実行時プログラム翻
訳方法に関する。
【0002】
【従来技術】計算機システムにおける複数機種の計算機
に共通の中間語プログラムから機械語プログラムへ翻訳
する方法に関する従来技術として、例えば、特開平4−
322329号公報等に記載された技術が知られてい
る。また、前述の中間語プログラムと実行時プログラム
翻訳方法とに関する従来技術として、例えば、「Cマガ
ジン MAY Vol.8 No.5:ソフトバンク、(pp.22-61)」等
に記載された技術が知られている。
【0003】
【本発明が解決しようとする課題】前述した従来技術に
よる実行時プログラム翻訳方法は、中間語プログラムを
読み込んだ時点で実際には実行されないモジュールも全
て翻訳するものであるため、翻訳時間に必要以上の時間
を要し、また、翻訳が終了するまでプログラムが実行で
きないため、翻訳時間が長くなるような場合、プログラ
ムを起動するまでに時間がかかってしまうという問題点
を有している。
【0004】また、前記従来技術による実行時プログラ
ム翻訳方法の問題点を解決するために、中間語プログラ
ム中のモジュールが初めて実行された時点で、機械語プ
ログラムに翻訳する実行時プログラム翻訳方法が考えら
れる。この場合、1度しか実行されないモジュールも必
ず機械語プログラムへ翻訳されることになる。しかし、
1回乃至数回しか実行されないモジュールは、翻訳時間
と機械語プログラムの実行時間との合計が、中間語プロ
グラムをインタプリタのごとき解釈系で直接実行する時
間よりも長くなってしまうという問題点を有している。
【0005】また、前記従来技術による実行時プログラ
ム翻訳方法は、中間語プログラムよりも機械語プログラ
ムの方が格納に必要なメモリサイズが大きくなる等、実
行に必要なメモリサイズが大きくなるため、メモリが少
ない計算機上で全ての中間語プログラムを機械語プログ
ラムに翻訳するとメモリ不足に陥り、メモリが少ない計
算機上で実行させることができないという問題点を有し
ている。
【0006】本発明の目的は、前述した従来技術の問題
点を解決し、ソースプログラムまたは中間語プログラム
を解釈実行中に、機械語プログラムへ翻訳する処理を効
果的に行い、計算機の処理効率を向上させることのでき
る実行時プログラム翻訳方法を提供することにある。
【0007】すなわち、本発明の目的は、ソースプログ
ラムまたは中間語プログラムを解釈実行中に、実行され
た回数を格納する実行頻度データを生成し、前記解釈実
行と並行して最も実行回数の多いモジュールを実行頻度
データから選び出して機械語プログラムへ翻訳すること
が可能な実行時プログラム翻訳方法を提供することにあ
る。
【0008】本発明の目的は、前記実行時プログラム翻
訳方法において、実行頻度が予め指定した閾値より低い
場合は、機械語プログラムへの翻訳を行わないように設
定することのできる実行時プログラム翻訳方法を提供す
ることにある。
【0009】本発明の目的は、前述において、機械語プ
ログラムへの翻訳の進行状況を表示することができ、ま
た、機械語プログラムへの翻訳を途中させることのでき
る実行時プログラム翻訳方法を提供することにある。
【0010】
【課題を解決するための手段】本発明によれば前記目的
は、複数の電子計算機に共通のソースプログラムまたは
中間語プログラムを解釈実行すると共に、計算機固有の
機械語プログラムへ翻訳する実行時プログラム翻訳方法
において、ソースプログラムまたは中間語プログラムを
解釈実行する解釈実行手段と、前記ソースプログラムま
たは中間語プログラムをモジュール単位に機械語プログ
ラムに翻訳するプログラム翻訳手段とを備え、前記解釈
実行手段が、前記ソースプログラムまたは中間語プログ
ラムの解釈実行中に、モジュール単位でそのモジュール
が実行された回数を計数して実行頻度データを生成し、
前記プログラム翻訳手段が、前記解釈実行手段によるソ
ースプログラムまたは中間語プログラムの解釈実行と並
行して、最も実行回数の多いモジュールを実行頻度デー
タから選び出し、そのモジュールを機械語プログラムへ
翻訳することにより達成される。
【0011】また、前記目的は、前記解釈実行手段が、
前記実行頻度データが予め指定した閾値より低いモジュ
ールの機械語プログラムへの翻訳を行わないようにする
ことにより達成される。
【0012】さらに、前記目的は、機械語プログラムへ
の翻訳の進行状況を表示する翻訳進行状況表示手段をさ
らに備えることにより、また、前記機械語プログラムへ
の翻訳を、途中で中断可能とすることにより達成され
る。
【0013】前述のような構成を備える本発明によれ
ば、実行頻度の計数処理と並行して前記実行頻度データ
から実行頻度の高いモジュールを選び出し、実行頻度の
高いモジュールから優先的に機械語プログラムに翻訳す
るようにしているため、翻訳によって得られた実行頻度
の高い機械語プログラムをハードウェアによって効率よ
く実行することができ、システムの実行性能を向上させ
ることができる。
【0014】また、本発明によれば、実行頻度数によっ
て機械語プログラムへの翻訳を行うか否かを設定するこ
とができるため、不必要な翻訳を行わないようにするこ
とができる。
【0015】また、前述のような構成を備える本発明に
よれば、読み込んだソースプログラムまたは中間語プロ
グラムの総ステップを記録し、モジュール単位の機械語
プログラムへの翻訳が終了する毎に、翻訳済みモジュー
ルのステップ数の合計を前記総ステップ数で割り、その
値を画面に表示するようにしているので、翻訳の進行状
況を表示することが可能となる。さらに、前述した本発
明によれば、機械語プログラムへの翻訳を途中で中断さ
せることができる。
【0016】
【発明の実施の形態】以下、本発明による実行時プログ
ラム翻訳方法の一実施形態を図面により詳細に説明す
る。
【0017】図1は本発明の一実施形態による実行時プ
ログラム翻訳方法を実施する装置の概略構成を示すブロ
ック図である。図1において、110は中央処理装置、
120は主記憶装置、121は基本制御プログラム、1
22は中間語ファイル読み込みプログラム、123は中
間語データ解釈実行プログラム、124は実行時翻訳プ
ログラム、125は機械語データ、126は実行頻度デ
ータ、127は中間語データ、130は入力装置、14
0は表示装置、150は通信装置、160は外部記憶装
置、161は中間語ファイルである。以下に説明する本
発明の一実施形態による実行時プログラム翻訳方法は、
実行頻度の高いモジュールから効率良く翻訳を行うこと
を可能としたものである。
【0018】図1に示す本発明の一実施形態による実行
時プログラム翻訳方法を実施する装置は、中央処理装置
110と、主記憶装置120と、基本制御プログラム1
21と、中間語ファイル読み込みプログラム122と、
中間語データ解釈実行プログラム123と、実行時翻訳
プログラム124と、機械語データ125と、実行頻度
データ126と、中間語データ127と、入力装置13
0と、表示装置140と、通信装置150と、外部記憶
装置160とを備えて構成されている。
【0019】また、本発明の一実施形態による実行時プ
ログラム翻訳方法を実施する装置は、中央処理装置11
0と、主記憶装置120と、マウス、キーボード等の入
力装置130と、ディスプレイとしての表示装置140
と、モデムを含む通信装置150とがバスにより接続さ
れ、さらに、通信装置150、ネットワークを介してハ
ードディスク等の外部記憶装置160が接続されてい
る。
【0020】前述において、主記憶装置120には、基
本制御プログラム121と、中間語ファイル読み込みプ
ログラム122と、中間語データ解釈実行プログラム1
23と、実行時翻訳プログラム124とがロードされて
格納される。また、主記憶装置120には、中間語ファ
イル読み込みプログラムによって生成された中間語デー
タ127、中間語データ解釈実行プログラム123によ
って生成された実行頻度データ126、実行時翻訳プロ
グラム124によって生成された機械語データ125が
格納される。また、外部記憶装置には、中間語ファイル
が格納される。
【0021】基本制御プログラム121は、本発明によ
る方法を実施する装置全体を制御するプログラムであ
り、図示装置が立ち上げられたとき、装置内に備えられ
ているイニシャル・プログラム・ローダーにより、ネッ
トワークを介して即座に外部記憶装置160から主記憶
装置120にロードされ、あるいは、図示しない装置内
のハードディスク等の記憶装置から主記憶装置120に
ロードされ、中央処理装置110によって実行され、装
置のハードウェアとプログラムとの基本制御を行う。
【0022】中間語ファイル読み込みプログラム122
は、通信装置150及びネットワークを介して外部記憶
装置160から中間語ファイル161を読み込み、中間
語データ127を生成するプログラムである。
【0023】中間語データ解釈実行プログラム123
は、中間語プログラムの解釈実行手段であり、中間語デ
ータ127の解釈実行を行うインタプリタのようなプロ
グラムにより構成され、中間語データ127を解釈して
直接実行すると共に、中間語データ127のモジュール
単位の実行回数を計数して実行頻度データ126を生成
する。
【0024】実行時翻訳プログラム124は、プログラ
ム翻訳実行手段であり、実行頻度データ126から最も
実行頻度の高い中間語データのモジュールを選び出し、
機械語データ125に変換するプログラムである。
【0025】機械語データ125は、中央処理装置11
0に直接実行させることが可能な機械語で表現されたプ
ログラムである。
【0026】実行頻度データ126は、中間語データ解
釈実行プログラム123が解釈実行した中間語データの
モジュールの実行回数を格納したデータである。
【0027】中間語データ127は、中間語ファイル1
61を主記憶装置120に読み込んだデータであり、中
間語データ解釈実行プログラム123によって1命令づ
つ解釈実行される。
【0028】中間語ファイル161は、特定の計算機シ
ステムに依存しない仮想的な命令で記述されたプログラ
ムが格納されたファイルである。
【0029】また、中間語ファイル読み込みプログラム
122と、中間語データ解釈実行プログラム123と、
実行時翻訳プログラム124とは、基本制御プログラム
121によって、外部記憶装置160から通信装置15
0及びネットワークを介して主記憶装置120に読み込
まれて中央処理装置110で実行される。
【0030】図2は実行頻度データ126の一例を示す
図である。図2において、200は実行頻度テーブルで
あり、実行頻度テーブル200には、このテーブルに対
応する中間語モジュール300のモジュール名201、
この中間語モジュール300の実行回数202、このテ
ーブル200の中間語モジュールより実行回数が多い中
間語モジュールの実行頻度テーブルへのポインタ20
3、このテーブル200の中間語モジュールより実行回
数が少ない中間語モジュールの実行頻度テーブルへのポ
インタ204が格納される。そして、ポインタにより指
定される各実行頻度テーブルも同様に構成される。すな
わち、実行頻度データ126は、複数の実行頻度テーブ
ル200をポインタで接続した2分探索木の構造を有し
ている。
【0031】図3は中間語データ127の一例を示す図
である。図3において、300は中間語モジュールであ
り、中間語モジュール300は、中間語モジュール30
0のモジュール名301、この中間語モジュール300
に対応する実行頻度データ126へのポインタ302、
中間語モジュール300を翻訳した結果得られる機械語
データ125へのポインタ303、中間語モジュール3
00の中間語プログラムの命令列を格納するデータ領域
304により構成される。そして、中間語データ127
は、複数の中間語モジュール300から構成される。
【0032】図4は機械語データ125の一例を示す図
である。図4において、400は機械語モジュールであ
り、この機械語モジュール400は、複数の機械語命令
を格納したデータ領域により構成される。そして、機械
語データ125は、このような複数の機械語モジュール
400から構成される。
【0033】図5は本発明の一実施形態による翻訳方法
を実行する際の基本制御プログラム121の起動時にお
ける処理手順を説明するフローチャートである。図5に
示すフローは、基本制御プログラム121が、中間語フ
ァイル161を読み込んだ後、中間語解釈実行プログラ
ム123と、実行時翻訳プログラム124とを起動する
処理を示している。このとき、中間語解釈実行プログラ
ム123と、実行時翻訳プログラム124とは並行して
実行される。
【0034】(1)まず、基本制御プログラム121
は、中間語ファイル読み込みプログラム122を起動
し、中間語ファイル読み込みプログラム122の処理が
完了するのを待つ(ステップ501)。 (2)基本制御プログラム121は、中間語ファイル読
み込みプログラム122の処理の完了後、中間語解釈実
行プログラム123を起動する(ステップ502)。 (3)次に、基本制御プログラム121は、実行時翻訳
プログラム124を起動する(ステップ503)。
【0035】図6は中間語ファイル読み込みプログラム
122の処理手順を説明するフローチャートである。図
6に示すフローは、中間語ファイル読み込みプログラム
122が、中間語ファイル161を読み込み、中間語デ
ータ127を生成する処理を示している。
【0036】(1)中間語ファイル読み込みプログラム
122は、図5に説明したステップ501の処理で基本
制御プログラム121により起動されると、通信装置1
50及びネットワークを介して外部記憶装置160から
中間語ファイル161を読み込む(ステップ601)。 (2)次に、中間語ファイル読み込みプログラム122
は、中間語データ127を生成する。ここで、生成しさ
れた中間語データ127は、図3で説明したように、複
数の中間語モジュール300により構成され、中間語フ
ァイル読み込みプログラム122は、各モジュール毎に
モジュール名301に読み込んだモジュール名を格納
し、実行頻度データへのポインタ302と機械語データ
124へのポインタ303とを“0”で初期化し、中間
語プログラム格納領域304に、読み込んだ中間語ファ
イルに格納されている中間語プログラムを書き込む(ス
テップ602)。
【0037】図7は中間語データ実行解釈プログラム1
23の処理手順を説明するフローチャートである。図7
に示すフローは、中間語データ解釈実行プログラム12
3が、中間語データ127の解釈実行を繰り返し、実行
頻度データ127に実行回数を書き込む処理を示してい
る。
【0038】(1)中間語データ解釈実行プログラム1
23は、図5に説明したステップ502の処理で基本制
御プログラム121により起動されると、中間データ1
27から1つだけ中間語モジュール300を選択する。
初期状態では、“MAIN”をモジュール名301に持つ中
間語モジュールを選択する(ステップ701)。
【0039】(2)次に、中間語データ解釈実行プログ
ラム123は、ステップ701で選択した中間語モジュ
ール300が機械語プログラムへ翻訳済みか否かを判定
し、翻訳済みであった場合、ステップ701で選択した
中間語モジュール300に含まれる機械語データへのポ
インタ303が指し示す機械語モジュール400に格納
された機械語プログラムを、基本制御プログラム121
に実行させ、実行終了後ステップ701の処理に戻る
(ステップ702、703)。
【0040】(3)ステップ702の判定でで中間語モ
ジュール300が機械語プログラムへ翻訳済みでないと
判定された場合、中間語データ解釈実行プログラム12
3は、ステップ701で選択した中間語モジュール30
0に含まれる実行頻度テーブルの更新処理を行う(ステ
ップ704)。
【0041】(4)中間語データ解釈実行プログラム1
23は、ステップ701で選択した中間語モジュール3
00に含まれる中間語プログラム304の1命令を読み
込み、その命令が終了命令か否かを判定し、終了命令で
ある場合処理を終了する(ステップ705、706)。
【0042】(5)ステップ706の判定で読み込んだ
命令が終了命令でなかった場合、中間語データ解釈実行
プログラム123は、ステップ705で読み込んだ命令
が呼び出し命令か否かを判定し、その命令が呼び出し命
令であった場合処理を終了し、そうでない場合、ステッ
プ705で読み込んだ命令を直接実行した後、ステップ
705の処理に戻って、次の命令の処理を続ける(ステ
ップ707、708)。
【0043】図8は実行時翻訳プログラム124の処理
手順を説明するフローチャートである。図8に示すフロ
ーは、実行時翻訳プログラム124が、実行頻度データ
126から、実行回数202が最多の実行頻度テーブル
200を選び出し、実行回数202の値があらかじめ設
定された閾値より多いとき、選択した実行頻度テーブル
200に含まれるモジュール名201と同じ名前を持つ
中間語モジュール300の中間語プログラム304を機
械語プログラムに翻訳し、中間語データの機械語モジュ
ールへのポインタ303が指し示す機械語モジュールに
格納する処理を、中断フラグがオンになるまで繰り返す
処理を示している。
【0044】(1)実行時翻訳プログラム124は、図
5に説明したステップ503の処理で基本制御プログラ
ム121により起動されると、図1には示していない中
断フラグがオンであるか判定し、オンであれば処理を終
了する。中断フラグは、入力装置130によって翻訳中
断ボタン1101が選択されたときオンにされる(ステ
ップ801)。
【0045】(2)ステップ801の判定で中断フラグ
がオンでない、すなわち、オフである場合、実行時翻訳
プログラム124は、実行頻度データ126から実行回
数202が最多の実行頻度テーブル200を選び出し、
選び出した実行頻度テーブル200に含まれる実行回数
202が予め設定されている閾値より多いか否か判定す
る(ステップ802、803)。
【0046】(3)ステップ803の判定で実行回数2
02が予め設定されている閾値より少ないと判定された
場合、実行時翻訳プログラム124は、実行時翻訳プロ
グラムによる翻訳の処理を一定時間だけ中断し、ステッ
プ801からの処理に戻り、また、実行回数202が予
め設定されている閾値より多いと判定された場合、ステ
ップ802で選び出した実行頻度テーブル200に含ま
れるモジュール名201と同じ名前を持つ中間語モジュ
ール300を引数に中間語データの機械語データへの翻
訳処理を行う(ステップ804、805)。
【0047】(4)次に、実行時翻訳プログラム124
は、中間語データに含まれる中間語モジュール300の
何割が機械語プログラムに翻訳済みか計算し、翻訳進行
状況の表示処理を行い、図11に示すように、表示装置
140に処理状況を表示して、ステップ801からの処
理に戻る(ステップ806)。
【0048】前述の処理により、モジュールの実行回数
が予め設定されている閾値より少ない場合、そのモジュ
ールについて機械語データへの翻訳を行わないので、効
率的に中間語モジュールの機械語データへの翻訳を行う
ことができる。この場合、実行時翻訳プログラム124
は、本発明による方法を実行する装置が、中間語による
処理を開始した後、モジュールの実行回数が最大となっ
ているモジュールの実行回数が予め設定されている閾値
になるまで処理を開始しないことになる。
【0049】本発明は、前述した処理において、ステッ
プ803、804の処理を行わないようにすることがで
きる。この場合、実行時翻訳プログラム124は、本発
明による方法を実行する装置が、中間語による処理を開
始し、中間語解釈実行プログラム123が最初のモジュ
ールを実行すると、そのモジュールに対応する実行頻度
テーブルの実行回数が“1”とされ、このモジュールが
実行回数最多モジュールとなるので、このモジュールか
ら翻訳の処理を開始する。そして、このモジュールの翻
訳終了までに、中間語解釈実行プログラム123が、複
数のモジュールの実行を行っているとすれば、実行頻度
テーブルが更新されており、実行時翻訳プログラム12
4は、これにより、最も実行頻度の大きいモジュールを
選択して翻訳を続けることになる。
【0050】図9は実行頻度データの更新処理704の
処理手順を説明するフローチャートである。図9に示す
フローは、図7に示すステップ704の実行頻度データ
の更新の処理が、ステップ701で選択した中間語モジ
ュール300と対応する実行頻度テーブル200が生成
されているか否か判定し、生成されていなければ新規に
実行頻度テーブル200を生成し実行回数202を
“1”に初期化し、生成されていれば実行回数202の
値に1を加え、実行頻度データ126に含まれる各実行
頻度テーブル200が実行回数202をキーとする2分
探索木になるように更新する処理を示している。
【0051】(1)図7のステップ704の処理が開始
されると、中間語データ解釈実行プログラム123は、
ステップ701で選択した中間語モジュール300に含
まれる実行頻度テーブルへのポインタ303が指し示す
実行頻度テーブル200を選択し、実行頻度テーブル2
00が生成されているか否かを判定する(ステップ90
1)。
【0052】(2)ステップ901の判定で実行頻度テ
ーブル200が生成されていない場合、中間語データ解
釈実行プログラム123は、新規に実行頻度テーブル2
00を生成し、モジュール名201にステップ701で
選択した中間語モジュールの持つモジュール名を複写
し、実行回数202を“1”として初期化する。また、
実行頻度テーブル200が生成されていた場合、ステッ
プ701で選択した実行頻度テーブル200の実行回数
202の値に1を加える(ステップ902、903)。
【0053】(3)中間語データ解釈実行プログラム1
23は、実行頻度データ126に含まれる各実行頻度テ
ーブル200が、その実行回数202をキーとする2分
探索木を構成するように、ステップ902またはステッ
プ903で更新された実行頻度テーブル200のポイン
タ203とポインタ204とをつなぎ直す。2分探索木
については、例えば、「C言語による最新アルゴリズム
事典」技術評論社等に詳しく説明されている(ステップ
904)。
【0054】図10は中間語データ翻訳処理805の処
理手順を説明するフローチャートである。図10に示フ
ローは、図8に示すステップ805の中間語データ翻訳
処理において、中間語プログラムを機械語プログラムへ
翻訳する処理であり、中間語モジュール300から他の
中間語モジュールへの呼び出し命令がある場合に、呼び
出される中間語モジュール300から先に再帰的に機械
語プログラムに翻訳し、機械語モジュールへのポインタ
303が指し示す機械語モジュール400に格納する処
理を示している。
【0055】(1)図8のステップ805の処理が開始
されると、実行時翻訳プログラム124は、引数で渡さ
れる中間語モジュール300に含まれる中間語プログラ
ム304から中間語命令を1つだけ読み出し、読み出し
た中間語命令が他のモジュールへの呼出し命令か否かを
判定する(ステップ1001、1002)。
【0056】(3)ステップ1002の判定で、読み出
した中間語命令が他のモジュールへの呼出し命令である
場合、呼び出し先の中間語モジュールを引数に中間語デ
ータ翻訳処理805を再帰的に呼び出して、その中間語
モジュールに対する中間語データ翻訳処理を開始させる
(ステップ805)。
【0057】(4)ステップ1002の判定で、読み出
した中間語命令が他のモジュールへの呼出し命令でなか
った場合、実行時翻訳プログラム124は、ステップ1
001で読み出した中間語命令を機械語命令に変換し機
械語モジュール400に書き込む(ステップ100
3)。
【0058】(5)次に、実行時翻訳プログラム124
は、ステップ1001で引数として渡された中間語モジ
ュール300に含まれる中間語モジュール300に未処
理の中間語命令が残っているか判定し、残っている場
合、ステップ1001の処理に戻り、次の中間語命令に
対する処理を続ける(ステップ1004)。
【0059】(6)ステップ1004の判定で、未処理
の中間語命令が残っていなかった場合、実行時翻訳プロ
グラム124は、ステップ1003で生成された機械語
モジュール400を指し示すポインタを、機械語モジュ
ールへのポインタ303に格納する(ステップ100
5)。
【0060】図11は翻訳進行状況表示処理806にお
ける画面表示の一例を示す図である。図11において、
1101は翻訳中断ボタン、1102は翻訳進行状況メ
ータである。そして、翻訳中断ボタン1101は、実行
時翻訳の中断を利用者が入力装置130を使って指示す
るための利用者インタフェースであり、翻訳進行状況メ
ータ1102は、実行時翻訳の進行状況を利用者に提示
するための利用者インタフェースである。
【0061】図11に示す処理状況の表示は、行わない
ようにすることもできる。また、処理状況の表示は、中
間語プログラムの実行中に表示されるものであるため、
プログラムの処理結果等の表示の邪魔にならないよう
に、表示画面の空き領域、例えば、画面下部に表示すれ
ばよく、あるいは、画面の左右側の一方に縦長に表示す
るようにすることもできる。
【0062】以上、本発明を一実施形態に基づいて具体
的に説明したが、本発明は、前述の実施形態に限定され
るものではなく、その要旨を逸脱しない範囲において種
々変更可能である。
【0063】また、前述した本発明の一実施形態は、機
械語プログラムへの翻訳が行われるプログラムが中間語
プログラムであるとして説明したが、本発明は、ソース
プログラムを機械語プログラムに翻訳する場合にも適用
することができる。
【0064】前述した本発明の一実施形態によれば、中
間語モジュールの実行頻度の計数処理と並行して前記実
行頻度データから実行頻度の高いモジュールを選び出
し、実行頻度の高いモジュールから優先的に機械語プロ
グラムに翻訳するようにしているため、翻訳によって得
られた実行頻度の高い機械語プログラムをハードウェア
によって効率よく実行することができ、システムの実行
性能を向上させることができる。
【0065】また、本発明の一実施形態によれば、頻度
数によって機械語プログラムへの翻訳を行うか否かを設
定することができるため、不必要な翻訳を行わないよう
にすることができる。
【0066】また、前述した本発明の一実施形態によれ
ば、読み込んだソースプログラムまたは中間語プログラ
ムの総ステップを記録し、モジュール単位の機械語プロ
グラムへの翻訳が終了する毎に、翻訳済みモジュールの
ステップ数の合計を前記総ステップ数で割り、その値を
画面に表示するようにしているので、翻訳の進行状況を
表示することが可能となる。さらに、前述した本発明の
一実施形態によれば、機械語プログラムへの翻訳を途中
で中断することができる。
【0067】
【発明の効果】以上説明したように本発明によれば、ソ
ースプログラムまたは中間語プログラムの実行頻度の高
いモジュールから機械語への翻訳を行っているので、翻
訳処理による実行処理の高速化の効果を得ることが可能
である。
【0068】また、実行頻度の低いモジュールの翻訳処
理を抑制することができるので、翻訳時間の短縮とメモ
リ使用量の削減とを図ることができる。
【0069】また、本発明によれば、翻訳処理の進行状
況を表示することができるので、翻訳に要する時間を類
推でき、利用者の待ち状態での心理的負担を軽減するこ
とが可能になる。
【0070】さらに、本発明によれば、翻訳処理を中断
することができるので、利用者の判断で待ち時間を短縮
することが可能になる。
【図面の簡単な説明】
【図1】本発明の一実施形態による実行時プログラム翻
訳方法を実施する装置の概略構成を示すブロック図であ
る。
【図2】実行頻度データの一例を示す図である。
【図3】中間語データの一例を示す図である。
【図4】機械語データの一例を示す図である。
【図5】本発明の一実施形態による翻訳方法を実行する
際の基本制御プログラムの起動時における処理手順を説
明するフローチャートである。
【図6】中間語ファイル読み込みプログラムの処理手順
を説明するフローチャートである。
【図7】中間語データ実行解釈プログラムの処理手順を
説明するフローチャートである。
【図8】実行時翻訳プログラムの処理手順を説明するフ
ローチャートである。
【図9】実行頻度データの更新処理の処理手順を説明す
るフローチャートである。
【図10】中間語データ翻訳処理の処理手順を説明する
フローチャートである。
【図11】翻訳進行状況表示処理における画面表示の一
例を示す図である。
【符号の説明】
110 中央処理装置 120 主記憶装置 121 基本制御プログラム 122 中間語ファイル読み込みプログラム 123 中間語データ解釈実行プログラム 124 実行時翻訳プログラム 125 機械語データ 126 実行頻度データ 127 中間語データ 130 入力装置 140 表示装置 150 通信装置 160 外部記憶装置 161 中間語ファイル 200 実行頻度テーブル 300 中間語モジュール 301 モジュール名 400 機械語モジュール 1101 翻訳中断ボタン 1102 翻訳進行状況メータ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平7−168718(JP,A) 特開 平1−162933(JP,A) 特開 平9−34725(JP,A) 特開 平6−250828(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/44

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の電子計算機に共通のソースプログ
    ラムまたは中間語プログラムを解釈実行すると共に、計
    算機固有の機械語プログラムへ翻訳する実行時プログラ
    ム翻訳方法において、ソースプログラムまたは中間語プ
    ログラムを解釈実行する解釈実行手段と、前記ソースプ
    ログラムまたは中間語プログラムをモジュール単位に機
    械語プログラムに翻訳するプログラム翻訳手段とを備
    え、前記解釈実行手段は、前記ソースプログラムまたは
    中間語プログラムの解釈実行中に、モジュール単位でそ
    のモジュールが実行された回数を計数して実行頻度デー
    タを生成し、前記プログラム翻訳手段は、前記解釈実行
    手段によるソースプログラムまたは中間語プログラムの
    解釈実行と並行して、最も実行回数の多いモジュールを
    実行頻度データから選び出し、そのモジュールを機械語
    プログラムへ翻訳することを特徴とする実行時プログラ
    ム翻訳方法。
  2. 【請求項2】 前記解釈実行手段は、前記実行頻度デー
    タが予め指定した閾値より低いモジュールの機械語プロ
    グラムへの翻訳を行わないことを特徴とする請求項1記
    載の実行時プログラム翻訳方法。
  3. 【請求項3】 機械語プログラムへの翻訳の進行状況を
    表示する翻訳進行状況表示手段をさらに備えることを特
    徴とする請求項1または2記載のプログラム翻訳方法。
  4. 【請求項4】 前記機械語プログラムへの翻訳は、途中
    で中断可能であることを特徴とする請求項1、2または
    3記載の実行時プログラム翻訳方法。
JP04568897A 1997-02-28 1997-02-28 実行時プログラム翻訳方法 Expired - Lifetime JP3538292B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP04568897A JP3538292B2 (ja) 1997-02-28 1997-02-28 実行時プログラム翻訳方法
US09/030,280 US20010011369A1 (en) 1997-02-28 1998-02-25 Object time program translation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04568897A JP3538292B2 (ja) 1997-02-28 1997-02-28 実行時プログラム翻訳方法

Publications (2)

Publication Number Publication Date
JPH10240546A JPH10240546A (ja) 1998-09-11
JP3538292B2 true JP3538292B2 (ja) 2004-06-14

Family

ID=12726336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04568897A Expired - Lifetime JP3538292B2 (ja) 1997-02-28 1997-02-28 実行時プログラム翻訳方法

Country Status (2)

Country Link
US (1) US20010011369A1 (ja)
JP (1) JP3538292B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5520326B2 (ja) * 1999-01-28 2014-06-11 エーティーアイ・テクノロジーズ・ユーエルシー コンピュータのメモリを参照する方法およびコンピュータ
US6332216B1 (en) * 1999-03-09 2001-12-18 Hewlett-Packard Company Hybrid just-in-time compiler that consumes minimal resource
JP2001056764A (ja) * 1999-08-18 2001-02-27 Access:Kk 仮想計算機の実行方法および装置
JP2002169696A (ja) * 2000-12-04 2002-06-14 Mitsubishi Electric Corp データ処理装置
JP3472775B2 (ja) * 2001-10-31 2003-12-02 株式会社アプリックス 中間コード実行システム、中間コード実行方法および中間コード実行プログラム
US7509485B2 (en) * 2002-09-04 2009-03-24 Chou Hui-Ling Method for loading a program module in an operating system
JP4846226B2 (ja) * 2004-10-26 2011-12-28 株式会社日立ソリューションズ 情報処理装置、情報処理方法、およびプログラム
JP2011100388A (ja) * 2009-11-09 2011-05-19 Fujitsu Ltd トレース情報収集装置,トレース情報処理装置,およびトレース情報収集方法

Also Published As

Publication number Publication date
JPH10240546A (ja) 1998-09-11
US20010011369A1 (en) 2001-08-02

Similar Documents

Publication Publication Date Title
US9405777B2 (en) Registry emulation
JP4712877B2 (ja) 並列プロセッサのためのタスクマネージャ
JP5167589B2 (ja) アプリケーションサーバ装置および仮想マシンプログラム
US5577250A (en) Programming model for a coprocessor on a computer system
US8453121B2 (en) Managing the tracing of the execution of a computer program
US7543301B2 (en) Shared queues in shared object space
JP2006294046A (ja) 情報処理装置
JPH0644085A (ja) アクセスを実行する方法及び装置並びにコンピュータシステム
JPH11237989A (ja) 休止中にバイトコード最適化を実行する方法及び装置
JPH09101883A (ja) オブジェクト指向通信フレームワーク・システム,およびオブジェクト指向プログラム・フレームワークを使用する複数のアプリケーション・プログラムの構築方法
JP2006277758A (ja) 通信方法
JPS60176143A (ja) プログラム呼び出し装置
TW200921509A (en) Techniques for switching threads within routines
JP4086791B2 (ja) コンパイラプログラム、動的コンパイラプログラム、再現コンパイラプログラム、再現コンパイラ、コンパイル方法、及び記録媒体
US20040199732A1 (en) System and method for processing high priority data elements
JP2009157684A (ja) 仮想化プログラム、シミュレーション装置、仮想化方法
JP3538292B2 (ja) 実行時プログラム翻訳方法
US7865883B1 (en) Parallel and asynchronous debugger and debugging method for multi-threaded programs
JP2821345B2 (ja) 非同期i/o制御方式
JPWO2012131933A1 (ja) 情報処理装置、プログラム、および解析方法
US11681527B2 (en) Electronic device and multiplexing method of spatial
EP0867811A1 (en) Accounting-information outputting device
JP2927102B2 (ja) 命令列切り替え方法及びそれを用いた演算プロセッサ
JP2747164B2 (ja) ソフトウェア・シミュレータ
GB2362246A (en) Computer system with checkpoint facility.

Legal Events

Date Code Title Description
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: 20040309

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040319

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: 20090326

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090326

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100326

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110326

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110326

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120326

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130326

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130326

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140326

Year of fee payment: 10

EXPY Cancellation because of completion of term