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
Application number
JP29081888A
Other languages
English (en)
Inventor
Tomoyuki Yui
朋之 湯井
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP29081888A priority Critical patent/JPH02136930A/ja
Publication of JPH02136930A publication Critical patent/JPH02136930A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、コンパイラにおいて、高級言語で記述された
ソースプログラム中で宣言されるAUTO変数をメモリ
に割り付ける方式に関するものである。
〔従来の技術〕
AUTO変数とは、変数の記憶域クラス属性として自動
(AUTOMAT I C)が指定された変数であり、
メモリに動的に割り付けが行われる変数である。
ところで、従来のコンパイラにおいては、複数のAt1
TO変数をそれぞれ別々のメモリに割り付けるようにし
ており、異なるAUTO変数を同一のメモリに割り付け
るということはなかった。
〔発明が解決しようとする課題〕
上述した従来の方式は、メモリ容量に充分な余裕があっ
てメモリサイズを考慮する必要がない場合には何ら問題
はなかったが、メモリサイズを考慮する必要がある場合
には、メモリの有効利用という観点から問題があった。
すなわち、従来の方式ではソースプログラムにおいて宣
言されるALIT○変数の数が多いとそれだけA IJ
 T O変数を割り付けるメモリの数が増加することに
なるが、本来、AUTO変数は動的に?Iり当てられる
ことを前提としており、必ずしもソースプログラムの全
範囲で使用されるとは限らないので、AUTO変数を割
り付けたメモリの利用率は非常に低いものであった。
本発明は上記の点に鑑み提案されたものであり、その目
的とするところは、AUTO変数を割り付けるメモリを
最大限にjJJ−することにより、メモリの有効利用を
図れるAUTO変数割り付け方式を提供することにある
〔課題を解決するための手段〕
本発明は上記の目的を達成するため、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変数に対して同一の割り付けアドレスを決定
して名前テーブルに格納する。
〔実施例〕
以下、本発明の実施例につき図面を参照して説明する。
第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を含んでいる。
次に上記の実施例につき各部の機能および動作を説明す
る。
宣言データ処理部3が起動されると、宣言データ処理部
3内の名前テーブル作成部4.参照範囲取得手段5.メ
モリ共有可能データ識別手段6割り付けアドレス取得手
段7が順次起動される。
先ず、名前テーブル作成部4はAUTO変数にかかる宣
言データトークン1を人力すると、対応する名前テーブ
ル8を作成する。
次いで、参照範囲取得手段5は実行文トークン2を入力
し、ソースプログラムの実行文で参照される変数がAU
TO変数である場合に、その変数領域へのアクセスがソ
ースプログラム中のどこからどこまでかをソースプログ
ラムの先頭からの行数で示した参照範囲12を得て、そ
のAUTO変数に対応した名前テーブル8の参照範囲格
納域9に格納する。
次いで、メモリ共有可能データ識別手段6は全てのAU
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に格納する。
第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を指す値
が入って、互いにチェーンされる。
しかして、コンパイラにより生成されたオブジェクトプ
ログラムないしはロードモジュールを電子計算機システ
ムで実行する際に、オペレーティングシステム等の動作
により、名前テーブル8の割り付けアドレス14に従っ
て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・・・ソースプログラム

Claims (1)

  1. 【特許請求の範囲】 AUTO変数の宣言データトークンを入力して対応する
    名前テーブルを作成する名前テーブル作成部と、 実行文トークンを入力してAUTO変数のソースプログ
    ラム中の参照範囲を解析し、その参照範囲を対応する名
    前テーブルに格納する参照範囲取得手段と、 全ての名前テーブルの参照範囲からメモリ共有可能なA
    UTO変数を判別し、そのAUTO変数に対応する名前
    テーブルの識別子を名前テーブルに格納するメモリ共有
    可能データ識別手段と、名前テーブルの識別子に基づい
    てAUTO変数を共有できるもの同士にグループ分けし
    、同一のグループに属するAUTO変数に対して同一の
    割り付けアドレスを決定して名前テーブルに格納する割
    り付けアドレス取得手段とを備えたことを特徴とするA
    UTO変数割り付け方式。
JP29081888A 1988-11-17 1988-11-17 Auto変数割り付け方式 Pending JPH02136930A (ja)

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)

* Cited by examiner, † Cited by third party
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 プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム

Cited By (2)

* Cited by examiner, † Cited by third party
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) デ−タ処理装置