JPH02308336A - プログラム実行方式 - Google Patents
プログラム実行方式Info
- Publication number
- JPH02308336A JPH02308336A JP13056689A JP13056689A JPH02308336A JP H02308336 A JPH02308336 A JP H02308336A JP 13056689 A JP13056689 A JP 13056689A JP 13056689 A JP13056689 A JP 13056689A JP H02308336 A JPH02308336 A JP H02308336A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- data area
- data
- operand
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 2
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は動的にデータアドレスを解決するプログラムの
実行に関し、特に高速にデータをアクセスする方式に関
する。
実行に関し、特に高速にデータをアクセスする方式に関
する。
(従来の技術)
従来の方式では、データアドレスが未解決であるプログ
ラムの実行において、プログラム中の1オブジエクト命
令を実行するごとにオブジェクト命令に含まれる変数オ
ペランド内の変数名で、変数とデータエリアとを対応づ
ける変数名テーブルを走査して、変数のデータエリアへ
のアドレスを得てデータをアクセスしていた。
ラムの実行において、プログラム中の1オブジエクト命
令を実行するごとにオブジェクト命令に含まれる変数オ
ペランド内の変数名で、変数とデータエリアとを対応づ
ける変数名テーブルを走査して、変数のデータエリアへ
のアドレスを得てデータをアクセスしていた。
(発明が解決しようとする課題)
上述した従来の方式では、動的に変数オペランドのデー
タアドレスを解決する処理において、変鮫のデータをア
クセスするために、各オブジェクト命令を実行する度に
変数名テーブルを走査してデータアドレスを得ているの
で、変数名テーブルに登録する変数が増加するに伴って
次第にオブジェクト命令の実行時間が増加するという欠
点があった。
タアドレスを解決する処理において、変鮫のデータをア
クセスするために、各オブジェクト命令を実行する度に
変数名テーブルを走査してデータアドレスを得ているの
で、変数名テーブルに登録する変数が増加するに伴って
次第にオブジェクト命令の実行時間が増加するという欠
点があった。
本発明の目的は、1個のオブジェクト命令に含まれる変
数オペランドに対して当該変数のデータエリアへのアク
セスが初回であるか否かを判定し、初回であった場合、
変数とデータエリアとを対応づけるための変数名テーブ
ル上の変数エントリを走査し、当該変数と対応する変数
エントリが存在しなかった場合には当該変数用のデータ
エリアを確保して対応する変数エントリを変数名テーブ
ルに登録するとともに、1個のオブジェクト命令に含ま
れる変数オペランド内の変数名をデータエリアへのアド
レスに置換し、変数オペランド内のデータアドレスから
当該変数に対応するデータエリアをアクセスする。とれ
Kよって上記欠点を除去し、オブジェクト命令の実行時
間の増加がないように構成したプログラム実行方式を提
供することにある。
数オペランドに対して当該変数のデータエリアへのアク
セスが初回であるか否かを判定し、初回であった場合、
変数とデータエリアとを対応づけるための変数名テーブ
ル上の変数エントリを走査し、当該変数と対応する変数
エントリが存在しなかった場合には当該変数用のデータ
エリアを確保して対応する変数エントリを変数名テーブ
ルに登録するとともに、1個のオブジェクト命令に含ま
れる変数オペランド内の変数名をデータエリアへのアド
レスに置換し、変数オペランド内のデータアドレスから
当該変数に対応するデータエリアをアクセスする。とれ
Kよって上記欠点を除去し、オブジェクト命令の実行時
間の増加がないように構成したプログラム実行方式を提
供することにある。
(課題を解決するための手段)
本発明によるプログラム実行方式は、ソースプログラム
を翻訳して生成したオブジェクトプログラム中の1個の
オブジェクト命令に含まれる変数オペランドのデータア
ドレスが未解決であるプログラムのプログラム実行方式
であって、判定手段と、走査手段と、登録手段と、置換
手段と、アクセス手段とを具備して構成したものである
。
を翻訳して生成したオブジェクトプログラム中の1個の
オブジェクト命令に含まれる変数オペランドのデータア
ドレスが未解決であるプログラムのプログラム実行方式
であって、判定手段と、走査手段と、登録手段と、置換
手段と、アクセス手段とを具備して構成したものである
。
判定手段は、1個のオブジェクト命令に含まれる変数オ
ペランドに対して当該変数のデータエリアへのアクセス
が初回であるか否かを判定するためのものである。
ペランドに対して当該変数のデータエリアへのアクセス
が初回であるか否かを判定するためのものである。
走査手段は、初回であった場合、変数とデータエリアを
対応づけるための変数名テーブル上の変数エントリを走
査するためのものである。
対応づけるための変数名テーブル上の変数エントリを走
査するためのものである。
登録手段は、当該変数に対応する変数エントリが存在し
なかった場合に、当該変数用のデータエリアを確保して
対応する変数エントリを変数名テーブルに登録するため
のものである。
なかった場合に、当該変数用のデータエリアを確保して
対応する変数エントリを変数名テーブルに登録するため
のものである。
置換手段は、1個のオブジェクト命令に含まれる変数オ
ペランド内の変数名をデータエリアへのアドレスに置換
するためのものである。
ペランド内の変数名をデータエリアへのアドレスに置換
するためのものである。
アクセス手段は、変数オペランド内のデータアドレスか
ら当該変数に対応するデータエリアをアクセスするため
のものである。
ら当該変数に対応するデータエリアをアクセスするため
のものである。
(実施例)
次に1本発明について図面を参照して説明する。
第1図は、本発明によるプログラム実行方式を示す流れ
図である。
図である。
ステップ11では、1個のオブジェクト命令の実行で変
数オペランドが現れた場合に、当該変数オペランドのデ
ータアクセスが初回であるか否かを判定する。
数オペランドが現れた場合に、当該変数オペランドのデ
ータアクセスが初回であるか否かを判定する。
第2図は、オブジェクト命令に含まれる変数オペランド
の形式を表している。第2図において、!1はオペラン
ドIDフィールド、!!2はオペランドステータスフィ
ールド、23はデータ長フィールド、24は変数毛長、
25は変数名/データアドレスフィールドである。
の形式を表している。第2図において、!1はオペラン
ドIDフィールド、!!2はオペランドステータスフィ
ールド、23はデータ長フィールド、24は変数毛長、
25は変数名/データアドレスフィールドである。
第1図において、ステップ11の判定はオペランドステ
ータスフィールド32を用いて行う。オペランドステー
タスフィールド22の初期値はオフであシ、オフである
か否かにより初回であるか否かを判定する。
ータスフィールド32を用いて行う。オペランドステー
タスフィールド22の初期値はオフであシ、オフである
か否かにより初回であるか否かを判定する。
第8図は、変数名テーブル31と、変数エントリの形式
と、データエリアテーブル32との関連を表した説明図
である。第8図に〉いて、33は変数名エリア、34は
データアドレスエリア、55はX格納エリア、36はa
drl格納エリア、s7はデータエリアである。変数名
テーブル上の一つの変数エントリは変数名エリア33と
、その変数のデータエリア37への対応を表わすデータ
アドレスエリアs4とで構成されている。
と、データエリアテーブル32との関連を表した説明図
である。第8図に〉いて、33は変数名エリア、34は
データアドレスエリア、55はX格納エリア、36はa
drl格納エリア、s7はデータエリアである。変数名
テーブル上の一つの変数エントリは変数名エリア33と
、その変数のデータエリア37への対応を表わすデータ
アドレスエリアs4とで構成されている。
ステップ12では、ステップ11の判定で初回であった
場合、ステップ12では変数名テーブル31上で変数オ
ペランドに含まれる変数名フィールド25と一致する変
数名エリア33を待つ変数エントリの存在を判定する。
場合、ステップ12では変数名テーブル31上で変数オ
ペランドに含まれる変数名フィールド25と一致する変
数名エリア33を待つ変数エントリの存在を判定する。
変数名フィールド25に対応する変数二ントリが存在し
ていなかった場合、データエリアテーブル32上の空き
領域に、データ長フィールド2′5で示すデータエリア
とデータ長を保持するためのエリアとを確保し、変数名
テーブル51に変数名とデータエリアへの対応を表わす
データアドレスとから成る新しい変数工/トリを追加す
る。これがステップ13である。
ていなかった場合、データエリアテーブル32上の空き
領域に、データ長フィールド2′5で示すデータエリア
とデータ長を保持するためのエリアとを確保し、変数名
テーブル51に変数名とデータエリアへの対応を表わす
データアドレスとから成る新しい変数工/トリを追加す
る。これがステップ13である。
ステップ14では、変数オペランドに対してオペランド
ステータスフィールド22をオフからオンにし、変数名
フィールド26の内容を当該変数エントリ内のデータア
ドレス34で置換する。
ステータスフィールド22をオフからオンにし、変数名
フィールド26の内容を当該変数エントリ内のデータア
ドレス34で置換する。
第4図は、変数オペランドの変数名をデータアドレスに
置換する例である。第4図において、A1〜A6、Bl
〜B5は第2図に対応する各フィールドである。オペラ
ンドステータスフィールドがオフであるため、上述のス
テップ12からステップ14によシ、変数名Xをデータ
アドレスadrlK置換する、これによってオペランド
ステータスフィールドはオンとなる。
置換する例である。第4図において、A1〜A6、Bl
〜B5は第2図に対応する各フィールドである。オペラ
ンドステータスフィールドがオフであるため、上述のス
テップ12からステップ14によシ、変数名Xをデータ
アドレスadrlK置換する、これによってオペランド
ステータスフィールドはオンとなる。
ステップ15では、変数のデータをアクセスするために
、ステップ14で置換した変数オペランド内のデータア
ドレスフィールド25を用いて、直接、データエリアを
アクセスして値の格納と値の確保とを行う。
、ステップ14で置換した変数オペランド内のデータア
ドレスフィールド25を用いて、直接、データエリアを
アクセスして値の格納と値の確保とを行う。
オブジェクト命令に含まれる変数オペランドは、上述し
たように、いったんデータアクセスを施すと、2回目以
降においてステップ12からステップ14を省くため、
変数のデータアクセスを高速に行うことができる。
たように、いったんデータアクセスを施すと、2回目以
降においてステップ12からステップ14を省くため、
変数のデータアクセスを高速に行うことができる。
(発明の効果)
以上説明したように本発明は、即時実行や作成の容易さ
を特徴とするインタプリタによシブログラムを実行する
ことによシ、データアクセスにおいて、コンパイラ言語
で作成されたプログラムなみの性能が得られるという効
果がある。
を特徴とするインタプリタによシブログラムを実行する
ことによシ、データアクセスにおいて、コンパイラ言語
で作成されたプログラムなみの性能が得られるという効
果がある。
第1図は、本発明によるプログラム実行方式の一実施例
を説明するフローチャートである。 第2図は、オブジェクト命令に含まれる変数オペランド
の形式を示す説明図である。 M8図は、変数名とデータエリアとを対応付ける変数名
テーブルとデータエリアテーブルとの形式を示す説明図
である。 第4図は、第2図で示した変数オペオンドのデータアド
レスへの置換例を示す説明図である。 11〜15・・・処理ステップ 2°1〜2B、A1〜A5、Bl〜BS−−−−フィー
ルド 31.32・e・テーブル 33〜5T−−−エリア
を説明するフローチャートである。 第2図は、オブジェクト命令に含まれる変数オペランド
の形式を示す説明図である。 M8図は、変数名とデータエリアとを対応付ける変数名
テーブルとデータエリアテーブルとの形式を示す説明図
である。 第4図は、第2図で示した変数オペオンドのデータアド
レスへの置換例を示す説明図である。 11〜15・・・処理ステップ 2°1〜2B、A1〜A5、Bl〜BS−−−−フィー
ルド 31.32・e・テーブル 33〜5T−−−エリア
Claims (1)
- ソースプログラムを翻訳して生成したオブジエクトプロ
グラム中の1個のオブジェクト命令に含まれる変数オペ
ランドのデータアドレスが未解決であるプログラムのプ
ログラム実行方式であつて、前記1個のオブジェクト命
令に含まれる変数オペランドに対して当該変数のデータ
エリアへのアクセスが初回であるか否かを判定するため
の判定手段と、前記判定において初回であつた場合、前
記変数と前記データエリアとを対応づけるための変数名
テーブル上の変数エントリを走査するための走査手段と
、当該変数に対応する変数エントリが存在しなかつた場
合に当該変数用のデータエリアを確保して前記対応する
変数エントリを変数名テーブルに登録するための登録手
段と、前記1個のオブジェクト命令に含まれる変数オペ
ランド内の変数名を前記データエリアへのアドレスに置
換するための置換手段と、前記変数オペランド内のデー
タアドレスから当該変数に対応するデータエリアをアク
セスするためのアクセス手段とを具備して構成したこと
を特徴とするプログラム実行方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13056689A JPH02308336A (ja) | 1989-05-23 | 1989-05-23 | プログラム実行方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13056689A JPH02308336A (ja) | 1989-05-23 | 1989-05-23 | プログラム実行方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02308336A true JPH02308336A (ja) | 1990-12-21 |
Family
ID=15037318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13056689A Pending JPH02308336A (ja) | 1989-05-23 | 1989-05-23 | プログラム実行方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH02308336A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06230976A (ja) * | 1992-12-22 | 1994-08-19 | Sun Microsyst Inc | 参照をリゾルブする方法および装置 |
JP2006526841A (ja) * | 2003-06-02 | 2006-11-24 | サン・マイクロシステムズ・インコーポレイテッド | バーチャルマシンにおいてインプレース実行を支援するための近接ベースのアドレス指定 |
-
1989
- 1989-05-23 JP JP13056689A patent/JPH02308336A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06230976A (ja) * | 1992-12-22 | 1994-08-19 | Sun Microsyst Inc | 参照をリゾルブする方法および装置 |
JP2006526841A (ja) * | 2003-06-02 | 2006-11-24 | サン・マイクロシステムズ・インコーポレイテッド | バーチャルマシンにおいてインプレース実行を支援するための近接ベースのアドレス指定 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0620522B1 (en) | High performance dynamic linking through caching | |
KR960018911A (ko) | 명령어 캐시안으로 명령어를 로딩하는 방법 | |
JPH02308336A (ja) | プログラム実行方式 | |
JP3489153B2 (ja) | ファイルシステム | |
JPH09179738A (ja) | オブジェクト指向言語処理方法及び処理装置 | |
JPH09146772A (ja) | 手続き呼出し方法 | |
JPH03164835A (ja) | インタプリタ型言語処理系における大域変数処理のコンパイル方法 | |
JPS6375837A (ja) | プログラミング言語の予約語追加に対する互換性維持の為の予約語管理方式 | |
JP2001256042A (ja) | 個別アプリケーションパッチ管理装置及び個別アプリケーションパッチ管理方法 | |
JPH03263237A (ja) | パッチ処理方式 | |
JPH0746636A (ja) | 電子交換機のファイル更新におけるアドレス変換方法 | |
JPS63178345A (ja) | デ−タベ−スアクセス処理方式 | |
JPH0566949A (ja) | 関数定義コンパイルドコード呼出し方式 | |
JPH0357024A (ja) | データ多重割付方式 | |
JPH0675757A (ja) | 仮想空間常駐プログラムのリンク方式 | |
JPH03161842A (ja) | デバッグシステム | |
JPH0594303A (ja) | 配列要素に対するデータアクセス方式 | |
JPH0784843A (ja) | データアクセス方法 | |
JPH04178738A (ja) | レジスタアロケーション方式 | |
JPS62137641A (ja) | 高級言語のコンパイラ | |
JPH05334093A (ja) | 言語プロセッサにおけるシンボル管理方式 | |
JPH03255534A (ja) | 高級プログラム言語のポインタ修飾データ参照方式 | |
JPH03271939A (ja) | メッセージ送信翻訳処理方式 | |
JPH04138534A (ja) | プログラムのデバッグ方式 | |
JPH0460721A (ja) | オブジェクト指向言語処理方式 |