JPH0370038A - 高級言語プログラムの変数割付け方式 - Google Patents

高級言語プログラムの変数割付け方式

Info

Publication number
JPH0370038A
JPH0370038A JP20541189A JP20541189A JPH0370038A JP H0370038 A JPH0370038 A JP H0370038A JP 20541189 A JP20541189 A JP 20541189A JP 20541189 A JP20541189 A JP 20541189A JP H0370038 A JPH0370038 A JP H0370038A
Authority
JP
Japan
Prior art keywords
initial value
name table
storage area
value information
equivalence
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
JP20541189A
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 JP20541189A priority Critical patent/JPH0370038A/ja
Publication of JPH0370038A publication Critical patent/JPH0370038A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は高級言語コンパイラのコンパイル時ニおけるS
 TAT I C変数のメモリへの割付は方式に関し、
特に5TAIC変数同志を同一のメモリへ割付ける方式
に関する。
(従来の技術) 従来、初期値を有するSTATIC変数の割付けは、同
一のメモリには割付けず、必らず異なるメモリに割付け
ていた。
(発明が解決しようとする課題) 上述した従来の初期値のあるSTATIC変数の割付は
方式は、メモリを共有できるSTATIC変数も必らず
異なったメモリに割付けている。
したがって、STATIC変数が多くなると、STAT
IC変数の割付けられているメモリサイズも増大すると
いう欠点がある。
本発明の目的は、コンパイラが複数の初期値のあるST
ATIC変数を同一のメモリに共有できるかを識別し、
初期値のあるSTATIC変数の割付はアドレスを決定
することにより上記欠点を除去し、メモリサイズの増大
することがないように構成した高級言語プログラムの変
数割付は方式を提供することにある。
(!!題を解決するための手段) 本発明による高級プログラムの変数割付は方式は、複数
の名前テーブルと、宣言データ処理部とを具備して構成
したものでいる。
上記構成にかいて、各名前テーブルは初期値情報格納域
と、同値初期値名前テーブル識別子格納域と、割付はア
ドレス格納域とを具備して構成したものである。
初期値情報格納域は、初期値のあるSTATIC変数の
初期値情報を格納するためのものである。
同値初期値名前テーブル識別子格納域は、上記初期値の
あるSTATIC変数に対するものと同じ初期値をもつ
他の名前テーブルへのポインタを格納するためのもので
ある。
割付はアドレス格納域は、上記変数の割付はアドレスを
格納するためのものである。
一方、上記構成において宣言データ処理部は、初期値情
報設定手段と、同値初期値名前テーブル取得手段と、メ
モリ共有可能データ識別手段と、割付はアドレス取得手
段とを具備して構成したものである。
初期値情報設定手段は、宣言データトークンを入力し、
初期値情報格納域に初期値情報を設定するためのもので
ある。
同値初期値名前テーブル取得手段は、初期値情報設定手
段により初期値情報格納域に設定された初期値情報を入
力し、同じ初期値情報を有する他の名前テーブルを検索
し、見つかった同じ初期値情報を有する他の名前テーブ
ルへのポインタである同値初期値名前テーブル識別子を
同値初期値名前テーブル識別子格納域へ格納するための
ものである。
メモリ共有可能データ識別手段は実行文トークンを入力
し、同値初期値名前テーブル取得手段により同値初期値
名前テーブル識別子格納域に格納された同値初期値名前
テーブル識別子からメモリを共有できるSTATIC変
数を識別し、当該STATIC変数に対する名前テーブ
ルへのポインタを同値初期値名前テーブル識別子格納域
へ設定するためのものである。
割付はアドレス取得手段は、メモリ共有可能データ識別
手段により同値初期値名前テーブル識別子格納域へ設定
された同値初期値名前テーブル識別子を入力し、割付は
アドレスを決定して割付はアドレス格納域に格納するた
めのものである。
(実施例) 次に、本発明について図面を参照して説明する。
第1図は、本発明による高級言語プログラムの変数割付
は方式の一実施例を示すブロック図である。
第1図にかいて、1は宣言データ処理部、2は名前テー
ブル作成部、3は初期値情報設定手段、4は同期初期値
名前テーブル取得手段、5はメモリ共有可能データ識別
手段、6は割付はアドレス取得手段、7は初期値情報格
納域、8は初期値情報、9は同値初期値名前テーブル識
別子格納域、10は同値初期値名前テーブル識別子、1
1は割付はアドレス格納域、12は割付はアドレス、1
Sは名前テーブル、14は宣言データトークン、15は
実行文トークンである。
第1図を参照すると、本発明の一実′M!i列はコンパ
イラの一部である宣言データ処理部1と、ソースプログ
ラム中の各変数の宣言ごとに作成される名前テーブル1
3と、宣言文に対するトークンである宣言データトーク
ン14と、実行文に対するトークンである実行文トーク
ン15とから構成される。
さらに、宣言データ処理部1は名前テーブル作成部2と
、メモリ共有可能データ識別手段5と、割付はアドレス
取得手段6とから或υ、名前テーブル作成部2は初期値
情報設定手段3と、同値初期値名前テーブル取得手段4
とを備えている。
名前テーブル1Sは初期値情報格納域7と、同値初期値
名前テーブル識別子格納域9と、割付はアドレス格納域
11とを備えている。
次に、本発明の方式による処理の流れを説明する。
宣言データ処理部1が起動されると、宣言データ処理部
1から名前テーブル作成部!、メモリ共有可能データ識
別手段5、および割付はアドレス取得手段6が順次、起
動される。さらに、名前テーブル作成部2から初期値情
報設定手段3、および同値初期値名前テーブル取得手段
4が順次、起動される。
名前テーブル作成部2は宣言された変数の情報を有する
宣言データトークン14を入力し、入力された変数情報
から名前テーブル13を作成する。
名前テーブル13は、例えば第2図に示すよう々構造を
有する。初期値情報設定手段3は、宣言データトークン
14の内部の初期値情報3を名前テーブル13のなかの
初期値情報格納域7へ設定する。変数に対して初期値が
存在しない場合には、初期値なしの情報を初期値情報格
納域7へ設定する。
同値初期値名前テーブル取得手段4は、現在作成中の名
前テーブルの初期値情報8と同じ初期値情報を有する名
前テーブル15を、名前テーブル13が登録された順と
は逆の順で検索する。そこで、同値初期値名前テーブル
取得手段4は、最初に見つかった名前テーブル1sへの
ポインタを同値初期値名前テーブル識別子10として、
名前テーブル1s中の同値初期値名前テーブル識別子格
納域9へ設定する。
ここで、同じ初期値情報8を有する名前テーブル13が
見つからなかった場合には、同値初期値名前テーブル識
別子格納域9へNULL値を設定する。
メモリ共有可能データ識別手段5は実行文トークン1s
を入力し、入力された実行文がある変数の内容を更新す
るような文であるときには、当該変数に対する名前テー
ブル13を検索する。このとき、名前テーブル1!のな
かの同値初期値名前テーブル識別子格納域9に設定され
ている値がNULL値でなければ、メモリ共有可能デー
タ識別手段6は名前テーブル15を同じ初期値情報を有
する名前テーブル13のチェーンから削除する。
割付はアドレス取得手段6は、同値初期値名前テーブル
識別子格納域9に格納されている同値初期値名前テーブ
ル識別子10を入力し、対応する名前テーブル15を検
索して、名前テーブル1sをグループ分けする。続いて
、割付はアドレス取得手段6は当該グループ内の名前テ
ーブル13のなかの割付はアドレス12を決定し、割付
はアドレス格納域11にこれを設定する。
第8図は、第1図においてソースプログラムにより名前
テーブルを関連づける模様を示す説明図である。第8図
にかいて、第8図(a)に示すようなソースプログラム
により第8図(b)に示すような名前テーブルの関連づ
けが実行される。
(発明の効果) 以上説明したように本発明は、コンパイラが複数の初期
値のあるSTATIC変数を同一メモリに共有できるか
を識別し、初期値のあるSTATIC変数の割付はアド
レスを決定することにより、初期値のあるSTATIC
変数割付は域の総サイズを減少できるという効果がある
【図面の簡単な説明】
第1図は、本発明による高級言語プログラムの変数割付
は方式の一実施例を示すブロック図である。 第2図は、第1図にかける名前テーブルの構造を示す説
明図である。 第8図は、第1図にかいてソースプログラムにより名前
テーブルを関連づける模様を示す説明図である。 1・・・宣言データ処理部 2・・・名前テーブル作成部 3・・・初期値情報設定手段 4・・・同値初期値名前テーブル取得手段5・・・メモ
リ共有可能データ識別手段6・・・割付はアドレス取得
手段 7・・・初期値情報格納域 8・・・初期値情報 9・・・同値初期値名前テーブル識別子格納域10・・
・同値初期値名前テーブル識別子11・・・割付はアド
レス格納域 12・・・割付はアドレス 13・・・名前テーブル 14・・・宣言データトークン 1s・・・実行文トークン

