JPH02136930A - Auto変数割り付け方式 - Google Patents
Auto変数割り付け方式Info
- Publication number
- JPH02136930A JPH02136930A JP29081888A JP29081888A JPH02136930A JP H02136930 A JPH02136930 A JP H02136930A JP 29081888 A JP29081888 A JP 29081888A JP 29081888 A JP29081888 A JP 29081888A JP H02136930 A JPH02136930 A JP H02136930A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- auto
- name table
- variable
- variables
- 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
- 230000015654 memory Effects 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000007796 conventional method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、コンパイラにおいて、高級言語で記述された
ソースプログラム中で宣言されるAUTO変数をメモリ
に割り付ける方式に関するものである。
ソースプログラム中で宣言されるAUTO変数をメモリ
に割り付ける方式に関するものである。
AUTO変数とは、変数の記憶域クラス属性として自動
(AUTOMAT I C)が指定された変数であり、
メモリに動的に割り付けが行われる変数である。
(AUTOMAT I C)が指定された変数であり、
メモリに動的に割り付けが行われる変数である。
ところで、従来のコンパイラにおいては、複数のAt1
TO変数をそれぞれ別々のメモリに割り付けるようにし
ており、異なるAUTO変数を同一のメモリに割り付け
るということはなかった。
TO変数をそれぞれ別々のメモリに割り付けるようにし
ており、異なるAUTO変数を同一のメモリに割り付け
るということはなかった。
上述した従来の方式は、メモリ容量に充分な余裕があっ
てメモリサイズを考慮する必要がない場合には何ら問題
はなかったが、メモリサイズを考慮する必要がある場合
には、メモリの有効利用という観点から問題があった。
てメモリサイズを考慮する必要がない場合には何ら問題
はなかったが、メモリサイズを考慮する必要がある場合
には、メモリの有効利用という観点から問題があった。
すなわち、従来の方式ではソースプログラムにおいて宣
言されるALIT○変数の数が多いとそれだけA IJ
T O変数を割り付けるメモリの数が増加することに
なるが、本来、AUTO変数は動的に?Iり当てられる
ことを前提としており、必ずしもソースプログラムの全
範囲で使用されるとは限らないので、AUTO変数を割
り付けたメモリの利用率は非常に低いものであった。
言されるALIT○変数の数が多いとそれだけA IJ
T O変数を割り付けるメモリの数が増加することに
なるが、本来、AUTO変数は動的に?Iり当てられる
ことを前提としており、必ずしもソースプログラムの全
範囲で使用されるとは限らないので、AUTO変数を割
り付けたメモリの利用率は非常に低いものであった。
本発明は上記の点に鑑み提案されたものであり、その目
的とするところは、AUTO変数を割り付けるメモリを
最大限にjJJ−することにより、メモリの有効利用を
図れるAUTO変数割り付け方式を提供することにある
。
的とするところは、AUTO変数を割り付けるメモリを
最大限にjJJ−することにより、メモリの有効利用を
図れるAUTO変数割り付け方式を提供することにある
。
本発明は上記の目的を達成するため、AUTO変数の宣
言データトークンを入力して対応する名前テーブルを作
成する名前テーブル作成部と、実行文トークンを入力し
てAUTO変数のソースプログラl、中の参照範囲を解
析し、その参照範囲を対応する名前テーブルに格納する
参照範囲取得手段と、 全ての名前テーブルの参照範囲からメモリ共有可能なA
UT O変数を1−リ別し、そのAUTO変数に対応
する名前テーブルの識別子を名前テーブルに格納するメ
モリ共有可能データ識別手段と、名前テーブルの識別子
に基づいてA U T O変数を共有できるもの同士に
グループ分けし、同一のグループに属するAUTO変数
に対して同一の割り付けアドレスを決定して名前テーブ
ルに格納する割り付けアドレス取得手段とを備えるよう
にしている。
言データトークンを入力して対応する名前テーブルを作
成する名前テーブル作成部と、実行文トークンを入力し
てAUTO変数のソースプログラl、中の参照範囲を解
析し、その参照範囲を対応する名前テーブルに格納する
参照範囲取得手段と、 全ての名前テーブルの参照範囲からメモリ共有可能なA
UT O変数を1−リ別し、そのAUTO変数に対応
する名前テーブルの識別子を名前テーブルに格納するメ
モリ共有可能データ識別手段と、名前テーブルの識別子
に基づいてA U T O変数を共有できるもの同士に
グループ分けし、同一のグループに属するAUTO変数
に対して同一の割り付けアドレスを決定して名前テーブ
ルに格納する割り付けアドレス取得手段とを備えるよう
にしている。
[作用]
本発明のAUTO変数割り付け方式にあっては、名前テ
ーブル作成部がA U ”T” O変数の宣言データト
ークンを入力して対応する名前テーブルを作成し、参照
範囲取得手段が実行文トークンを入力してALITO変
数のソースプログラム中の参照範囲を解析すると共にそ
の参照範囲を対応する名前テーブルに格納し、メモリ共
有可能データ識別手段が全ての名前テーブルの参照範囲
からメモリ共有可能なAUTO変数を判別してそのAU
TO変数に対応する名前テーブルの識別子を名前テーブ
ルに格納し、割り付けアドレス取得手段が名前テーブル
の識別子に基づいてAUTO変数を共有できるもの同士
にグループ分けすると共に同一のグループに属するA
U T O変数に対して同一の割り付けアドレスを決定
して名前テーブルに格納する。
ーブル作成部がA U ”T” O変数の宣言データト
ークンを入力して対応する名前テーブルを作成し、参照
範囲取得手段が実行文トークンを入力してALITO変
数のソースプログラム中の参照範囲を解析すると共にそ
の参照範囲を対応する名前テーブルに格納し、メモリ共
有可能データ識別手段が全ての名前テーブルの参照範囲
からメモリ共有可能なAUTO変数を判別してそのAU
TO変数に対応する名前テーブルの識別子を名前テーブ
ルに格納し、割り付けアドレス取得手段が名前テーブル
の識別子に基づいてAUTO変数を共有できるもの同士
にグループ分けすると共に同一のグループに属するA
U T O変数に対して同一の割り付けアドレスを決定
して名前テーブルに格納する。
以下、本発明の実施例につき図面を参照して説明する。
第1図は本発明のAIJTO変数割り付け方式の一実施
例の構成図であり、コンパイラの一部分である。第1図
において、宣言データトークンlはソースプログラム中
のAUTO変数の宣言文に対応するトークンであり、実
行文トークン2はソースプログラム中の実行文に対応す
るトークンである。宣言データ処理部3はAUTO変数
の割り付けに関して主要な処理を行う部分であり、名前
テブル作成部4と参照範囲取得手段5とメモリ共有可能
データ識別手段6と割り付けアドレス取得手段7とから
構成されている。また、名前チーフル8は宣言データ処
理部3の名前テーブル作成部4により各AUTO変数に
対応して作成されるテブルであり、参照範囲12を格納
する参照範囲格納域9と、メモリ共有名前テーブル識別
子13を格納するメモリ共有名前テーブル識別子格納域
lOと、割り付けアドレス14を格納する割り付けアド
レス格納域11とを含んでいる。なお、第2図は名前テ
ーブル8をより詳細に示した論理的構成図であり、参照
範囲+2.メモリ共有名前テーブル識別子135割り付
けアドレス14の他に、次の名前テーブル識別子15.
変数名16.記憶域17.属性18.精度または長さ1
9.フラグ20を含んでいる。
例の構成図であり、コンパイラの一部分である。第1図
において、宣言データトークンlはソースプログラム中
のAUTO変数の宣言文に対応するトークンであり、実
行文トークン2はソースプログラム中の実行文に対応す
るトークンである。宣言データ処理部3はAUTO変数
の割り付けに関して主要な処理を行う部分であり、名前
テブル作成部4と参照範囲取得手段5とメモリ共有可能
データ識別手段6と割り付けアドレス取得手段7とから
構成されている。また、名前チーフル8は宣言データ処
理部3の名前テーブル作成部4により各AUTO変数に
対応して作成されるテブルであり、参照範囲12を格納
する参照範囲格納域9と、メモリ共有名前テーブル識別
子13を格納するメモリ共有名前テーブル識別子格納域
lOと、割り付けアドレス14を格納する割り付けアド
レス格納域11とを含んでいる。なお、第2図は名前テ
ーブル8をより詳細に示した論理的構成図であり、参照
範囲+2.メモリ共有名前テーブル識別子135割り付
けアドレス14の他に、次の名前テーブル識別子15.
変数名16.記憶域17.属性18.精度または長さ1
9.フラグ20を含んでいる。
次に上記の実施例につき各部の機能および動作を説明す
る。
る。
宣言データ処理部3が起動されると、宣言データ処理部
3内の名前テーブル作成部4.参照範囲取得手段5.メ
モリ共有可能データ識別手段6割り付けアドレス取得手
段7が順次起動される。
3内の名前テーブル作成部4.参照範囲取得手段5.メ
モリ共有可能データ識別手段6割り付けアドレス取得手
段7が順次起動される。
先ず、名前テーブル作成部4はAUTO変数にかかる宣
言データトークン1を人力すると、対応する名前テーブ
ル8を作成する。
言データトークン1を人力すると、対応する名前テーブ
ル8を作成する。
次いで、参照範囲取得手段5は実行文トークン2を入力
し、ソースプログラムの実行文で参照される変数がAU
TO変数である場合に、その変数領域へのアクセスがソ
ースプログラム中のどこからどこまでかをソースプログ
ラムの先頭からの行数で示した参照範囲12を得て、そ
のAUTO変数に対応した名前テーブル8の参照範囲格
納域9に格納する。
し、ソースプログラムの実行文で参照される変数がAU
TO変数である場合に、その変数領域へのアクセスがソ
ースプログラム中のどこからどこまでかをソースプログ
ラムの先頭からの行数で示した参照範囲12を得て、そ
のAUTO変数に対応した名前テーブル8の参照範囲格
納域9に格納する。
次いで、メモリ共有可能データ識別手段6は全てのAU
TO変数に対して名前テーブル8中の参照範囲格納域9
に格納されている格納範囲■2を入力し、メモリ共有が
可能となる条件として参照している範囲に重なりのない
AUTO変数を見つけ出し、それらの変数同士の名前テ
ーブル8がチェーンされるように、名前テーブル8のメ
モリ共有名前テーブル識別子格納域10にメモリ共有可
能であるAUTO変数の名前テーブル8の論理的な識別
子であるメモリ共有名前テーブル識別子13を格納する
。
TO変数に対して名前テーブル8中の参照範囲格納域9
に格納されている格納範囲■2を入力し、メモリ共有が
可能となる条件として参照している範囲に重なりのない
AUTO変数を見つけ出し、それらの変数同士の名前テ
ーブル8がチェーンされるように、名前テーブル8のメ
モリ共有名前テーブル識別子格納域10にメモリ共有可
能であるAUTO変数の名前テーブル8の論理的な識別
子であるメモリ共有名前テーブル識別子13を格納する
。
次いで、割り付けアドレス取得手段7は名前テーブル8
のメモリ共有名前テーブル識別子格納域lOからメモリ
共有名前テーブル識別子13を入力し、そのメモリ共有
名前テーブル識別子13から対応する他の名前テーブル
8を取得し、メモリを共有できるAUTO変数に対する
名前テーブル8を1つのグループとみなし、1つのグル
ープに対して同一の割り付けアドレス14を決定し、そ
のグループに属するAUTO変数の名前テーブル8の割
り付けアドレス格納域11に格納する。
のメモリ共有名前テーブル識別子格納域lOからメモリ
共有名前テーブル識別子13を入力し、そのメモリ共有
名前テーブル識別子13から対応する他の名前テーブル
8を取得し、メモリを共有できるAUTO変数に対する
名前テーブル8を1つのグループとみなし、1つのグル
ープに対して同一の割り付けアドレス14を決定し、そ
のグループに属するAUTO変数の名前テーブル8の割
り付けアドレス格納域11に格納する。
第3図はソースプログラムの例を示したものであり、こ
のソースプログラム100で宣言されるALITO変数
A、B、C,Dに対する参照範囲が図示のような場合に
は、作成される名前テーブル8A、8B、8C,8Dは
第4図のような関係となる。すなわち、各名前テーブル
8A、8B、8C,8Dは次の名前テーブル識別子15
A、15B、15Gにより互いにチェーンされると共に
、AUTO変数ΔはAUTO変数りと共有が可能である
ことから、名前テーブル8Aのメモリ共有名前テーブル
識別子1 ’3 Aには名前テーブル8Dを指す値が入
り、また、AtJTo変数BはAUTO変数Cと共有が
可能であることから、名前テーブル8Bのメモリ共有名
前テーブル識別子13Bには名前テーブル8Cを指す値
が入って、互いにチェーンされる。
のソースプログラム100で宣言されるALITO変数
A、B、C,Dに対する参照範囲が図示のような場合に
は、作成される名前テーブル8A、8B、8C,8Dは
第4図のような関係となる。すなわち、各名前テーブル
8A、8B、8C,8Dは次の名前テーブル識別子15
A、15B、15Gにより互いにチェーンされると共に
、AUTO変数ΔはAUTO変数りと共有が可能である
ことから、名前テーブル8Aのメモリ共有名前テーブル
識別子1 ’3 Aには名前テーブル8Dを指す値が入
り、また、AtJTo変数BはAUTO変数Cと共有が
可能であることから、名前テーブル8Bのメモリ共有名
前テーブル識別子13Bには名前テーブル8Cを指す値
が入って、互いにチェーンされる。
しかして、コンパイラにより生成されたオブジェクトプ
ログラムないしはロードモジュールを電子計算機システ
ムで実行する際に、オペレーティングシステム等の動作
により、名前テーブル8の割り付けアドレス14に従っ
てAUTO変数のメモリへの割り付けが動的に行われる
。
ログラムないしはロードモジュールを電子計算機システ
ムで実行する際に、オペレーティングシステム等の動作
により、名前テーブル8の割り付けアドレス14に従っ
てAUTO変数のメモリへの割り付けが動的に行われる
。
以上説明したように本発明のAUTO変数割り付け方式
にあっては、複数のAUTO変数を同一のメモリに共有
して割り付けられるかどうかをコンパイラが識別し、可
能な限り共有を行うべくAUTO変数の割り付けアドレ
スを決定するようにしているので、AUTO変数を割り
付けるメモリの総サイズを大幅に減少することができ、
メモリの有効利用を図ることができる効果がある。
にあっては、複数のAUTO変数を同一のメモリに共有
して割り付けられるかどうかをコンパイラが識別し、可
能な限り共有を行うべくAUTO変数の割り付けアドレ
スを決定するようにしているので、AUTO変数を割り
付けるメモリの総サイズを大幅に減少することができ、
メモリの有効利用を図ることができる効果がある。
第1図は本発明のAUTO変数割り付け方式の一実施例
を示す構成図、 第2図は第1図における名前テーブルの論理的構成図、 第3図はAUTO変数の宣言を含むソースプログラムの
例を示す図および、 第4図は第3図のソースプログラム中のAUTO変数に
対応した名前テーブルの関連を示す図である。 図において、 1・・・・・・・・・宣言データトークン2・・・・・
・・・・実行文トークン 3・・・・・・・・・宣言データ処理部4・・・・・・
・・・名前テーブル作成部5・・・・・・・・・参照範
囲取得手段6・・・・・・・・・メモリ共有可能データ
識別手段7・・・・・・・・・削り付けアドレス取得手
段8・・・・・・・・・名前テーブル 9・・・・・・・・・参照範囲格納域 IO・・・・・・メモリ共有名前テーブル識別子格納域
11・・・・・・割り付けアドレス格納域I2・・・・
・・参照範囲 I3・・・・・・メモリ共有名前テーブル識別子14・
・・・・・割り付けアドレス 15・・・・・・次の名前テーブル識別子16・・・・
・変数名 I7・・・・・・記憶域 18・・・・・・属性 19・・・・・・精度または長さ 20・・・・・・フラグ 100・・・ソースプログラム
を示す構成図、 第2図は第1図における名前テーブルの論理的構成図、 第3図はAUTO変数の宣言を含むソースプログラムの
例を示す図および、 第4図は第3図のソースプログラム中のAUTO変数に
対応した名前テーブルの関連を示す図である。 図において、 1・・・・・・・・・宣言データトークン2・・・・・
・・・・実行文トークン 3・・・・・・・・・宣言データ処理部4・・・・・・
・・・名前テーブル作成部5・・・・・・・・・参照範
囲取得手段6・・・・・・・・・メモリ共有可能データ
識別手段7・・・・・・・・・削り付けアドレス取得手
段8・・・・・・・・・名前テーブル 9・・・・・・・・・参照範囲格納域 IO・・・・・・メモリ共有名前テーブル識別子格納域
11・・・・・・割り付けアドレス格納域I2・・・・
・・参照範囲 I3・・・・・・メモリ共有名前テーブル識別子14・
・・・・・割り付けアドレス 15・・・・・・次の名前テーブル識別子16・・・・
・変数名 I7・・・・・・記憶域 18・・・・・・属性 19・・・・・・精度または長さ 20・・・・・・フラグ 100・・・ソースプログラム
Claims (1)
- 【特許請求の範囲】 AUTO変数の宣言データトークンを入力して対応する
名前テーブルを作成する名前テーブル作成部と、 実行文トークンを入力してAUTO変数のソースプログ
ラム中の参照範囲を解析し、その参照範囲を対応する名
前テーブルに格納する参照範囲取得手段と、 全ての名前テーブルの参照範囲からメモリ共有可能なA
UTO変数を判別し、そのAUTO変数に対応する名前
テーブルの識別子を名前テーブルに格納するメモリ共有
可能データ識別手段と、名前テーブルの識別子に基づい
てAUTO変数を共有できるもの同士にグループ分けし
、同一のグループに属するAUTO変数に対して同一の
割り付けアドレスを決定して名前テーブルに格納する割
り付けアドレス取得手段とを備えたことを特徴とするA
UTO変数割り付け方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29081888A JPH02136930A (ja) | 1988-11-17 | 1988-11-17 | Auto変数割り付け方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29081888A JPH02136930A (ja) | 1988-11-17 | 1988-11-17 | Auto変数割り付け方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02136930A true JPH02136930A (ja) | 1990-05-25 |
Family
ID=17760881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29081888A Pending JPH02136930A (ja) | 1988-11-17 | 1988-11-17 | Auto変数割り付け方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH02136930A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134708A (en) * | 1997-02-13 | 2000-10-17 | Nec Corporation | Program compilation execution system |
JP2008305337A (ja) * | 2007-06-11 | 2008-12-18 | Panasonic Corp | プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム |
-
1988
- 1988-11-17 JP JP29081888A patent/JPH02136930A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134708A (en) * | 1997-02-13 | 2000-10-17 | Nec Corporation | Program compilation execution system |
JP2008305337A (ja) * | 2007-06-11 | 2008-12-18 | Panasonic Corp | プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5826082A (en) | Method for reserving resources | |
JPH07175698A (ja) | ファイルシステム | |
JPH02188833A (ja) | アプリケーションとデータベース管理システム間の相互通信システム及び方法 | |
JP2014504768A (ja) | 領域に基づくガベージ・コレクタを用いてクラスを漸進的にアンロードするための方法、コンピュータ・プログラム製品、および装置 | |
US5414826A (en) | System and method for memory management in microcomputer | |
US8006064B2 (en) | Lock-free vector utilizing a resource allocator for assigning memory exclusively to a thread | |
US7404060B2 (en) | Apparatus, program, and method for managing usage of memory | |
US7647482B2 (en) | Methods and apparatus for dynamic register scratching | |
US6600493B1 (en) | Allocating memory based on memory device organization | |
US5987529A (en) | Invoking a method in an object-oriented computer program | |
KR20050076702A (ko) | 멀티프로세서 시스템에서의 데이터 전송 방법과, 그방법을 수행하는 멀티프로세서 및 프로세서 | |
JP3844801B2 (ja) | インターフェース継承を伴うオブジェクト上での呼出しのための方法および機構 | |
US20050097258A1 (en) | Systems and methods for accessing thread private data | |
JPH02136930A (ja) | Auto変数割り付け方式 | |
JPH0370038A (ja) | 高級言語プログラムの変数割付け方式 | |
KR100315500B1 (ko) | 메모리할당방법 | |
JP2001051855A (ja) | メモリ分割管理方式 | |
JPH02304615A (ja) | 並列ディスク制御バッファの割当て方式 | |
JPS6126109B2 (ja) | ||
JPH08507630A (ja) | メモリ管理装置およびメモリ管理方法 | |
CN118132524A (zh) | 一种数据同步方法、装置、电子设备和可读存储介质 | |
JPS62192828A (ja) | フアイルスペ−ス割当て方式 | |
JPH0348950A (ja) | メモリ管理方式 | |
JPH08249225A (ja) | メモリ管理装置 | |
JPS60132241A (ja) | デ−タ処理装置 |