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
Links
- 230000015654 memory Effects 0.000 claims abstract description 28
- 230000003068 static effect Effects 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- KOMNUTZXSVSERR-UHFFFAOYSA-N 1,3,5-tris(prop-2-enyl)-1,3,5-triazinane-2,4,6-trione Chemical compound C=CCN1C(=O)N(CC=C)C(=O)N(CC=C)C1=O KOMNUTZXSVSERR-UHFFFAOYSA-N 0.000 description 1
- 108010007666 IMP cyclohydrolase Proteins 0.000 description 1
- 102100020796 Inosine 5'-monophosphate cyclohydrolase Human genes 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は高級言語コンパイラのコンパイル時ニおけるS
TAT I C変数のメモリへの割付は方式に関し、
特に5TAIC変数同志を同一のメモリへ割付ける方式
に関する。
TAT I C変数のメモリへの割付は方式に関し、
特に5TAIC変数同志を同一のメモリへ割付ける方式
に関する。
(従来の技術)
従来、初期値を有するSTATIC変数の割付けは、同
一のメモリには割付けず、必らず異なるメモリに割付け
ていた。
一のメモリには割付けず、必らず異なるメモリに割付け
ていた。
(発明が解決しようとする課題)
上述した従来の初期値のあるSTATIC変数の割付は
方式は、メモリを共有できるSTATIC変数も必らず
異なったメモリに割付けている。
方式は、メモリを共有できるSTATIC変数も必らず
異なったメモリに割付けている。
したがって、STATIC変数が多くなると、STAT
IC変数の割付けられているメモリサイズも増大すると
いう欠点がある。
IC変数の割付けられているメモリサイズも増大すると
いう欠点がある。
本発明の目的は、コンパイラが複数の初期値のあるST
ATIC変数を同一のメモリに共有できるかを識別し、
初期値のあるSTATIC変数の割付はアドレスを決定
することにより上記欠点を除去し、メモリサイズの増大
することがないように構成した高級言語プログラムの変
数割付は方式を提供することにある。
ATIC変数を同一のメモリに共有できるかを識別し、
初期値のあるSTATIC変数の割付はアドレスを決定
することにより上記欠点を除去し、メモリサイズの増大
することがないように構成した高級言語プログラムの変
数割付は方式を提供することにある。
(!!題を解決するための手段)
本発明による高級プログラムの変数割付は方式は、複数
の名前テーブルと、宣言データ処理部とを具備して構成
したものでいる。
の名前テーブルと、宣言データ処理部とを具備して構成
したものでいる。
上記構成にかいて、各名前テーブルは初期値情報格納域
と、同値初期値名前テーブル識別子格納域と、割付はア
ドレス格納域とを具備して構成したものである。
と、同値初期値名前テーブル識別子格納域と、割付はア
ドレス格納域とを具備して構成したものである。
初期値情報格納域は、初期値のあるSTATIC変数の
初期値情報を格納するためのものである。
初期値情報を格納するためのものである。
同値初期値名前テーブル識別子格納域は、上記初期値の
あるSTATIC変数に対するものと同じ初期値をもつ
他の名前テーブルへのポインタを格納するためのもので
ある。
あるSTATIC変数に対するものと同じ初期値をもつ
他の名前テーブルへのポインタを格納するためのもので
ある。
割付はアドレス格納域は、上記変数の割付はアドレスを
格納するためのものである。
格納するためのものである。
一方、上記構成において宣言データ処理部は、初期値情
報設定手段と、同値初期値名前テーブル取得手段と、メ
モリ共有可能データ識別手段と、割付はアドレス取得手
段とを具備して構成したものである。
報設定手段と、同値初期値名前テーブル取得手段と、メ
モリ共有可能データ識別手段と、割付はアドレス取得手
段とを具備して構成したものである。
初期値情報設定手段は、宣言データトークンを入力し、
初期値情報格納域に初期値情報を設定するためのもので
ある。
初期値情報格納域に初期値情報を設定するためのもので
ある。
同値初期値名前テーブル取得手段は、初期値情報設定手
段により初期値情報格納域に設定された初期値情報を入
力し、同じ初期値情報を有する他の名前テーブルを検索
し、見つかった同じ初期値情報を有する他の名前テーブ
ルへのポインタである同値初期値名前テーブル識別子を
同値初期値名前テーブル識別子格納域へ格納するための
ものである。
段により初期値情報格納域に設定された初期値情報を入
力し、同じ初期値情報を有する他の名前テーブルを検索
し、見つかった同じ初期値情報を有する他の名前テーブ
ルへのポインタである同値初期値名前テーブル識別子を
同値初期値名前テーブル識別子格納域へ格納するための
ものである。
メモリ共有可能データ識別手段は実行文トークンを入力
し、同値初期値名前テーブル取得手段により同値初期値
名前テーブル識別子格納域に格納された同値初期値名前
テーブル識別子からメモリを共有できるSTATIC変
数を識別し、当該STATIC変数に対する名前テーブ
ルへのポインタを同値初期値名前テーブル識別子格納域
へ設定するためのものである。
し、同値初期値名前テーブル取得手段により同値初期値
名前テーブル識別子格納域に格納された同値初期値名前
テーブル識別子からメモリを共有できるSTATIC変
数を識別し、当該STATIC変数に対する名前テーブ
ルへのポインタを同値初期値名前テーブル識別子格納域
へ設定するためのものである。
割付はアドレス取得手段は、メモリ共有可能データ識別
手段により同値初期値名前テーブル識別子格納域へ設定
された同値初期値名前テーブル識別子を入力し、割付は
アドレスを決定して割付はアドレス格納域に格納するた
めのものである。
手段により同値初期値名前テーブル識別子格納域へ設定
された同値初期値名前テーブル識別子を入力し、割付は
アドレスを決定して割付はアドレス格納域に格納するた
めのものである。
(実施例)
次に、本発明について図面を参照して説明する。
第1図は、本発明による高級言語プログラムの変数割付
は方式の一実施例を示すブロック図である。
は方式の一実施例を示すブロック図である。
第1図にかいて、1は宣言データ処理部、2は名前テー
ブル作成部、3は初期値情報設定手段、4は同期初期値
名前テーブル取得手段、5はメモリ共有可能データ識別
手段、6は割付はアドレス取得手段、7は初期値情報格
納域、8は初期値情報、9は同値初期値名前テーブル識
別子格納域、10は同値初期値名前テーブル識別子、1
1は割付はアドレス格納域、12は割付はアドレス、1
Sは名前テーブル、14は宣言データトークン、15は
実行文トークンである。
ブル作成部、3は初期値情報設定手段、4は同期初期値
名前テーブル取得手段、5はメモリ共有可能データ識別
手段、6は割付はアドレス取得手段、7は初期値情報格
納域、8は初期値情報、9は同値初期値名前テーブル識
別子格納域、10は同値初期値名前テーブル識別子、1
1は割付はアドレス格納域、12は割付はアドレス、1
Sは名前テーブル、14は宣言データトークン、15は
実行文トークンである。
第1図を参照すると、本発明の一実′M!i列はコンパ
イラの一部である宣言データ処理部1と、ソースプログ
ラム中の各変数の宣言ごとに作成される名前テーブル1
3と、宣言文に対するトークンである宣言データトーク
ン14と、実行文に対するトークンである実行文トーク
ン15とから構成される。
イラの一部である宣言データ処理部1と、ソースプログ
ラム中の各変数の宣言ごとに作成される名前テーブル1
3と、宣言文に対するトークンである宣言データトーク
ン14と、実行文に対するトークンである実行文トーク
ン15とから構成される。
さらに、宣言データ処理部1は名前テーブル作成部2と
、メモリ共有可能データ識別手段5と、割付はアドレス
取得手段6とから或υ、名前テーブル作成部2は初期値
情報設定手段3と、同値初期値名前テーブル取得手段4
とを備えている。
、メモリ共有可能データ識別手段5と、割付はアドレス
取得手段6とから或υ、名前テーブル作成部2は初期値
情報設定手段3と、同値初期値名前テーブル取得手段4
とを備えている。
名前テーブル1Sは初期値情報格納域7と、同値初期値
名前テーブル識別子格納域9と、割付はアドレス格納域
11とを備えている。
名前テーブル識別子格納域9と、割付はアドレス格納域
11とを備えている。
次に、本発明の方式による処理の流れを説明する。
宣言データ処理部1が起動されると、宣言データ処理部
1から名前テーブル作成部!、メモリ共有可能データ識
別手段5、および割付はアドレス取得手段6が順次、起
動される。さらに、名前テーブル作成部2から初期値情
報設定手段3、および同値初期値名前テーブル取得手段
4が順次、起動される。
1から名前テーブル作成部!、メモリ共有可能データ識
別手段5、および割付はアドレス取得手段6が順次、起
動される。さらに、名前テーブル作成部2から初期値情
報設定手段3、および同値初期値名前テーブル取得手段
4が順次、起動される。
名前テーブル作成部2は宣言された変数の情報を有する
宣言データトークン14を入力し、入力された変数情報
から名前テーブル13を作成する。
宣言データトークン14を入力し、入力された変数情報
から名前テーブル13を作成する。
名前テーブル13は、例えば第2図に示すよう々構造を
有する。初期値情報設定手段3は、宣言データトークン
14の内部の初期値情報3を名前テーブル13のなかの
初期値情報格納域7へ設定する。変数に対して初期値が
存在しない場合には、初期値なしの情報を初期値情報格
納域7へ設定する。
有する。初期値情報設定手段3は、宣言データトークン
14の内部の初期値情報3を名前テーブル13のなかの
初期値情報格納域7へ設定する。変数に対して初期値が
存在しない場合には、初期値なしの情報を初期値情報格
納域7へ設定する。
同値初期値名前テーブル取得手段4は、現在作成中の名
前テーブルの初期値情報8と同じ初期値情報を有する名
前テーブル15を、名前テーブル13が登録された順と
は逆の順で検索する。そこで、同値初期値名前テーブル
取得手段4は、最初に見つかった名前テーブル1sへの
ポインタを同値初期値名前テーブル識別子10として、
名前テーブル1s中の同値初期値名前テーブル識別子格
納域9へ設定する。
前テーブルの初期値情報8と同じ初期値情報を有する名
前テーブル15を、名前テーブル13が登録された順と
は逆の順で検索する。そこで、同値初期値名前テーブル
取得手段4は、最初に見つかった名前テーブル1sへの
ポインタを同値初期値名前テーブル識別子10として、
名前テーブル1s中の同値初期値名前テーブル識別子格
納域9へ設定する。
ここで、同じ初期値情報8を有する名前テーブル13が
見つからなかった場合には、同値初期値名前テーブル識
別子格納域9へNULL値を設定する。
見つからなかった場合には、同値初期値名前テーブル識
別子格納域9へNULL値を設定する。
メモリ共有可能データ識別手段5は実行文トークン1s
を入力し、入力された実行文がある変数の内容を更新す
るような文であるときには、当該変数に対する名前テー
ブル13を検索する。このとき、名前テーブル1!のな
かの同値初期値名前テーブル識別子格納域9に設定され
ている値がNULL値でなければ、メモリ共有可能デー
タ識別手段6は名前テーブル15を同じ初期値情報を有
する名前テーブル13のチェーンから削除する。
を入力し、入力された実行文がある変数の内容を更新す
るような文であるときには、当該変数に対する名前テー
ブル13を検索する。このとき、名前テーブル1!のな
かの同値初期値名前テーブル識別子格納域9に設定され
ている値がNULL値でなければ、メモリ共有可能デー
タ識別手段6は名前テーブル15を同じ初期値情報を有
する名前テーブル13のチェーンから削除する。
割付はアドレス取得手段6は、同値初期値名前テーブル
識別子格納域9に格納されている同値初期値名前テーブ
ル識別子10を入力し、対応する名前テーブル15を検
索して、名前テーブル1sをグループ分けする。続いて
、割付はアドレス取得手段6は当該グループ内の名前テ
ーブル13のなかの割付はアドレス12を決定し、割付
はアドレス格納域11にこれを設定する。
識別子格納域9に格納されている同値初期値名前テーブ
ル識別子10を入力し、対応する名前テーブル15を検
索して、名前テーブル1sをグループ分けする。続いて
、割付はアドレス取得手段6は当該グループ内の名前テ
ーブル13のなかの割付はアドレス12を決定し、割付
はアドレス格納域11にこれを設定する。
第8図は、第1図においてソースプログラムにより名前
テーブルを関連づける模様を示す説明図である。第8図
にかいて、第8図(a)に示すようなソースプログラム
により第8図(b)に示すような名前テーブルの関連づ
けが実行される。
テーブルを関連づける模様を示す説明図である。第8図
にかいて、第8図(a)に示すようなソースプログラム
により第8図(b)に示すような名前テーブルの関連づ
けが実行される。
(発明の効果)
以上説明したように本発明は、コンパイラが複数の初期
値のあるSTATIC変数を同一メモリに共有できるか
を識別し、初期値のあるSTATIC変数の割付はアド
レスを決定することにより、初期値のあるSTATIC
変数割付は域の総サイズを減少できるという効果がある
。
値のあるSTATIC変数を同一メモリに共有できるか
を識別し、初期値のあるSTATIC変数の割付はアド
レスを決定することにより、初期値のあるSTATIC
変数割付は域の総サイズを減少できるという効果がある
。
第1図は、本発明による高級言語プログラムの変数割付
は方式の一実施例を示すブロック図である。 第2図は、第1図にかける名前テーブルの構造を示す説
明図である。 第8図は、第1図にかいてソースプログラムにより名前
テーブルを関連づける模様を示す説明図である。 1・・・宣言データ処理部 2・・・名前テーブル作成部 3・・・初期値情報設定手段 4・・・同値初期値名前テーブル取得手段5・・・メモ
リ共有可能データ識別手段6・・・割付はアドレス取得
手段 7・・・初期値情報格納域 8・・・初期値情報 9・・・同値初期値名前テーブル識別子格納域10・・
・同値初期値名前テーブル識別子11・・・割付はアド
レス格納域 12・・・割付はアドレス 13・・・名前テーブル 14・・・宣言データトークン 1s・・・実行文トークン
は方式の一実施例を示すブロック図である。 第2図は、第1図にかける名前テーブルの構造を示す説
明図である。 第8図は、第1図にかいてソースプログラムにより名前
テーブルを関連づける模様を示す説明図である。 1・・・宣言データ処理部 2・・・名前テーブル作成部 3・・・初期値情報設定手段 4・・・同値初期値名前テーブル取得手段5・・・メモ
リ共有可能データ識別手段6・・・割付はアドレス取得
手段 7・・・初期値情報格納域 8・・・初期値情報 9・・・同値初期値名前テーブル識別子格納域10・・
・同値初期値名前テーブル識別子11・・・割付はアド
レス格納域 12・・・割付はアドレス 13・・・名前テーブル 14・・・宣言データトークン 1s・・・実行文トークン
Claims (1)
- 複数の名前テーブルと宣言データ処理部とを具備して構
成した高級言語プログラムの変数割付け方式であつて、
前記各名前テーブルは初期値のあるSTATIC変数の
初期値情報を格納するための初期値情報格納域と、前記
初期値のあるSTATIC変数に対するものと同じ初期
値をもつ他の名前テーブルへのポインタを格納するため
の同値初期値名前テーブル識別子格納域と、前記変数の
割付けアドレスを格納するための割付けアドレス格納域
とを具備し、且つ、前記宣言データ処理部は宣言データ
トークンを入力し、前記初期値情報格納域に初期値情報
を設定するための初期値情報設定手段と、前記初期値情
報設定手段により前記初期値情報格納域に設定された初
期値情報を入力し、同じ初期値情報を有する他の名前テ
ーブルを検索し、見つかつた前記同じ初期値情報を有す
る他の名前テーブルへのポインタである同値初期値名前
テーブル識別子を前記同値初期値名前テーブル識別子格
納域へ格納するための同値初期値名前テーブル取得手段
と、実行文トークンを入力し、前記同値初期値名前テー
ブル取得手段により前記同値初期値名前テーブル識別子
格納域に格納された前記同値初期値名前テーブル識別子
からメモリを共有できるSTATIC変数を識別し、当
該STATIC変数に対する名前テーブルへのポインタ
を同値初期値名前テーブル識別子格納域へ設定するため
のメモリ共有可能データ識別手段と、前記メモリ共有可
能データ識別手段により前記同値初期値名前テーブル識
別子格納域へ設定された前記同値初期値名前テーブル識
別子を入力し、割付けアドレスを決定して前記割付けア
ドレス格納域に格納するための割付けアドレス取得手段
とを具備して構成したことを特徴とする高級言語プログ
ラムの変数割付け方式。
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)
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 |
-
1989
- 1989-08-08 JP JP20541189A patent/JPH0370038A/ja active Pending
Cited By (5)
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 |
---|---|---|
US6341338B1 (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) | 高級言語プログラムの変数割付け方式 | |
US7386702B2 (en) | Systems and methods for accessing thread private data | |
EP0175398A2 (en) | Data processing system comprising a memory access controller which is provided for combining descriptor bits of different descriptors associated with virtual addresses | |
CN113971157A (zh) | 多核soc的代码共享方法、装置、多核soc及介质 | |
JPH0713823A (ja) | 仮想計算機システムにおけるファイル資源管理方式 | |
JPS62226367A (ja) | デイジタル計算機システム | |
JP3304445B2 (ja) | プログラム生成処理装置 | |
JPS6314255A (ja) | 仮想記憶の割当て制御方式 | |
JPS62144257A (ja) | キヤツシユメモリ | |
JPH0357024A (ja) | データ多重割付方式 | |
JPH02171831A (ja) | コンパイラのデータ接近方式 | |
JPH02304615A (ja) | 並列ディスク制御バッファの割当て方式 | |
JPH03255533A (ja) | プログラミング言語処理システムにおけるシンボル管理方式 | |
JPS6353660A (ja) | 仮想記憶空間制御方式 | |
JPS63146130A (ja) | 知識単位管理方式 | |
JPS62241047A (ja) | デ−タベ−ス管理システムによる入出力バツフアの共用制御方法 | |
WO1988007720A1 (en) | Dynamically assignable shared register sets | |
JPH0348950A (ja) | メモリ管理方式 | |
JPH03166628A (ja) | メモリ管理方法 | |
Beckstrand | Experiences prosecuting software related patent applications | |
JPH03265936A (ja) | コンパイル処理方式 | |
JPH0239242A (ja) | 電子計算機システムの一時作業領域割付方式 | |
JPH02302854A (ja) | 仮想記憶領域管理方式 |