JPS5922143A - 高速インタプリタ方式 - Google Patents

高速インタプリタ方式

Info

Publication number
JPS5922143A
JPS5922143A JP13038782A JP13038782A JPS5922143A JP S5922143 A JPS5922143 A JP S5922143A JP 13038782 A JP13038782 A JP 13038782A JP 13038782 A JP13038782 A JP 13038782A JP S5922143 A JPS5922143 A JP S5922143A
Authority
JP
Japan
Prior art keywords
operator
code
address
interpreter
internal code
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
JP13038782A
Other languages
English (en)
Inventor
Yoshie Matsuzaki
松崎 吉衛
Seiji Hata
清治 秦
Yasuichiro Ogawa
小川 靖一郎
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 JP13038782A priority Critical patent/JPS5922143A/ja
Publication of JPS5922143A publication Critical patent/JPS5922143A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明は、ソースプログラムを内部コードに変換し、そ
の解釈・実行をする計算機において、特に高速実行をは
かるだめの高速インタプリタ方式%式% この種の計算機におけるインタプリタ方式は、一般にソ
ースプログラムを大体そのままの形で内部コード化し、
インタプリタ動作時(例えば、中火処理装置がインタプ
リタプログラムを実行する時。以下同じ。)に当該内部
コードの構文解釈をするようにしていた。
したがって、高級言語を使用して対話型でプログシム開
発等をすることができるという長所を有していた。
しかじから、その内部コードの解釈・処理が当該実行時
のオーバヘッドとなり、例えばコンパイラによって生成
される機械語を実行する方式(コンパイラ方式)に比べ
、その実行速度が大幅に(3桁程度)遅いという問題が
あった。
本発明の目的は、上記した従来技術の欠点をなりシ、高
級言語を対話形で使用しうるという長所を保持したまま
、実行速度を大幅に向上することができる高速インタプ
リタ方式を提供することにある。
本発明に係る高速インタプリタ方式の構成は、ソースプ
ログラムを内部コードに変換するだめのトランスレータ
と、その内部コードの解釈・実行をするためのインタプ
リタとを備え、当該プログラムの実行・処理を行う機能
を有する計算機において、ソースプログラムの構文解釈
をし、当該オペレータ・オペランドの各組を実行順に所
定の内部コードに展開・変換し、そのオペレータコード
をオペレータ処理プログラムの当該アドレス値そのもの
とし、または所定の対応をさせてバッファリングをして
おくことにより、インタプリタ動作時に当該オペレータ
コードを取シ出して当アドレスヘノジャンプをするのみ
で当該オペレータ処理プログラムを実行しつるようにし
たものである。
なお、オペレータコードをオペレータ処理プログラムの
当該アドレス値と所定の対応をさせてバッファリングを
する場合、その対応を示すアドレステーブルをインタプ
リタ内に有するようにするものである。
また、内部コードのバッファリングのアドレスをポスト
インクリメント間接修飾機能のポインタレジスタに保持
し、その内容の取出しごとに上記アドレス更新を自動的
に行いつるようにもしたものである。
以下、本発明の実施例を図に基づいて説明する。
第1図は、本発明に係る高速インタプリ方式の一実施例
の方式構成図、第2図は、その内部コード実行状態図、
第3図は、同内部コード解釈・実行機構図である。
ここで、■は、ソースプログラムの構文解釈をして後述
する所定の内部コードへの変換を行うトランスレータ、
2ば、上記内部コードのバッファリングを行う内部コー
ドバッファ、3は、内部コードバッファ2から内部コー
ドを取り出し、その解釈・実行をするインタプリタ、4
は、中央処理装ff (CPU )、4 aは、そのポ
インタレジスタ、4bは、同オペレータコードレジスタ
である。
まず、ソースプログラムは、それが例えば第2図(a)
に示すような演算式A、 = B 十Cであると、第2
図(b)に示すように、トランスレータ1によって実行
順に5個の各内部コード要素゛ロードA″。
′″ゞゞフリジユロシトB′ブツシュロードC”。
II 、 II 、  tt =″に展開された内部コ
ードに変換される。なお、実際には各変数欄において当
該データは後述のアドレスを表示している。
ここで、”ロード″、′ブツシュロードは、変数名(上
記例ではA、B、C)というオペランドを有するオペレ
ータであり、また、”十’″。
−″は、オペランドを有しないオペレータである。
また、この内部コードの実行方法は、第2図(C)に示
すように、まず、゛ロードA ″でCPU4の演算レジ
タに変数Aのアドレスを入れ、゛ブツシュロードB I
Iで当該内容(変数Aのアドレス)をスタックにつめて
変数Bの値を上記演算レジスタに入れ、次いで、″ブツ
シュロードC″で当該内容(変数Bの値)をスタックに
つめて変数Cの値を上記演算レジスタに入れ、更に I
I +11でスタックされている変数Bの値を取り出し
て演算レジスタに加え(変数Cの値に変数Bの値を加算
してB+Cの値を求め)、最後に II = jlで当
該加算結果を当該スタックの内容が示すアドレス(変数
Aのアドレス)へ格納するというようになる。
次に、内部コードのオペレータを解釈し、当該オペレー
タ処理プログラムの実行について説明する。
内部コードは、前述のようにトランスレータ1によって
ソースプログラムから変換された後、内部コードバッフ
ァ2に格納されている。
CPU4のポインタレジスタ4aは、処理中の内部コー
ドのアドレスを保持しておき、同オペレータコードレジ
スタ41)は、ポインタレジスタ4aを使用して取り出
したオペレータコードを保持しておくようにする。
しだがって、例えば、第3図に示すように、ポインタレ
ジスタ4aが内部コードバッファ2のアドレス≠102
(”ブツシュロート″のオペレータコード1toO)を
指しているとすると、そのオペレータコード1100が
オペレータコードレジスタ4bに取シ込まれる。
ここで、ポインタレジスタ4aは、ポストインクリメン
ト間接修飾機能により、その内容が自動的に更新され、
当該オペランドである変数Bの一アドレス≠103を指
すようになる。
インタプリータ3において、オペレータ処理プログラム
は、オペレータコードレジスタ41)の値が指示するア
ドレス≠1100ヘジャンプする。
これを先頭アドレスとして当該プツンユロード演算処理
が第2図で説明したように実行され、次のオペレータ(
アドレス+104)の解釈をし、その部分へジャンプが
行われる。
すなわち、そのオペレータが再び゛ブツシュロード″で
同一のオペレータコード1100であるので、再び上述
と同様にオペレータ処理プロゲラ中のアドレス+110
0を先頭とするブツシュロード演算処理が実行される。
その次のオペレータは、アドレス≠105のtt+y+
で、そのコードが1200であるので、インタプリータ
3において、そのオペレータ処理プログラムは、アドレ
ス≠1200から始まる十演算処理ヘジャンプする。
このように、各オペレータ処理部の最後は、ポインタレ
ジスタ4a、オペレータコードレジスタ41)を操作し
て次のオペレータ処理部ヘンヤンプする命令となってお
り、内部コードバッファ2中のオペレータの出現順に各
オペレータ処理部間を遷移することによシ、内部コード
の解釈・実行をすることができる。
第4図は、本発明に係る高速インタプリタ方式の他の実
施例の内部コード解釈・実行機構図であって、その方式
構成図、内部コード実行状態図は、前述の第1図、第2
図をそのまま用いることができる。
この実施例においては、インタプリタ3中にオペレータ
処理プログラムの各処理部の先頭アドレスとオペレータ
コードとの対応を示すアドレステーブルが設けられてお
り、そのアドレス(例えば、ナ10.20,30.40
)が内部コードにおける各オペレータコード(例えば、
10,20゜30.40)となっている。
したがって、オペレータコードレジスタ4bの内容は、
凸該オペレータ処理部の先頭アドレスが格納されている
アドレステーブルのアドレスを指すことになる。
すなわち、オペレータ処理プログラムは、このアドレス
テーブルの内容を取り出して当該アドレスへジャンプを
し、前述と同様に実行される。
この実施例においては、オペレータコードがオペレータ
処理プログラムの先頭アドレスと直接に対応していない
ので、同プログラムのアドレスが変更されても、その都
度オペレータコードまで変更する必要がなく、上記アド
レステーブルの書替えだけで済むという利点がある。
以上、いずれの実施例においても、ソースプログラムか
ら変換して得た内部コードをオペレータ・オペランドの
組に展開して内部コード解釈・実行時の負荷を軽減し、
また、オペレータコードをオペレータ処理プログラムの
当該先頭アドレスに対応させて同プログラムのジャンプ
を容易化しているので、インタプリタの実行速度を大幅
に向上することができる。ちなみに、例えばCPUとし
て汎用の16ビツトのマイクロプロセッサを使用した場
合、整数演算が数マイクロ秒程度となシ、従来方式と比
べると同−CPUで約1桁程度の高速化が得られる。
以上、詳細に説明したように、本発明によれば、高級言
語を対活形で使用し、実行速度を大幅に向上することが
できるので、この種の計算機が使用されるシステムの効
率向上、経済化、サービス性向上等に顕著な効果が得ら
れる。
【図面の簡単な説明】
第1図は、本発明に係る高速インタプリタ方式の一実施
例の方式構成図、第2図は、その内部コード実行状態図
、第3図は、同内部コード解釈・実行機構図、第4図は
、本発明に係る高速インタプリタ方式の他の実施例の内
部コード解釈・実行機構図である。 1・・・トランスレータ、2・・・内部コードバッファ
、3・・・インタプリタ、4・・・CPU0代理人 弁
理士 福田幸作 (ほか1名) 岸I 固 芽2 目 (沈) A=F3fC <b) (C) ゛ロート′ハ“フ′/シO−F’S”’7;LユローF
どパす″    −″、#3 図

