JPH09231088A - プログラム変換実行装置およびその方法 - Google Patents

プログラム変換実行装置およびその方法

Info

Publication number
JPH09231088A
JPH09231088A JP8039802A JP3980296A JPH09231088A JP H09231088 A JPH09231088 A JP H09231088A JP 8039802 A JP8039802 A JP 8039802A JP 3980296 A JP3980296 A JP 3980296A JP H09231088 A JPH09231088 A JP H09231088A
Authority
JP
Japan
Prior art keywords
program
instruction
translated
jump
instructions
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.)
Pending
Application number
JP8039802A
Other languages
English (en)
Inventor
Yoshihiro Saiga
好宏 雑賀
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.)
NEC Solution Innovators Ltd
Original Assignee
NEC Software Chubu 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 NEC Software Chubu Ltd filed Critical NEC Software Chubu Ltd
Priority to JP8039802A priority Critical patent/JPH09231088A/ja
Publication of JPH09231088A publication Critical patent/JPH09231088A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 異なる機種の実行形式プログラムが自機種上
でインタラクティブに高速実行する装置および方法。 【解決手段】 プログラムをインタラクティブに高速実
行するプログラム変換実行装置20は、翻訳前のプログ
ラムファイル21と、該プログラムファイル21をプロ
グラム領域241に展開する入力手段22と、翻訳済プ
ログラムを格納する翻訳済プログラム領域242と、翻
訳前のプログラムをインタラクティブに逐次翻訳実行し
て翻訳済プログラムファイル242に格納して保存し、
翻訳実行時に繰返して利用するインタプリタ実行手段2
3と、翻訳済プログラム領域242の翻訳済プログラム
を翻訳済プログラムファイル26に出力する出力手段2
5と、を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、プログラムをイ
ンタプリタによって実行するプログラム変換実行装置と
その方法に関し、特にプログラムの繰返し実行のとき、
インタプリタによって翻訳済プログラムを保存して再利
用するプログラム変換実行装置とその方法に関する。
【0002】
【従来の技術】従来、ある機種で動作している実行形式
プログラムを、機械語の異なる異機種で動作させるに
は、該プログラムを再コンパイルする方法と、該プログ
ラムの命令を逐次にインタラクティブに実行するインタ
プリタ方法と、がある。コンパイルする方法は、プログ
ラムを実行する以前に、実行するコンピュータシステム
の機械語命令にソースプログラムを完全に翻訳してしま
い、実行する際にはその翻訳後の実行形式プログラムを
実行する。インタプリタ方法は、プログラムを実行する
際に、インタプリタがプログラムを1ステップづつ遂次
に入力し、直接命令を翻訳して実行する方法である。
【0003】
【発明が解決しようとする課題】コンパイラによる方法
では、異なる機械語の機種で動作させる場合、全ソース
プログラムの再翻訳が必須であり、プログラムモジュー
ルが全て集められない場合には、ソースプログラムを作
り直すことがある。その理由は、ソースプログラムを翻
訳してから実行形式プログラムを単純に実行するからで
ある。インタプリタによる方法では、異なる機械語の機
種で動作させる場合、実行速度が遅いことである。その
理由は、1命令毎に自システムに合う機械語命令に翻訳
しながら処理を実行しており、また、一度インタプリタ
で処理した翻訳命令を保存して再利用していないため、
プログラムを繰返し利用する度に、再度1命令毎翻訳し
なければならないからである。
【0004】
【課題を解決するための手段】この発明の目的は、イン
タプリタによって翻訳されたプログラムをメモリ上に記
憶させておき、再度プログラムを実行するとき、翻訳し
た命令が再利用されて、再翻訳の手間が省けるプログラ
ム変換実行装置およびその方法にある。
【0005】そのため、この発明の異機種で動作する実
行形式プログラムをメモリに展開し、前記プログラムの
命令を自機種で動作する翻訳済命令に遂次に翻訳して実
行するプログラム変換実行装置において、翻訳実行前の
プログラムあるいは翻訳実行による命令変更を施された
プログラムを格納するプログラムファイルと、前記プロ
グラムファイルから前記プログラムを読み込み、メモリ
のプログラム領域に展開する入力手段と、前記プログラ
ム領域のプログラムを逐次に翻訳実行した結果の翻訳済
命令からなる翻訳済プログラムを格納する翻訳済プログ
ラム領域と、前記プログラム領域のプログラムと前記翻
訳済プログラム領域の翻訳済プログラムを関係付ける変
更を前記プログラムおよび前記翻訳済プログラムに施し
ながら、逐次に取得した命令を翻訳実行し、翻訳済プロ
グラムをメモリの翻訳済プログラム領域に格納するイン
タプリタ実行手段と、前記翻訳済プログラム領域の翻訳
済プログラムを翻訳済プログラムファイルに格納する出
力手段と、を備えることを特徴とする。
【0006】更にこの発明の異機種で動作する実行形式
プログラムをメモリに展開し、前記プログラムの命令を
逐次に自機種で動作する翻訳済命令に翻訳して実行する
プログラム変換実行装置のプログラム変換実行方法にお
いて、1回目のプログラム実行ではプログラム領域から
先頭命令を取得し、1回目以外のプログラム実行では先
行命令が指定する次命令を取得する第1のステップと、
前記命令が翻訳済であるか否かを判定する第2のステッ
プと、前記第2のステップの判定が翻訳済命令であると
き、前記翻訳済命令を実行する第3のステップと、実行
した命令がジャンプ命令であるとき、前記ジャンプ命令
が指定するジャンプ先の命令を次命令に、前記実行した
命令がジャンプ命令以外のときは、前記命令に続く命令
を次命令に指定する第4のステップと、前記次命令が終
了であるか否かを判定し、前記判定が終了でないとき、
次命令を取得する第1のステップに戻る第5のステップ
と、前記第2のステップの判定が翻訳済命令でないと
き、前記命令が無条件ジャンプ命令であるか否かを判定
する第6のステップと、前記第6のステップの判定が無
条件ジャンプ命令であるとき、前記無条件ジャンプ命令
を翻訳して実行し、翻訳済プログラム領域に格納する第
7のステップと、前記第6のステップの判定が無条件ジ
ャンプ命令でないとき、条件ジャンプ命令であるか否か
を判定する第8のステップと、前記第8のステップの判
定で条件ジャンプ命令であるとき、前記条件ジャンプ命
令を翻訳して実行し、翻訳済プログラム領域に格納する
第9のステップと、前記翻訳済条件ジャンプ命令の次命
令にジャンプ元に戻る無条件ジャンプ命令を挿入する第
10のステップと、前記第8のステップの判定が条件ジ
ャンプ命令でないとき、前記命令を翻訳して実行し、翻
訳済プログラム領域に格納する第11のステップと、次
命令が既に翻訳済であるか否かを判定する第12のステ
ップと、前記第12のステップの判定で翻訳済であると
き、前記翻訳済命令を指定する無条件ジャンプ命令に置
換える第13のステップと、を実行することを特徴とす
る。
【0007】インタプリタ実行手段は、異機種で動作し
ていた実行形式プログラムを1命令毎、遂次に翻訳実行
する。該翻訳実行と並行して、インタプリタ実行手段
は、翻訳された命令をメモリに保存する。該プログラム
が再び実行されるとき、インタプリタ実行手段は、メモ
リに保存されている翻訳済プログラムを、実行済みでな
いプログラム部分は、翻訳済プログラムから無条件ジャ
ンプ命令で未実行のプログラム部分に戻り、翻訳実行す
る。したがって、再実行時、翻訳済プログラムを利用し
て再翻訳の手間を省き、該プログラムのプログラム変換
実行が高速化される。
【0008】
【発明の実施の形態】次に、この発明について図面を参
照して詳細に説明する。
【0009】この発明の一実施例の構成を示す図1を参
照すると、プログラム変換実行装置20は、異機種で動
作する実行形式プログラムファイル21を入力し、メモ
リ24のプログラム領域241に展開する入力手段22
と、プログラム領域241のプログラムを逐次に取得し
て、インタラクティブ処理を行うインタプリタ実行手段
23と、翻訳されたプログラム部分が展開されるメモリ
24の翻訳済プログラム領域242と、翻訳済プログラ
ム領域242のプログラムを翻訳済プログラムファイル
26に出力する出力手段25と、を有する。
【0010】このプログラム変換実行装置20が実行す
る方法の一実施例を示す図2を参照すると、インタプリ
タ実行手段20が、プログラム領域241のプログラム
の先頭命令あるいは先行命令が指定する命令を取得する
第1のステップと、該命令が翻訳済みか否かを判定する
第2のステップと、翻訳済命令を実行する第3のステッ
プと、該翻訳済命令によって指定される次命令に進む第
4のステップと、プログラムの終了か否かを判定する第
5のステップと、第1のステップで取得した命令が翻訳
済みでないとき、無条件ジャンプであるか否かを判定す
る第6のステップと、該無条件ジャンプ命令を翻訳実行
する第7のステップと、該命令が無条件ジャンプでない
とき、条件ジャンプであるか否かを判定する第8のステ
ップと、該命令が条件ジャンプであるとき、該条件ジャ
ンプを翻訳実行する第9のステップと、翻訳済の条件ジ
ャンプの次命令に戻り無条件ジャンプ命令を挿入する第
10のステップと、該命令が条件ジャンプ命令でないと
き、該命令を翻訳実行する第11のステップと、次命令
が翻訳済であるか否かを判定する第12のステップと、
翻訳済命令であるとき、無条件ジャンプ命令に置換える
第13のステップと、を含む。
【0011】次に、この実施例の動作について、プログ
ラム領域241のプログラムを図2の方法によって、プ
ログラム変換実行する第1回目のプログラム変換状況を
示す図3と、第2回目のプログラム変換状況を示す図4
と、第3回目以降のプログラム変換状況を示す図5と、
を参照して説明する。プログラムファイル21から入力
手段22によって、プログラム領域241に展開した図
3のプログラムの命令31乃至39をインタプリタ実行
手段23は1命令毎遂次に取得して翻訳し、実行する。
【0012】先ず、プログラム変換実行方法を適用する
前のプログラム状況を示す図3の命令31乃至39か
ら、インタプリタ実行手段23によって、先頭の「命令
1」31が取得される(ステップ1)。インタプリタ実
行手段23は、「命令1」31が翻訳済命令でなく(ス
テップ2のN)、かつ無条件ジャンプでなく(ステップ
6のN)、更に条件ジャンプでないので(ステップ8の
N)、「命令1」31を翻訳して、翻訳済プログラム領
域242の「命令1′」41に格納して実行する(ステ
ップ11)。「命令1」31は、1回目の実行であるの
で、翻訳済プログラムと関係付けるため「翻訳後(00
0)へジャンプ」31に置換する。
【0013】「命令1」31の次命令は翻訳済みでない
ので(ステップ12のN)、次命令の「命令2」32に
進み(ステップ4)、かつ終了でないので(ステップ5
のN)、「命令2」32を取得する(ステップ1)。
「命令2」32および「比較命令」33は、上述の「命
令1」31と同様のステップで、それぞれ「命令2′」
42および「比較命令′」43に翻訳実行されて、翻訳
済プログラム領域に格納される。インタプリタ実行手段
23は、「条件ジャンプ」34を取得すると(ステップ
1)、翻訳済でなく(ステップ2のN)、無条件ジャン
プでなく(ステップ6のN)、条件ジャンプであるので
(ステップ8のY)、「条件ジャンプ」34を翻訳実行
して、翻訳済プログラム領域242に「条件ジャン
プ′」44を格納し(ステップ9)、次命令として戻り
ジャンプ命令の「戻り(0010)へジャンプ」441
を挿入する(ステップ10)。「条件ジャンプ′」44
の実行結果によって、次命令の「命令5」37に進み
(ステップ4)、終了でないので(ステップ5のN)、
次命令の「命令5」37を取得する(ステップ1)。イ
ンタプリタ実行手段23は「命令5」37を翻訳実行し
て、「命令5′」47として翻訳済プログラム領域24
2に格納する。次命令「条件ループ」38は、条件ジャ
ンプであるので(ステップ8のY)、「条件ループ」3
8を翻訳実行し(ステップ9)、「命令5′」47と
「条件ループ′」48のループを抜けたときの戻りジャ
ンプ命令「戻り(0020)へジャンプ」481を挿入
する(ステップ10)。次命令は「終了」39であるの
で(ステップ4)、終了する(ステップ5のY)。
【0014】次に2回目のプログラム実行においては、
図4の先頭命令「翻訳後(0000)へジャンプ」31
を取得し(ステップ1)、翻訳済であるので(ステップ
2のY)、該命令を実行して(ステップ3)、次命令を
翻訳済プログラム領域242の「命令1′」41を取得
する(ステップ1)。「命令1′」41は翻訳済であり
(ステップ2のY)、そのまま実行する(ステップ
3)。「命令1′」41の次命令「命令2′」42、次
次命令「比較命令′」43と逐次に実行して、「条件ジ
ャンプ′」44を実行し(ステップ3)、次命令の「戻
り(0010)へジャンプ」441に進み(ステップ
4)、「戻り(0010)へジャンプ」441を取得し
(ステップ1)、翻訳済であり(ステップ2のY)、該
命令を実行する(ステップ3)。該命令のジャンプ先で
ある「命令3」35を次命令として(ステップ4)、取
得する(ステップ1)。インタプリタ実行手段23は、
「命令3」35が翻訳済でなく(ステップ2のN)、無
条件ジャンプでなく(ステップ6のN)、かつ条件ジャ
ンプでないので(ステップ8のN)、「命令3」35を
「命令3′」50に翻訳実行して格納する(ステップ1
1)。「命令3」35の次命令は、第1回目のプログラ
ム実行で翻訳済であるので(スップ12のY)、次命令
の「命令4」36を無条件ジャンプ「翻訳後(001
E)へジャンプ」361に置換える(ステップ13)。
次命令は、「翻訳後(001E)へジャンプ」361で
あるので(ステップ4)、該命令を取得する(ステップ
1)。該命令は翻訳済でなく(ステップ2のN)、無条
件ジャンプであるので(ステップ6のY)、翻訳実行し
て「(001E)へジャンプ」1を格納する(ステップ
7)。次命令は、「(001E)へジャンプ」51であ
るので(ステップ4)、「命令4′」46を取得し(ス
テップ1)、翻訳済であるので(ステップ2のY)、該
命令を実行する(ステップ3)。「命令4′」46,
「命令5′」47,「条件ループ」48,「0036へ
ジャンプ」481,「終了′」49は翻訳済の命令であ
り、逐次に実行して終了する(ステップ5のY)。
【0015】第3回目以降のプログラム実行において
は、図5に示されるように、プログラム領域241の命
令31乃至39の先頭の「翻訳後(0000)へジャン
プ」31から翻訳済プログラム領域242の先頭命令
「命令1′」41にジャンプして、直ちに翻訳済命令の
プログラムが実行される。また、図5の例に示されるよ
うに、第3回目のプログラムに実行で、翻訳前の命令3
1乃至39に翻訳実行していない命令は残っておらず、
全て翻訳済の命令41乃至51でプログラム実行され
る。
【0016】
【発明の効果】以上の説明のように、この発明によれ
ば、インタプリタ実行手段によって、翻訳された命令を
保存し、プログラムの繰返し実行時、翻訳済プログラム
を走行させて、利用することにより、インタプリタによ
るプログラム実行が高速化できる。
【図面の簡単な説明】
【図1】この発明の一実施例のプログラム変換実行装置
の構成を示す図である。
【図2】この発明のプログラム変換実行方法を示すフロ
ーチャートである。
【図3】インタプリタ実行手段による第1回目の翻訳実
行の命令の状況を説明する図である。
【図4】インタプリタ実行手段による第2回目の翻訳実
行の命令の状況を説明する図である。
【図5】インタプリタ実行手段による第3回目以降の翻
訳実行の命令の状況を説明する図である。
【符号の説明】
20 プログラム変換実行装置 21 プログラムファイル 22 入力手段 23 インタプリタ実行手段 24 メモリ 25 出力手段 26 翻訳済プログラムファイル 241 プログラム領域 242 翻訳済プログラムファイル

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 異機種で動作する実行形式プログラムを
    メモリに展開し、前記プログラムの命令を自機種で動作
    する翻訳済命令に遂次に翻訳して実行するプログラム変
    換実行装置において、 翻訳実行前のプログラムあるいは翻訳実行による命令変
    更を施されたプログラムを格納するプログラムファイル
    と、 前記プログラムファイルから前記プログラムを読み込
    み、メモリのプログラム領域に展開する入力手段と、 前記プログラム領域のプログラムを逐次に翻訳実行した
    結果の翻訳済命令からなる翻訳済プログラムを格納する
    翻訳済プログラム領域と、 前記プログラム領域のプログラムと前記翻訳済プログラ
    ム領域の翻訳済プログラムを関係付ける変更を前記プロ
    グラムおよび前記翻訳済プログラムに施しながら、逐次
    に取得した命令を翻訳実行し、翻訳済プログラムをメモ
    リの翻訳済プログラム領域に格納するインタプリタ実行
    手段と、 前記翻訳済プログラム領域の翻訳済プログラムを翻訳済
    プログラムファイルに格納する出力手段と、 を備えることを特徴とするプログラム変換実行装置。
  2. 【請求項2】 異機種で動作する実行形式プログラムを
    メモリに展開し、前記プログラムの命令を逐次に自機種
    で動作する翻訳済命令に翻訳して実行するプログラム変
    換実行装置のプログラム変換実行方法において、 1回目のプログラム実行ではプログラム領域から先頭命
    令を取得し、1回目以外のプログラム実行では先行命令
    が指定する次命令を取得する第1のステップと、 前記命令が翻訳済であるか否かを判定する第2のステッ
    プと、 前記第2のステップの判定が翻訳済命令であるとき、前
    記翻訳済命令を実行する第3のステップと、 実行した命令がジャンプ命令であるとき、前記ジャンプ
    命令が指定するジャンプ先の命令を次命令に、前記実行
    した命令がジャンプ命令以外のときは、前記命令に続く
    命令を次命令に指定する第4のステップと、 前記次命令が終了であるか否かを判定し、前記判定が終
    了でないとき、次命令を取得する第1のステップに戻る
    第5のステップと、 前記第2のステップの判定が翻訳済命令でないとき、前
    記命令が無条件ジャンプ命令であるか否かを判定する第
    6のステップと、 前記第6のステップの判定が無条件ジャンプ命令である
    とき、前記無条件ジャンプ命令を翻訳して実行し、翻訳
    済プログラム領域に格納する第7のステップと、 前記第6のステップの判定が無条件ジャンプ命令でない
    とき、条件ジャンプ命令であるか否かを判定する第8の
    ステップと、 前記第8のステップの判定で条件ジャンプ命令であると
    き、前記条件ジャンプ命令を翻訳して実行し、翻訳済プ
    ログラム領域に格納する第9のステップと、 前記翻訳済条件ジャンプ命令の次命令にジャンプ元に戻
    る無条件ジャンプ命令を挿入する第10のステップと、 前記第8のステップの判定が条件ジャンプ命令でないと
    き、前記命令を翻訳して実行し、翻訳済プログラム領域
    に格納する第11のステップと、 次命令が既に翻訳済であるか否かを判定する第12のス
    テップと、 前記第12のステップの判定で翻訳済であるとき、前記
    翻訳済命令を指定する無条件ジャンプ命令に置換える第
    13のステップと、 を実行することを特徴とするプログラム変換実行方法。
