JPH04344533A - インタプリタ言語におけるコンパイルドコードオブジェクトからのデータ参照方式 - Google Patents
インタプリタ言語におけるコンパイルドコードオブジェクトからのデータ参照方式Info
- Publication number
- JPH04344533A JPH04344533A JP14413391A JP14413391A JPH04344533A JP H04344533 A JPH04344533 A JP H04344533A JP 14413391 A JP14413391 A JP 14413391A JP 14413391 A JP14413391 A JP 14413391A JP H04344533 A JPH04344533 A JP H04344533A
- Authority
- JP
- Japan
- Prior art keywords
- data
- compiled code
- code object
- machine language
- referenced
- 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 16
- 230000008878 coupling Effects 0.000 abstract 1
- 238000010168 coupling process Methods 0.000 abstract 1
- 238000005859 coupling reaction Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 6
- 238000007430 reference method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、インタプリタとコンパ
イラとを有し、コンパイラが出力するオブジェクトをイ
ンタプリタが実行・管理するようなシステムに関し、特
にLisp言語のように一つのコンパイル単位内の各関
数でデータを共有したり、個別に割り付けたりする方式
に関する。
イラとを有し、コンパイラが出力するオブジェクトをイ
ンタプリタが実行・管理するようなシステムに関し、特
にLisp言語のように一つのコンパイル単位内の各関
数でデータを共有したり、個別に割り付けたりする方式
に関する。
【0002】
【従来の技術】従来、インタプリタとコンパイラとから
構成され、コンパイラが出力したコンパイルドコードオ
ブジェクトの記憶域管理、実行管理をインタプリタが行
っているような言語処理プロセッサでは、機械語命令列
から参照するデータはインタプリタが生成、管理してい
る領域(以下、ヒープ領域と呼ぶ)に割り付けるような
構造になっていた。コンパイルドコードオブジェクト内
からヒープ領域上のデータを参照する場合、ソースプロ
グラムのコンパイル時には、ヒープ領域上のアドレスを
決定することができないので、コンパイルドコードオブ
ジェクトを記憶域空間にロードする際にヒープ領域上の
データのアドレスを確定し、それを参照するような構造
をとっている。コンパイラは、コンパイルドコードオブ
ジェクト内にヒープ領域上のアドレスが確定できた時点
でそのアドレスを格納するための領域(アドレス格納テ
ーブル)を設けておき、機械語命令では、そのアドレス
格納テーブルのどの場所に参照したいデータのアドレス
が格納されているかを予め定めておき、アドレス格納テ
ーブル経由してデータを参照するような命令を生成して
いる。
構成され、コンパイラが出力したコンパイルドコードオ
ブジェクトの記憶域管理、実行管理をインタプリタが行
っているような言語処理プロセッサでは、機械語命令列
から参照するデータはインタプリタが生成、管理してい
る領域(以下、ヒープ領域と呼ぶ)に割り付けるような
構造になっていた。コンパイルドコードオブジェクト内
からヒープ領域上のデータを参照する場合、ソースプロ
グラムのコンパイル時には、ヒープ領域上のアドレスを
決定することができないので、コンパイルドコードオブ
ジェクトを記憶域空間にロードする際にヒープ領域上の
データのアドレスを確定し、それを参照するような構造
をとっている。コンパイラは、コンパイルドコードオブ
ジェクト内にヒープ領域上のアドレスが確定できた時点
でそのアドレスを格納するための領域(アドレス格納テ
ーブル)を設けておき、機械語命令では、そのアドレス
格納テーブルのどの場所に参照したいデータのアドレス
が格納されているかを予め定めておき、アドレス格納テ
ーブル経由してデータを参照するような命令を生成して
いる。
【0003】このとき、複数の命令から同じ表現をもつ
データを参照する場合、全て同じデータを参照するよう
に同じ表現のデータは一つだけ生成するようにしてアド
レス格納テーブルに登録し、各機械語命令からはアドレ
ス格納テーブルの同一のエントリを経由して参照するよ
うにしていた。
データを参照する場合、全て同じデータを参照するよう
に同じ表現のデータは一つだけ生成するようにしてアド
レス格納テーブルに登録し、各機械語命令からはアドレ
ス格納テーブルの同一のエントリを経由して参照するよ
うにしていた。
【0004】また別の方式としては、ソースプログラム
をインタプリタ上で解釈・実行させデータを生成する場
合と同じように、全てのデータを表現が同じ場合でも各
々別に生成しアドレス格納テーブルに登録して機械語命
令から参照する方式もある。
をインタプリタ上で解釈・実行させデータを生成する場
合と同じように、全てのデータを表現が同じ場合でも各
々別に生成しアドレス格納テーブルに登録して機械語命
令から参照する方式もある。
【0005】ここで、同じ表現のデータとは、文字とし
ての表現形式が同一であるということを意味する。たと
えば、文字列“ABC”と“ABC”、リスト(A
B C)と(A B C)などである。この場合
、記憶域空間上で実体が同じかどうかは規定していない
。
ての表現形式が同一であるということを意味する。たと
えば、文字列“ABC”と“ABC”、リスト(A
B C)と(A B C)などである。この場合
、記憶域空間上で実体が同じかどうかは規定していない
。
【0006】
【発明が解決しようとする課題】上述した前者の複数の
機械語命令から同じ表現をもつデータを参照するときは
全て同じデータの実体を参照するコンパイルドコードオ
ブジェクトからのデータ参照方式では、各機械語命令か
ら同一の実体を参照することになるためある命令におい
て実体の内容を変更すると他の箇所から参照しているデ
ータの実体も変更されることになり、異なる実体をもつ
データを作成し、参照することができないという課題が
あった。また、このコンパイルドコードオブジェクトを
実行すると、プログラムをコンパイルせずにソースプロ
グラムのままインタプリタ上で解釈・実行させた場合と
はデータの参照状況が異なってしまうという課題もあっ
た。
機械語命令から同じ表現をもつデータを参照するときは
全て同じデータの実体を参照するコンパイルドコードオ
ブジェクトからのデータ参照方式では、各機械語命令か
ら同一の実体を参照することになるためある命令におい
て実体の内容を変更すると他の箇所から参照しているデ
ータの実体も変更されることになり、異なる実体をもつ
データを作成し、参照することができないという課題が
あった。また、このコンパイルドコードオブジェクトを
実行すると、プログラムをコンパイルせずにソースプロ
グラムのままインタプリタ上で解釈・実行させた場合と
はデータの参照状況が異なってしまうという課題もあっ
た。
【0007】次に全てのデータを表現が同じ場合でも各
々別に生成しアドレス格納テーブルに登録して機械語命
令から参照する後者のコンパイルドコードオブジェクト
からのデータ参照方式では、アドレス格納テーブルのエ
ントリがデータの数分必要となり、大きなプログラムで
はデータの数に比例してコンパイルドコードオブジェク
トが大きくなってしまうという課題があった。
々別に生成しアドレス格納テーブルに登録して機械語命
令から参照する後者のコンパイルドコードオブジェクト
からのデータ参照方式では、アドレス格納テーブルのエ
ントリがデータの数分必要となり、大きなプログラムで
はデータの数に比例してコンパイルドコードオブジェク
トが大きくなってしまうという課題があった。
【0008】本発明はこのような従来の課題を解決した
もので、その目的は異なる実体をもつデータを作成し参
照が可能で記憶域空間を節約できるインタプリタ言語に
おけるコンパイルドコードオブジェクトからのデータ参
照方式を提供することにある。
もので、その目的は異なる実体をもつデータを作成し参
照が可能で記憶域空間を節約できるインタプリタ言語に
おけるコンパイルドコードオブジェクトからのデータ参
照方式を提供することにある。
【0009】
【課題を解決するための手段】本発明のインタプリタ言
語におけるコンパイルドコードオブジェクトからのデー
タ参照方式は、コンパイルドコードオブジェクトの機械
語命令列から参照するデータを複数の機械語命令から共
有するようにコンパイルすることを指示する共有データ
コンパイル指示子と、各々の機械語命令から参照するデ
ータを個別に割り付けるようにコンパイルすることを指
示する個別データコンパイル指示子とをもつコンパイル
指示手段と、前記コンパイルドコードオブジェクトの機
械語命令列から参照しているデータを管理するためのア
ドレス格納テーブルを有し、インタプリタがコンパイル
ドコードオブジェクトを記憶域空間にロードする際にコ
ンパイルドコードオブジェクトの機械語命令列から参照
しているデータを生成するデータ生成処理と、その生成
したデータのアドレスをアドレス格納テーブルに格納す
るアドレス格納テーブル登録処理とから構成されるデー
タ生成手段と、コンパイルドコードオブジェクトの機械
語命令列からデータを共有したり個別に参照したりする
ようなデータ参照手段とを有している。
語におけるコンパイルドコードオブジェクトからのデー
タ参照方式は、コンパイルドコードオブジェクトの機械
語命令列から参照するデータを複数の機械語命令から共
有するようにコンパイルすることを指示する共有データ
コンパイル指示子と、各々の機械語命令から参照するデ
ータを個別に割り付けるようにコンパイルすることを指
示する個別データコンパイル指示子とをもつコンパイル
指示手段と、前記コンパイルドコードオブジェクトの機
械語命令列から参照しているデータを管理するためのア
ドレス格納テーブルを有し、インタプリタがコンパイル
ドコードオブジェクトを記憶域空間にロードする際にコ
ンパイルドコードオブジェクトの機械語命令列から参照
しているデータを生成するデータ生成処理と、その生成
したデータのアドレスをアドレス格納テーブルに格納す
るアドレス格納テーブル登録処理とから構成されるデー
タ生成手段と、コンパイルドコードオブジェクトの機械
語命令列からデータを共有したり個別に参照したりする
ようなデータ参照手段とを有している。
【0010】
【作用】本発明におけるインタプリタ言語におけるコン
パイルドコードオブジェクトからのデータ参照方式のコ
ンパイル指示手段は、参照するデータを複数の機械語命
令から共有するようにコンパイルすることを指示する共
有データコンパイル指示子と、参照するデータを個別に
割り付けるようにコンパイルすることを指示する個別デ
ータコンパイル指示子を持ち、データ生成手段はインタ
プリタがコンパイルドコードオブジェクトを記憶域空間
にロードする際にコンパイルドコードオブジェクトの機
械語命令列から参照しているデータを生成してそのアド
レスをアドレス格納テーブルに格納し、データ参照手段
は、コンパイルドコードオブジェクトの機械語命令列か
らデータを共有したり個別に参照したりできるので、コ
ンパイルドコードオブジェクトから参照するデータを共
有したり個別に割り付けたりすることができる。
パイルドコードオブジェクトからのデータ参照方式のコ
ンパイル指示手段は、参照するデータを複数の機械語命
令から共有するようにコンパイルすることを指示する共
有データコンパイル指示子と、参照するデータを個別に
割り付けるようにコンパイルすることを指示する個別デ
ータコンパイル指示子を持ち、データ生成手段はインタ
プリタがコンパイルドコードオブジェクトを記憶域空間
にロードする際にコンパイルドコードオブジェクトの機
械語命令列から参照しているデータを生成してそのアド
レスをアドレス格納テーブルに格納し、データ参照手段
は、コンパイルドコードオブジェクトの機械語命令列か
らデータを共有したり個別に参照したりできるので、コ
ンパイルドコードオブジェクトから参照するデータを共
有したり個別に割り付けたりすることができる。
【0011】
【実施例】次に本発明の一実施例について図面を参照し
て説明する。
て説明する。
【0012】図1は本発明の一実施例であるインタプリ
タ言語におけるコンパイルドコードオブジェクトからの
データ参照方式の構成図である。
タ言語におけるコンパイルドコードオブジェクトからの
データ参照方式の構成図である。
【0013】図において、15はソースプログラム(L
isp)であり、ソースプログラム15中のデータを複
数の機械語命令から共有するようにコンパイルしてもよ
いことをコンパイラに指示する共有データコンパイル指
示子‘Common’と各機械語命令別にデータを生成
し参照するようにコンパイルすることをコンパイラに指
示する個別データコンパイル指示子‘Separate
’とを持つコンパイル指示手段16を有している。
isp)であり、ソースプログラム15中のデータを複
数の機械語命令から共有するようにコンパイルしてもよ
いことをコンパイラに指示する共有データコンパイル指
示子‘Common’と各機械語命令別にデータを生成
し参照するようにコンパイルすることをコンパイラに指
示する個別データコンパイル指示子‘Separate
’とを持つコンパイル指示手段16を有している。
【0014】1はコンパイルドコードオブジェクトがロ
ードされる記憶域空間であって、つぎのように構成され
る。
ードされる記憶域空間であって、つぎのように構成され
る。
【0015】ソースプログラム15をコンパイルしてコ
ンパイルドコードオブジェクトを出力するコンパイラ1
0、データの生成管理コンパイルドコードオブジェクト
の記憶空間のテーブルへのロードや制御の受け渡しを行
なうインタプリタ11は、コンパイルドコードオブジェ
クトの機械語命令列から参照しているデータを生成する
データ生成処理12と生成したデータをアドレス格納テ
ーブルに格納するアドレス格納テーブル登録処理13で
構成するデータ生成手段14を有している、コンパイル
ドコードオブジェクトの機械語命令列からデータを共有
したり個別に参照したりするデータ参照手段17は、参
照時インタプリタ11によってロードされるコンパイル
ドコードオブジェクト2の機械語命令列、機械語命令A
3、機械語命令B4、機械語命令C5を生成しヒープ領
域6内の機械語命令列から参照するデータを管理するア
ドレス格納テーブル7にアドレスを共有、個別を分けて
割り付け格納する、“abc”8と9はアドレス格納テ
ーブル7に格納される生成された文字列である。
ンパイルドコードオブジェクトを出力するコンパイラ1
0、データの生成管理コンパイルドコードオブジェクト
の記憶空間のテーブルへのロードや制御の受け渡しを行
なうインタプリタ11は、コンパイルドコードオブジェ
クトの機械語命令列から参照しているデータを生成する
データ生成処理12と生成したデータをアドレス格納テ
ーブルに格納するアドレス格納テーブル登録処理13で
構成するデータ生成手段14を有している、コンパイル
ドコードオブジェクトの機械語命令列からデータを共有
したり個別に参照したりするデータ参照手段17は、参
照時インタプリタ11によってロードされるコンパイル
ドコードオブジェクト2の機械語命令列、機械語命令A
3、機械語命令B4、機械語命令C5を生成しヒープ領
域6内の機械語命令列から参照するデータを管理するア
ドレス格納テーブル7にアドレスを共有、個別を分けて
割り付け格納する、“abc”8と9はアドレス格納テ
ーブル7に格納される生成された文字列である。
【0016】図2は、ソースプログラムを表わす図であ
る。
る。
【0017】図において、20はコンパイル指示手段1
6内の共有データコンパイル指示子‘Common’の
共通データ項であり、22も同じく共通データ項であり
、21は個別データコンパイル指示子‘Separat
e’の個別データ項である。
6内の共有データコンパイル指示子‘Common’の
共通データ項であり、22も同じく共通データ項であり
、21は個別データコンパイル指示子‘Separat
e’の個別データ項である。
【0018】図3は、データ生成手段、データ参照手段
の説明図である。
の説明図である。
【0019】図において、3は共通データを参照する機
械語命令Aの内容を示したものであり、5は同じくCの
内容であり、4は個別データを参照する機械語命令Bの
内容を示す。
械語命令Aの内容を示したものであり、5は同じくCの
内容であり、4は個別データを参照する機械語命令Bの
内容を示す。
【0020】上述のように構成された本発明の動作につ
いて説明する。
いて説明する。
【0021】まずデータ生成手段14はコンパイラ10
が出力するオブジェクト即ちコンパイルドコードオブジ
ェクト2を記憶域空間1のアドレス格納テーブル7の何
番目のエントリに、参照しているデータのアドレスが格
納されるかを決定し、アドレス格納テーブル7の先頭を
レジスタRが指すようにして、そのエントリを経由して
当該データを参照するようにする。
が出力するオブジェクト即ちコンパイルドコードオブジ
ェクト2を記憶域空間1のアドレス格納テーブル7の何
番目のエントリに、参照しているデータのアドレスが格
納されるかを決定し、アドレス格納テーブル7の先頭を
レジスタRが指すようにして、そのエントリを経由して
当該データを参照するようにする。
【0022】ここで、図3を参照して共通データとして
生成する文字列“abc”8はアドレス格納テーブル7
の2番目のエントリにその先頭アドレスを格納し、個別
データとして生成する文字列“abc”9はアドレス格
納テーブル7の4番目のエントリにその先頭アドレスを
格納することにすると、共有データを参照する機械語命
令は機械語命令A3であり、内容は“move4(R)
,R1”で示され、これはレジスタRの指す4バイト目
の領域の内容をレジスタR1へ移送することを意味する
ものであり、同じく共有データの機械語命令C5は“m
ove4(R),R3”であり、レジスタRの指す4バ
イト目の領域の内容をレジスタR3へ移送するとなりデ
ータの実体が一つで済むことになる、固有データを参照
する機械語命令B4の場合は“move12(R),R
2”であり、レジスタRの指す12バイト目の領域の内
容をレジスタR2へ移送するとなる。
生成する文字列“abc”8はアドレス格納テーブル7
の2番目のエントリにその先頭アドレスを格納し、個別
データとして生成する文字列“abc”9はアドレス格
納テーブル7の4番目のエントリにその先頭アドレスを
格納することにすると、共有データを参照する機械語命
令は機械語命令A3であり、内容は“move4(R)
,R1”で示され、これはレジスタRの指す4バイト目
の領域の内容をレジスタR1へ移送することを意味する
ものであり、同じく共有データの機械語命令C5は“m
ove4(R),R3”であり、レジスタRの指す4バ
イト目の領域の内容をレジスタR3へ移送するとなりデ
ータの実体が一つで済むことになる、固有データを参照
する機械語命令B4の場合は“move12(R),R
2”であり、レジスタRの指す12バイト目の領域の内
容をレジスタR2へ移送するとなる。
【0023】次に、コンパイルドコードオブジェクト2
をロードするときに、その中から参照しているデータの
実体“abc”8,9をヒープ領域6にロードする際に
、データ生成処理12によって、そのコンパイルドコー
ドオブジェクト2から参照しているデータを生成しヒー
プ領域6に割り付け、生成したデータのアドレスをアド
レス格納テーブル登録処理13によって、アドレス格納
テーブル7に登録する。
をロードするときに、その中から参照しているデータの
実体“abc”8,9をヒープ領域6にロードする際に
、データ生成処理12によって、そのコンパイルドコー
ドオブジェクト2から参照しているデータを生成しヒー
プ領域6に割り付け、生成したデータのアドレスをアド
レス格納テーブル登録処理13によって、アドレス格納
テーブル7に登録する。
【0024】つぎにデータ参照手段17について、図2
に示したLispプログラムをコンパイルした場合のデ
ータ参照を図3も用いて説明する。
に示したLispプログラムをコンパイルした場合のデ
ータ参照を図3も用いて説明する。
【0025】まず、コンパイラ10はソースプログラム
15中で参照しているデータが共有データ20,22な
らば、コンパイルドコードオブジェクト2のロード時に
アドレス格納テーブル7の同一エントリにデータのアド
レスが格納されることを前提に機械語命令列を生成し、
データが個別データ21であった場合は、アドレス格納
テーブル7の別々のエントリにデータのアドレスが格納
されることを前提に機械語命令列を生成する。
15中で参照しているデータが共有データ20,22な
らば、コンパイルドコードオブジェクト2のロード時に
アドレス格納テーブル7の同一エントリにデータのアド
レスが格納されることを前提に機械語命令列を生成し、
データが個別データ21であった場合は、アドレス格納
テーブル7の別々のエントリにデータのアドレスが格納
されることを前提に機械語命令列を生成する。
【0026】この時はアドレス格納テーブル7上にその
アドレスをあらかじめ定めた2番目と4番目のエントリ
に格納することにする。
アドレスをあらかじめ定めた2番目と4番目のエントリ
に格納することにする。
【0027】このようにソースプログラム15のLis
p関数(Common“abc”)20や(Commo
n“abc”)22のような定数として使用プログラム
中で変更されないようなデータは共有データとすること
により、アドレス格納テーブルエントリおよびデータの
実体が一つで済むために記憶域空間を節約できる。
p関数(Common“abc”)20や(Commo
n“abc”)22のような定数として使用プログラム
中で変更されないようなデータは共有データとすること
により、アドレス格納テーブルエントリおよびデータの
実体が一つで済むために記憶域空間を節約できる。
【0028】また(Separate“abc”)21
の文字列“abc”の2番目の要素を都合上仮りにfに
変更し“afc”とするようなLisp関数を想定した
場合は、このデータを個別データとすることにより文字
列の内容を変更しても他のデータには影響がない。
の文字列“abc”の2番目の要素を都合上仮りにfに
変更し“afc”とするようなLisp関数を想定した
場合は、このデータを個別データとすることにより文字
列の内容を変更しても他のデータには影響がない。
【0029】なお、上述の場合はコンパイル指示手段1
6で共有データと個別データの両方に対してコンパイル
指示子‘Common’と‘Separate’を持つ
ようにしたが、この他にどちらか一方の指示子だけを指
定してもよい。
6で共有データと個別データの両方に対してコンパイル
指示子‘Common’と‘Separate’を持つ
ようにしたが、この他にどちらか一方の指示子だけを指
定してもよい。
【0030】この場合は、たとえば共有データを指示す
るコンパイル指示子‘Common’を定義してCom
monが指定されていないデータは全て個別データとし
て割り付けるようにすることによって実現できる。
るコンパイル指示子‘Common’を定義してCom
monが指定されていないデータは全て個別データとし
て割り付けるようにすることによって実現できる。
【0031】
【発明の効果】以上説明したように本発明は、共有デー
タコンパイル指示子と個別データコンパイル指示子とか
らなるコンパイル指示手段、アドレス格納テーブル、デ
ータ生成処理とアドレス格納テーブル登録処理とから構
成されるデータ生成手段およびコンパイルドコードオブ
ジェクトの機械語命令列からデータを共有したり個別に
参照したりするようなデータ参照手段とを有することに
より、コンパイルドコードオブジェクトの機械語命令か
ら参照するデータを共有したり、個別に割り付けたりす
ることができるという効果があり、アドレス格納テーブ
ルエントリおよびデータの実体が一つで済むため記憶域
空間を節約できるという効果があり、さらに文字列の内
容を変更しても他のデータにその影響を与えずにすむと
いう効果がある。
タコンパイル指示子と個別データコンパイル指示子とか
らなるコンパイル指示手段、アドレス格納テーブル、デ
ータ生成処理とアドレス格納テーブル登録処理とから構
成されるデータ生成手段およびコンパイルドコードオブ
ジェクトの機械語命令列からデータを共有したり個別に
参照したりするようなデータ参照手段とを有することに
より、コンパイルドコードオブジェクトの機械語命令か
ら参照するデータを共有したり、個別に割り付けたりす
ることができるという効果があり、アドレス格納テーブ
ルエントリおよびデータの実体が一つで済むため記憶域
空間を節約できるという効果があり、さらに文字列の内
容を変更しても他のデータにその影響を与えずにすむと
いう効果がある。
【図1】本発明の一実施例であるインタプリタ言語にお
けるコンパイルドコードオブジェクトからのデータ参照
方式の全体構成図、
けるコンパイルドコードオブジェクトからのデータ参照
方式の全体構成図、
【図2】ソースプログラムを表す図である。
【図3】データ生成手段・参照手段の説明図である。
1 記憶域空間
2 コンパイルドコードオブジェクト3,4,5
機械語命令 6 ヒープ領域 7 アドレス格納テーブル 8,9 文字列データ 10 コンパイラ 11 インタプリタ 12 データ生成処理 13 アドレス格納テーブル登録処理14
データ生成手段 15 ソースプログラム 16 コンパイル指示手段 17 データ参照手段
機械語命令 6 ヒープ領域 7 アドレス格納テーブル 8,9 文字列データ 10 コンパイラ 11 インタプリタ 12 データ生成処理 13 アドレス格納テーブル登録処理14
データ生成手段 15 ソースプログラム 16 コンパイル指示手段 17 データ参照手段
Claims (1)
- 【請求項1】 プログラムを解釈・実行しながら動作
することを基本とするインタプリタ言語で、実行速度を
向上させるためにソースプログラムをコンパイルする手
段を備えている言語処理プロセッサにおいて、コンパイ
ラが出力するオブジェクトであるコンパイルドコードオ
ブジェクト形式が、そのオペレーティングシステム上で
定められている一般形式ではなく、前記言語処理プロセ
ッサが定義した任意の形式をしておりその言語で使用す
るデータの生成・管理や、前記コンパイルドコードオブ
ジェクトの記憶域空間へのロードおよび制御の受け渡し
などもインタプリタが行うような構成をとっている場合
、コンパイルドコードオブジェクトの機械語命令列から
参照するデータを複数の機械語命令から共有するように
コンパイルすることを指示する共有データコンパイル指
示子と、各々の機械語命令から参照するデータを個別に
割り付けるようにコンパイルすることを指示する個別デ
ータコンパイル指示子とをもつコンパイル指示手段と、
前記コンパイルドコードオブジェクトの機械語命令列か
ら参照しているデータを管理するためのアドレス格納テ
ーブルを有し、前記インタプリタがコンパイルドコード
オブジェクトを記憶域空間にロードする際にコンパイル
ドコードオブジェクトの機械語命令列から参照している
データを生成するデータ生成処理と、その生成したデー
タのアドレスを前記アドレス格納テーブルに格納するア
ドレス格納テーブル登録処理とから構成されるデータ生
成手段と、前記コンパイルドコードオブジェクトの機械
語命令列からデータを共有したり個別に参照したりする
ようなデータ参照手段とを有するインタプリタ言語にお
けるコンパイルドコードオブジェクトからのデータ参照
方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14413391A JPH04344533A (ja) | 1991-05-21 | 1991-05-21 | インタプリタ言語におけるコンパイルドコードオブジェクトからのデータ参照方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14413391A JPH04344533A (ja) | 1991-05-21 | 1991-05-21 | インタプリタ言語におけるコンパイルドコードオブジェクトからのデータ参照方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04344533A true JPH04344533A (ja) | 1992-12-01 |
Family
ID=15354988
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14413391A Pending JPH04344533A (ja) | 1991-05-21 | 1991-05-21 | インタプリタ言語におけるコンパイルドコードオブジェクトからのデータ参照方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04344533A (ja) |
-
1991
- 1991-05-21 JP JP14413391A patent/JPH04344533A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11175896B2 (en) | Handling value types | |
| EP0777177B1 (en) | A method for object-oriented programming using dynamic interfaces | |
| CN1119756C (zh) | 用于进行静态初始化的方法和系统 | |
| US20090322769A1 (en) | Bulk-synchronous graphics processing unit programming | |
| JPH113269A (ja) | スタックの内容をサブスタックに分離することによる正確なガーベイジ・コレクションを補助するシステムと方法 | |
| JPH08502612A (ja) | データ処理システムおよびオペレーティング・システム | |
| US7386843B2 (en) | Method and system for register allocation | |
| US5062039A (en) | Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces | |
| US20030208492A1 (en) | System and method of using extensions in a data structure without interfering with applications unaware of the extensions | |
| US20040015850A1 (en) | Specialized heaps for creation of objects in object-oriented environments | |
| JP3318051B2 (ja) | 翻訳処理方法 | |
| JPH04344533A (ja) | インタプリタ言語におけるコンパイルドコードオブジェクトからのデータ参照方式 | |
| US7703108B2 (en) | Native code isolation in a multi-tasking Java virtual machine | |
| US6772292B2 (en) | Two area stack | |
| JP2024520326A5 (ja) | ||
| US6793143B2 (en) | Data carrier | |
| JPH0660047A (ja) | マルチプロセッサ処理装置 | |
| GB2121221A (en) | Table-driven apparatus for data display and modification | |
| JP2002163115A (ja) | 仮想機械用プログラムのコンパイル対象指定方法、同プログラムのコンパイル対象判定方法、仮想機械実行方法、事前コンパイル方法、コンピュータ、記録媒体、及びプログラム製品 | |
| JP2004021610A (ja) | タスク管理装置 | |
| JPH03255534A (ja) | 高級プログラム言語のポインタ修飾データ参照方式 | |
| JPH03255533A (ja) | プログラミング言語処理システムにおけるシンボル管理方式 | |
| JPH02156332A (ja) | プロセス間共有コード管理方式 | |
| JP2003271393A (ja) | インライン割付による最適化方法およびそのコンパイラ | |
| JPS63247824A (ja) | デ−タエントリ画面定義数の拡張方法 |