Claims (1)

  1. 【特許請求の範囲】 1、ソースプログラムを内部コード罠変換するだめのト
    ランスレータと、その内部コードの解釈・実行をするだ
    めのインタプリタとを備え、当該プログラムの実行・処
    理を行う機能を有する計算機において、ソースプログラ
    ムの構文解釈をし、当該オペレータ・オペランドの各組
    を実行順に所定の内部コードに展開・変換し、そのオペ
    レータコードをオペレータ処理プログラムの当該アドレ
    ス値そのものとし、または所定の対応をさせてバッファ
    リングをしておくことにより、インタプリタ動作時に当
    該オペレータコードを取り出して該当アドレスへのジャ
    ンプをするのみで当該オペレータ処理プログラムを実行
    しうるようにすることを特徴とする高速インタプリタ方
    式。 2、特許請求の範囲第1項記載のものにおいて、オペレ
    ータコードとオペレータ処理プログラムにおける当該ア
    ドレスとの対応を示すアドレステーブルをインタプリタ
    内に有するようにした高速インタプリタ方式。 3、特許請求の範囲第1項寸たは第2項記載のものにお
    いて、内部コードのバッファリングのアドレスをポスト
    インクリメント間接修飾機能のポインタレジスタに保持
    し、その内容の取出しごとに上記アドレス更新を自動的
    に行いうるようにした高速インタプリタ方式。
