JPH05216684A - プログラム実行装置および実行方法 - Google Patents

プログラム実行装置および実行方法

Info

Publication number
JPH05216684A
JPH05216684A JP4021056A JP2105692A JPH05216684A JP H05216684 A JPH05216684 A JP H05216684A JP 4021056 A JP4021056 A JP 4021056A JP 2105692 A JP2105692 A JP 2105692A JP H05216684 A JPH05216684 A JP H05216684A
Authority
JP
Japan
Prior art keywords
code
keyword
intermediate language
sentence
source program
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.)
Withdrawn
Application number
JP4021056A
Other languages
English (en)
Inventor
Hiroyuki Sugimoto
裕之 杉本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP4021056A priority Critical patent/JPH05216684A/ja
Publication of JPH05216684A publication Critical patent/JPH05216684A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】ソースプログラム10を中間言語のコードに変換
して,それを解釈し実行するインタプリタ方式によるプ
ログラム実行装置および実行方法に関し, 翻訳した中間
コードを再利用することにより翻訳時間を減らし, イン
タプリタの実行性能を向上させることを目的とする。 【構成】ソースプログラム10中の文または文の列を一意
的に識別するためのキーワードと中間言語に変換したコ
ードとを対応させて管理する中間コード管理部13を設
け,翻訳部12は,キーワードを使用することにより,一
度実行した文または文の列の中間言語に変換したコード
を再利用する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は,ソースプログラムを中
間言語のコードに変換して,それを解釈し実行するイン
タプリタ方式によるプログラム実行装置および実行方法
に関する。
【0002】高水準プログラミング言語で記述されたプ
ログラムの実行形態として,そのソースプログラムを事
前に実行形式のコードに変換しておき,それを実行する
コンパイラ方式と,入力したソースプログラムを翻訳し
直ちに実行するインタプリタ方式とがある。一般にイン
タプリタ方式による実行は,コンパイラ方式による場合
に比べて処理時間が長くかかるので,その高速化が望ま
れている。
【0003】
【従来の技術】高水準プログラミング言語を計算機で実
行する場合,計算機プログラムを実行時に翻訳して実行
するインタプリタは,コンパイラによって実行形式のコ
ードに変換し,それを計算機で直接実行する方式に比べ
て,柔軟で使いやすいという特長を持っている。しか
し,実行時に翻訳を行うために,インタプリタの実行性
能は,コンパイラによる方式に比べてかなり悪いのが一
般的である。
【0004】
【発明が解決しようとする課題】本発明は上記問題点の
解決を図り,インタプリタにおいて翻訳した中間言語の
コード(以下,中間コードと呼ぶ)を再利用することに
より,翻訳時間を減らし,インタプリタの実行性能を上
げることを目的としている。
【0005】
【課題を解決するための手段】図1は本発明の基本構成
図である。インタプリタ処理装置11は,CPUおよび
メモリなどからなる装置であり,高水準プログラミング
言語で記述されたソースプログラム10を翻訳し実行す
る装置である。本発明に係るインタプリタ処理装置11
は,翻訳部12,実行部15,中間コード管理部13お
よび中間コード記憶部14を備えている。
【0006】翻訳部12は,翻訳・実行単位となるソー
スプログラム10中の文または文の列と,それをソース
プログラム10で一意的に識別できるようなキーワード
を読み込み,文または文の列を中間コードに変換する。
中間コードとは,機械語命令列によるコードまたは実行
しやすい形に変換された所定の内部規約によるコードで
ある。実行部15は,その中間コードを解釈して実行す
る処理手段である。
【0007】中間コード記憶部14は,中間コードをキ
ーワードと共に記憶しておく部分である。中間コード管
理部13は,キーワードを使って,中間コード記憶部1
4内にある中間コードを検索したり,中間コード記憶部
14内に中間コードとキーワードとを保存したりする処
理手段である。
【0008】翻訳部12は,ソースプログラム10中の
翻訳単位である文または文の列を入力すると共に,それ
をソースプログラム10中で一意的に識別するキーワー
ドを入力または作成する。そして,中間コード管理部1
3による処理により,キーワードを用いて,中間言語に
変換したコードを検索し,中間コード記憶部14に保存
されているか否かを調べる。
【0009】検索した結果,中間言語に変換したコード
がない場合に,翻訳部12は,入力した翻訳単位の文ま
たは文の列を中間言語のコードに変換し,その変換結果
をキーワードと共に,中間コード管理部13の処理によ
り保存する。
【0010】検索した結果,中間言語に変換したコード
がある場合には,中間コード管理部13により,中間言
語のコードを中間コード記憶部14から取り出す。実行
部15は,中間言語に変換したコードを解釈し実行す
る。
【0011】以上のように,ソースプログラム10にお
ける既に実行した文または文の列に関する中間言語のコ
ードを,中間コード記憶部14に保存し,同じキーワー
ドが出現した場合に,その中間言語のコードを再利用す
る。
【0012】
【作用】インタプリタ処理装置11は,入力したソース
プログラム10中の文または文の列を翻訳した中間コー
ドを,キーワードにより管理する機構を持つ。一度実行
した文に対応する中間コードを,キーワードと共に中間
コード記憶部14に保存し,同じ文を再び実行する場合
には,保存しておいた中間コードを取り出して実行す
る。したがって,一度実行した文に対する翻訳処理が不
要になり,繰り返し文の中の文のように,何度も実行さ
れる文を高速に実行することができるようになる。
【0013】
【実施例】図2は本発明の実施例フローチャートを示
す。以下,図2に示す処理〜に従って説明する。
【0014】 まず,翻訳部12が,次の実行単位と
なる文と,ソースプログラム10中で一意的に識別する
ためのキーワードを入力する。なお,キーワードをソー
スプログラム10とは別に入力するのではなく,ソース
プログラム10から抽出するなどの処理により,翻訳部
12が自動生成するようにしてもよい。
【0015】 翻訳部12は,中間コード記憶部14
に,キーワードに対応する中間コードが存在するかどう
かを,中間コード管理部13に問い合わせる。 中間コードが中間コード記憶部14に存在すれば,
処理へ進み,存在しなければ,処理へ進む。
【0016】 翻訳部12は,入力した文の翻訳を行
い,中間コードを生成する。 翻訳結果の中間コードとキーワードとを中間コード
管理部13に送り,それらを中間コード記憶部14に格
納して記憶する。その後,処理へ進む。
【0017】 中間コード記憶部14に該当する中間
コードが存在する場合,翻訳部12は,中間コード管理
部13の処理により,キーワードに対応する中間コード
を取り出す。
【0018】 翻訳部12から実行部15へ中間コー
ドを送り,実行部15は中間コードを解釈実行する。実
行部15の処理は,従来と同様である。図3は本発明の
実施例を説明するためのソースプログラムの例を示す
図,図4は図3に示すソースプログラムが扱うテーブル
構造の例を示す図である。また,図5は本発明の実施例
の構成図である。
【0019】図3の(イ)はソースプログラムであり,
(ロ)はそれに付与されたキーワードの例である。キー
ワードは,対応するソースコードと同じ行番号位置
(1:〜6:)に書かれている。この例では,キーワー
ドは,複数のキーの組になっている。最初の数字はキー
の数で,それ以降に複数のキーがコンマで区切って並べ
られる。このソースプログラムは,図4の(ロ)に示す
テーブルTBL2のカラムの内容に従って,テーブルT
BL1のカラムを更新するプログラムである。
【0020】図5において,図1と同符号のものは図1
に示すものに対応し,50はインタプリタ制御部,51
はソースコードを中間コードに変換する変換部,52は
キーワードによるハッシュ表,53は中間コードを記憶
する中間コード記憶域を表す。
【0021】B1およびB2は,インタプリタに入力さ
れたソースプログラムのコードおよびそのキーワードを
保持するためのバッファである。また,B3は中間コー
ドを一時的に保持するバッファである。インタプリタ制
御部50は,インタプリタ全体の動作を制御する。変換
部51は,インタプリタ制御部50の指示により,入力
されたソースコードをバッファB1から読み込んで中間
コードに変換し,バッファB3に格納する。
【0022】実行部15は,インタプリタ制御部50の
指示により,バッファB3の内容を取り出して実行する
部分である。また,中間コード管理部13は,インタプ
リタ制御部50の指示に従い,中間コード記憶部14内
の中間コードの検索や中間コードの保存を行う。中間コ
ード記憶部14は,保存している中間コードをキーワー
ドによって高速に検索できるように,ハッシュ表52と
中間コード記憶域53の2つに分かれている。
【0023】次に,図3に示すソースプログラムの例に
従って,図5に示すインタプリタの動作を説明する。図
3の(イ)に示すソースプログラムは,データベース検
索言語としてよく知られているSQL言語風に記述され
たもので,1〜6の各行は,以下のような処理内容にな
っている。
【0024】 1: テーブルTBL1の内容を表示する。 2: テーブルTBL2の内容を表示する。 3: テーブルTBL2のカラムXのすべての値(X
の値をxとする),について次の文を実行する。
【0025】4〜5:テーブルTBL1において,カラ
ムAの値がカラムBとカラムCの値の和より小さいよう
な行に対して,カラムxの値を1だけ小さくする。 6: テーブルTBL1の内容を表示する。
【0026】(1) まず,インタプリタは,1:の文「S
ELECT * FROM TBL1;」と,それに対
応するキーワード「2,SELECT,TBL1」を入
力して,それぞれバッファB1とバッファB2に格納す
る。
【0027】(2) 中間コード管理部13は,バッファB
2の内容を読み込んで,中間コード記憶部14の中に,
バッファB2の内容をキーに持つ中間コードがあるかど
うかを検索する。
【0028】(3) 最初は,中間コードが記憶されていな
いので,検索に失敗し,インタプリタ制御部50に検索
が失敗したことが通知される。インタプリタ制御部50
は,変換部51にバッファB1の内容を中間コードに変
換することを指示する。
【0029】(4) 変換部51は,バッファB1の内容を
読み込んで,それを中間コードに変換し,バッファB3
に格納する。 (5) 上記処理(3) で検索が失敗しているので,インタプ
リタ制御部50は,中間コード管理部13に,バッファ
B2とB3の内容を中間コード記憶部14に保存するよ
う指示する。
【0030】(6) 中間コード管理部13は,バッファB
2とB3の内容を読み込んで,バッファB3の内容を中
間コード記憶域53に保存し,また,バッファB2の内
容をキーとして,対応する中間コードが検索できるよう
にハッシュ表52を更新する。
【0031】(7) 次に,インタプリタ制御部50は,実
行部15にバッファB3の内容を実行するように指示す
る。 (8) 実行部15は,バッファB3の内容を読み込み,実
行する。
【0032】以上で,1:の文の実行が完了する。2:
の文も同様である。次に,6:の文のように,既に同じ
キーワードを持つ文(この例では1:の文)が実行され
ているような場合について説明する。
【0033】(1) 〜(2) は,上記1:の文の処理と同様
である。 (3) バッファB2の内容と同じキーワードを持つ中間コ
ードの検索に成功するので,検索に成功したことがイン
タプリタ制御部50に通知される。
【0034】(4) インタプリタ制御部50は,中間コー
ド管理部13に,バッファB2のキーワードに対応する
中間コードを,バッファB3に格納するように指示す
る。 (5) 中間コード管理部13は,バッファB2に対応した
中間コードをバッファB3に格納する。
【0035】(6) インタプリタ制御部50は,実行部1
5に対し,バッファB3の内容を実行するように指示す
る。 (7) 実行部15は,バッファB3の内容を実行する。
【0036】以上のように,同じキーワードを持つ文
は,中間コードへの翻訳処理を省略して,実行すること
ができる。また,この実施例では,図3に示す4:〜
5:のUPDATE文のように,キーワード自体に変数
xを指定することもできる。この場合には,バッファB
2に読み込まれたキーワードを使用して,中間コード管
理部13が中間コードを検索する際に,キーワード中の
xを現在のxの値で置き換えて,キーワード検索を行
う。このようにすることにより,実行時でないと実行文
が決まらないような動的なプログラムの実行でも,中間
コードの再利用が可能になる。
【0037】ソースプログラムに対するキーワードの指
定は,必ずしもすべての文に対して行う必要はなく,翻
訳に時間がかかるような特定の文または繰り返し実行さ
れるような文に対してのみ行うようにしてもよい。
【0038】例えば,データベースの検索要求があった
場合に,その検索プログラムを,他の言語で記述された
プログラムにより動的に作成して,そのインタプリタを
呼び出すことにより実行する,いわゆる動的SQLと呼
ばれるような言語処理系においては,あらかじめ検索内
容が決まっている静的SQLとは違い,コンパイラによ
る実行方式を採ることはできない。したがって,このよ
うな場合に本発明を適用すると,検索処理の高速化に効
果がある。この例のような場合,キーワードをプログラ
ム作成時に自動付与することも可能である。
【0039】
【発明の効果】以上説明したように,本発明によれば,
中間言語方式のインタプリタでプログラムを実行する場
合に,繰り返し実行する文または文の列の翻訳が一度で
済むため,インタプリタの実行性能が向上する。また,
本発明では,実行前に中間コードに翻訳して中間コード
を再利用する方式に比べ,実行時に翻訳することが可能
であるため,より柔軟な中間コードの再利用が可能にな
る。
【図面の簡単な説明】
【図1】本発明の基本構成図である。
【図2】本発明の実施例フローチャートである。
【図3】本発明の実施例を説明するためのソースプログ
ラムの例を示す図である。
【図4】図3に示すソースプログラムが扱うテーブル構
造の例を示す図である。
【図5】本発明の実施例の構成図である。
【符号の説明】
10 ソースプログラム 11 インタプリタ処理装置 12 翻訳部 13 中間コード管理部 14 中間コード記憶部 15 実行部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラム(10)を中間言語のコー
    ドに変換して,それを解釈し実行するインタプリタ方式
    によるプログラム実行装置において,ソースプログラム
    中の文または文の列を中間言語に変換したコードを,そ
    の文または文の列をソースプログラム中で一意的に識別
    するためのキーワードと共に記憶する中間コード記憶部
    (14)と,前記キーワードを使用し,前記中間コード記憶
    部への中間言語に変換したコードの保存および取り出し
    を行う中間コード管理部(13)と,ソースプログラムの文
    または文の列を入力し,その文または文の列に関するキ
    ーワードに対応する中間言語に変換したコードが既に前
    記中間コード記憶部に記憶されていれば,それを前記中
    間コード管理部によって取り出し,前記中間コード記憶
    部に記憶されていなければ,入力した文または文の列を
    中間言語のコードに変換して,その変換結果を前記中間
    コード管理部によって前記中間コード記憶部に保存する
    翻訳部(12)と,前記翻訳部から通知された中間言語のコ
    ードを解釈して実行する実行部(15)とを備えたことを特
    徴とするプログラム実行装置。
  2. 【請求項2】 ソースプログラム(10)を中間言語のコー
    ドに変換して,それを解釈し実行するインタプリタ方式
    によるプログラム実行方法において,ソースプログラム
    中の翻訳単位である文または文の列を入力し,かつそれ
    をソースプログラム中で一意的に識別するキーワードを
    入力または作成する処理過程と,前記キーワードによっ
    て,中間言語に変換したコードを検索し,所定の記憶域
    に保存されているか否かを調べる処理過程と,検索した
    結果,中間言語に変換したコードがない場合に,入力し
    た翻訳単位の文または文の列を中間言語のコードに変換
    し,その変換結果をキーワードと共に所定の記憶域に保
    存する処理過程と,検索した結果,中間言語に変換した
    コードがある場合に,それを所定の記憶域から取り出す
    処理過程と,中間言語に変換したコードを解釈し実行す
    る処理過程とを備え,ソースプログラムにおける既に実
    行した文または文の列に関する中間言語のコードを再利
    用することを特徴とするプログラム実行方法。