JP8039802A 1996-02-27 1996-02-27 プログラム変換実行装置およびその方法 Pending JPH09231088A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8039802A JPH09231088A (ja) 1996-02-27 1996-02-27 プログラム変換実行装置およびその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8039802A JPH09231088A (ja) 1996-02-27 1996-02-27 プログラム変換実行装置およびその方法

Publications (1)

Publication Number Publication Date
JPH09231088A true JPH09231088A (ja) 1997-09-05

Family

ID=12563096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8039802A Pending JPH09231088A (ja) 1996-02-27 1996-02-27 プログラム変換実行装置およびその方法

Country Status (1)

Country Link
JP (1) JPH09231088A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013156971A (ja) * 2012-02-01 2013-08-15 Internatl Business Mach Corp <Ibm> コンパイル方法、プログラムおよび情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013156971A (ja) * 2012-02-01 2013-08-15 Internatl Business Mach Corp <Ibm> コンパイル方法、プログラムおよび情報処理装置

Similar Documents

Publication Publication Date Title
JPH04307625A (ja) ループ最適化方法及び装置
JP2002259135A (ja) プログラムの最適化方法及びこれを用いたコンパイラ
JP2000020114A (ja) モーションコントローラのプログラム作成および実行方法
JPH09231088A (ja) プログラム変換実行装置およびその方法
JP3318051B2 (ja) 翻訳処理方法
CN117009178A (zh) 一种源码迁移过程可执行文件的监控方法
JPH08123697A (ja) エミュレーション高速化方式
JPH10187461A (ja) 言語処理方式
JPH11212807A (ja) プログラム実行方法
JP2008269529A (ja) デバッグ支援装置
JPH11195011A (ja) 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体
JPH0210429A (ja) プログラム構造化処理方式
JPH1124940A (ja) エミュレーション処理方式
JPH01194053A (ja) コマンドプロシジャの処理方式
JPH0659933A (ja) コード変換装置
JPH0573335A (ja) プログラムの自動インライン展開方式
JPH08115220A (ja) ループ最適化方法
JPH03144830A (ja) 並列処理方式
JPH064348A (ja) プログラムデバッグ方式
JPH05165510A (ja) ロボット制御装置
JPH0223428A (ja) コマンド型エンドユーザ言語の翻訳型実行方式
JPH06119203A (ja) デバック行削除装置
JPH05173798A (ja) Sスクリプトファイル実行装置
JPH0695887A (ja) コンパイラ装置
JPH0612259A (ja) コンパイラ処理方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19990907