JP13038782A 1982-07-28 1982-07-28 高速インタプリタ方式 Pending JPS5922143A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13038782A JPS5922143A (ja) 1982-07-28 1982-07-28 高速インタプリタ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13038782A JPS5922143A (ja) 1982-07-28 1982-07-28 高速インタプリタ方式

Publications (1)

Publication Number Publication Date
JPS5922143A true JPS5922143A (ja) 1984-02-04

Family

ID=15033102

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13038782A Pending JPS5922143A (ja) 1982-07-28 1982-07-28 高速インタプリタ方式

Country Status (1)

Country Link
JP (1) JPS5922143A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6433633A (en) * 1987-07-30 1989-02-03 Mitsubishi Electric Corp Programmable controller
JPH01134551A (ja) * 1987-11-20 1989-05-26 Nec Corp データ通信端末装置
EP0388077A3 (en) * 1989-03-15 1993-10-13 Texas Instruments Incorporated Method of optimizing the execution speed of an interpreted test language

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5412532A (en) * 1977-06-29 1979-01-30 Sharp Corp Interpreter system of program computer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5412532A (en) * 1977-06-29 1979-01-30 Sharp Corp Interpreter system of program computer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6433633A (en) * 1987-07-30 1989-02-03 Mitsubishi Electric Corp Programmable controller
JPH01134551A (ja) * 1987-11-20 1989-05-26 Nec Corp データ通信端末装置
EP0388077A3 (en) * 1989-03-15 1993-10-13 Texas Instruments Incorporated Method of optimizing the execution speed of an interpreted test language

Similar Documents

Publication Publication Date Title
US8020154B2 (en) Precise handling of exceptions during program code conversion
JP3193650B2 (ja) オペレーティング・システムに影響を与えないエミュレーション・コンテキストの保管と復元を行う方法およびシステム
US8214815B2 (en) Reducing the run-time cost of invoking a server page
JPH0769833B2 (ja) 多言語最適化コンパイラ内のシンボル テーブル構成用インタフェイス
JPH056894B2 (ja)
US6467037B1 (en) Utilizing a program counter with one or more data counters for executing instructions
JPS5922143A (ja) 高速インタプリタ方式
EP1875339A2 (en) Method and apparatus for precise handling of exceptions during program code conversion
JP2000122876A (ja) 情報処理装置
Steinbusch Designing Hardware to Interpret Virtual Machine Instructions
JPH06266553A (ja) 計算機システム
JP3330767B2 (ja) 情報処理装置および情報処理装置におけるトレース取得方法
TW480445B (en) Method for downloading application programs on the compiler system platform of an electronic communication device
JPS5829051A (ja) 演算処理装置
JPH05250150A (ja) シーケンス制御装置
JPS63186333A (ja) 局所的分岐命令に対する命令のスケジユ−リング処理方式
JPS6275734A (ja) エミユレ−シヨン方式
JPH02263240A (ja) 字句解析方式
JP2003216443A (ja) 中間コード実行装置および方法
JPH08115221A (ja) Cコンパイラ
JPS5493942A (en) High-level language program executing unit
JP2007265319A (ja) データ処理方法および装置
JPH04153741A (ja) 被デバッグプログラムのデバッグにおける逆方向実行方式
JPH04266126A (ja) サブルーチンコール制御方式
JPS62212734A (ja) 中間コ−ドプログラムの実行方式