JP4021056A 1992-02-06 1992-02-06 プログラム実行装置および実行方法 Withdrawn JPH05216684A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4021056A JPH05216684A (ja) 1992-02-06 1992-02-06 プログラム実行装置および実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4021056A JPH05216684A (ja) 1992-02-06 1992-02-06 プログラム実行装置および実行方法

Publications (1)

Publication Number Publication Date
JPH05216684A true JPH05216684A (ja) 1993-08-27

Family

ID=12044254

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4021056A Withdrawn JPH05216684A (ja) 1992-02-06 1992-02-06 プログラム実行装置および実行方法

Country Status (1)

Country Link
JP (1) JPH05216684A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019036043A (ja) * 2017-08-10 2019-03-07 オムロン株式会社 制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019036043A (ja) * 2017-08-10 2019-03-07 オムロン株式会社 制御装置

Similar Documents

Publication Publication Date Title
US4943933A (en) Method for translating data base to knowledge and apparatus therefor
US5132901A (en) System and method for input of target language equivalents and determination of attribute data associated therewith
US7974968B2 (en) Direct call threaded code
JPH05204983A (ja) リレーショナルデータベース処理装置および処理方法
JPH05216684A (ja) プログラム実行装置および実行方法
JP2991142B2 (ja) 動的部品化機能付き構造化文書データベースシステム
JP3881405B2 (ja) 機械翻訳システム
JP2642787B2 (ja) 中断位置検索方式
JP3501303B2 (ja) データベース問合せ文のコンパイラ方式
JPH1185755A (ja) 機械翻訳装置、機械翻訳方法および機械翻訳用記録媒体
JPH07244601A (ja) 関係データベースのアクセス方法および装置
JPH0377166A (ja) 表現変換方式
JPH07262198A (ja) 文書検索装置
JP2011210193A (ja) 機械翻訳装置および機械翻訳プログラム
JPH038070A (ja) キーワード抽出方式
JPH0433058A (ja) 機械翻訳装置
JPH0488531A (ja) コード最適化方式
JPH07105014A (ja) 言語処理システムのシンボル処理方式
KR20010058764A (ko) 망관리 데이터의 동적 통계방법
JPS63138426A (ja) プログラム生成方式
JPH11238012A (ja) メモリアクセス一括化方法および記憶媒体
JPH06231169A (ja) 翻訳例文検索装置
JPH0695888A (ja) 問題向き言語コンパイラ処理方式
JPH06110935A (ja) リレーショナルデータベース管理システム
JPH0365729A (ja) 一括翻訳方式

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19990518