Claims (1)

    【特許請求の範囲】
  1. 複数の名前テーブルと宣言データ処理部とを具備して構
    成した高級言語プログラムの変数割付け方式であつて、
    前記各名前テーブルは初期値のあるSTATIC変数の
    初期値情報を格納するための初期値情報格納域と、前記
    初期値のあるSTATIC変数に対するものと同じ初期
    値をもつ他の名前テーブルへのポインタを格納するため
    の同値初期値名前テーブル識別子格納域と、前記変数の
    割付けアドレスを格納するための割付けアドレス格納域
    とを具備し、且つ、前記宣言データ処理部は宣言データ
    トークンを入力し、前記初期値情報格納域に初期値情報
    を設定するための初期値情報設定手段と、前記初期値情
    報設定手段により前記初期値情報格納域に設定された初
    期値情報を入力し、同じ初期値情報を有する他の名前テ
    ーブルを検索し、見つかつた前記同じ初期値情報を有す
    る他の名前テーブルへのポインタである同値初期値名前
    テーブル識別子を前記同値初期値名前テーブル識別子格
    納域へ格納するための同値初期値名前テーブル取得手段
    と、実行文トークンを入力し、前記同値初期値名前テー
    ブル取得手段により前記同値初期値名前テーブル識別子
    格納域に格納された前記同値初期値名前テーブル識別子
    からメモリを共有できるSTATIC変数を識別し、当
    該STATIC変数に対する名前テーブルへのポインタ
    を同値初期値名前テーブル識別子格納域へ設定するため
    のメモリ共有可能データ識別手段と、前記メモリ共有可
    能データ識別手段により前記同値初期値名前テーブル識
    別子格納域へ設定された前記同値初期値名前テーブル識
    別子を入力し、割付けアドレスを決定して前記割付けア
    ドレス格納域に格納するための割付けアドレス取得手段
    とを具備して構成したことを特徴とする高級言語プログ
    ラムの変数割付け方式。
JP20541189A 1989-08-08 1989-08-08 高級言語プログラムの変数割付け方式 Pending JPH0370038A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20541189A JPH0370038A (ja) 1989-08-08 1989-08-08 高級言語プログラムの変数割付け方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20541189A JPH0370038A (ja) 1989-08-08 1989-08-08 高級言語プログラムの変数割付け方式

Publications (1)

Publication Number Publication Date
JPH0370038A true JPH0370038A (ja) 1991-03-26

Family

ID=16506402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20541189A Pending JPH0370038A (ja) 1989-08-08 1989-08-08 高級言語プログラムの変数割付け方式

Country Status (1)

Country Link
JP (1) JPH0370038A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734906A (en) * 1993-06-29 1998-03-31 Fujitsu Limited Device for outputting initial values of data statement at high speed by using a proper work area
JP2008305337A (ja) * 2007-06-11 2008-12-18 Panasonic Corp プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム
US7694286B2 (en) 2005-02-10 2010-04-06 International Business Machines Corporation Apparatus and method for detecting base-register usage conflicts in computer code
WO2012069010A1 (zh) * 2010-11-25 2012-05-31 意法·爱立信半导体(北京)有限公司 静态存储的分配方法和装置
US8206238B2 (en) 2007-09-10 2012-06-26 Mrc Composite Products Co., Ltd. Shaft for golf club

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734906A (en) * 1993-06-29 1998-03-31 Fujitsu Limited Device for outputting initial values of data statement at high speed by using a proper work area
US7694286B2 (en) 2005-02-10 2010-04-06 International Business Machines Corporation Apparatus and method for detecting base-register usage conflicts in computer code
JP2008305337A (ja) * 2007-06-11 2008-12-18 Panasonic Corp プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム
US8206238B2 (en) 2007-09-10 2012-06-26 Mrc Composite Products Co., Ltd. Shaft for golf club
WO2012069010A1 (zh) * 2010-11-25 2012-05-31 意法·爱立信半导体(北京)有限公司 静态存储的分配方法和装置

Similar Documents

Publication Publication Date Title
US4511964A (en) Dynamic physical memory mapping and management of independent programming environments
US7240169B2 (en) Protocol for coordinating the distribution of shared memory
US20140130021A1 (en) System and method for translating program functions for correct handling of local-scope variables and computing system incorporating the same
JPH0370038A (ja) 高級言語プログラムの変数割付け方式
US5987529A (en) Invoking a method in an object-oriented computer program
US7386702B2 (en) Systems and methods for accessing thread private data
CN113971157A (zh) 多核soc的代码共享方法、装置、多核soc及介质
JPH0713823A (ja) 仮想計算機システムにおけるファイル資源管理方式
JPS62226367A (ja) デイジタル計算機システム
JPS6314255A (ja) 仮想記憶の割当て制御方式
JPS62144257A (ja) キヤツシユメモリ
JPH0198043A (ja) 動的リンク制御方式
JPH0357024A (ja) データ多重割付方式
JPH02171831A (ja) コンパイラのデータ接近方式
JPH02304615A (ja) 並列ディスク制御バッファの割当て方式
JPS601657B2 (ja) アドレス変換方法
JPS58115569A (ja) マルチプロセツサ方式
JPH03255533A (ja) プログラミング言語処理システムにおけるシンボル管理方式
JPS63146130A (ja) 知識単位管理方式
JPS62241047A (ja) デ−タベ−ス管理システムによる入出力バツフアの共用制御方法
WO1988007720A1 (en) Dynamically assignable shared register sets
JPH0348950A (ja) メモリ管理方式
JPH03166628A (ja) メモリ管理方法
JPH03265936A (ja) コンパイル処理方式
JPH0239242A (ja) 電子計算機システムの一時作業領域割付方式