JPH03109642A - コンパイル装置 - Google Patents
コンパイル装置Info
- Publication number
- JPH03109642A JPH03109642A JP1246974A JP24697489A JPH03109642A JP H03109642 A JPH03109642 A JP H03109642A JP 1246974 A JP1246974 A JP 1246974A JP 24697489 A JP24697489 A JP 24697489A JP H03109642 A JPH03109642 A JP H03109642A
- Authority
- JP
- Japan
- Prior art keywords
- data
- allocation
- order
- references
- order information
- 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
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、コンピュータシステムのコンパイラに利用す
る。特に、データ接近を行うときのデータ割付手段に関
する。
る。特に、データ接近を行うときのデータ割付手段に関
する。
本発明は、ベースアドレスに対する相対アドレスでデー
タアクセスを行うコンピュータシステムのコンパイル装
置において、 参照個数およびデータ長に応じてデータの割付けを行う
ことにより、 翻訳速度および実行速度の高速化を図ることができるよ
うにしたものである。
タアクセスを行うコンピュータシステムのコンパイル装
置において、 参照個数およびデータ長に応じてデータの割付けを行う
ことにより、 翻訳速度および実行速度の高速化を図ることができるよ
うにしたものである。
従来、データ割付けは利用者の宣言類や参照順に行われ
ており、利用者の宣言や参照がデータC、データB1デ
ータA1データDの順にされているとすると、データの
割付けもデータC2データB1データA1データDの順
に行われていた。
ており、利用者の宣言や参照がデータC、データB1デ
ータA1データDの順にされているとすると、データの
割付けもデータC2データB1データA1データDの順
に行われていた。
このような従来例では、参照のないデータや参照の少な
いデータを利用者が先に宣言すると、参照の多いデータ
がデータ領域の最大ディスプレースメント以上の領域に
割付けられる可能性が高くなり、データ接近のためのペ
ースレジスタへのロード命令の出力、ペースレジスタか
らの相対アドレスの算出などの処理を翻訳時にせねばな
らず、したがって翻訳速度が低下し、さらに目的プログ
ラムのステップ数も増えるので、実行時の効率が低下す
る欠点がある。
いデータを利用者が先に宣言すると、参照の多いデータ
がデータ領域の最大ディスプレースメント以上の領域に
割付けられる可能性が高くなり、データ接近のためのペ
ースレジスタへのロード命令の出力、ペースレジスタか
らの相対アドレスの算出などの処理を翻訳時にせねばな
らず、したがって翻訳速度が低下し、さらに目的プログ
ラムのステップ数も増えるので、実行時の効率が低下す
る欠点がある。
また、データ長も考慮にいれていないので、参照回数に
差が無くとも最大ディスプレースメント以上のデータが
先に宣言または参照されると、それが先に割付けられ、
次に割付けたデータを参照するにはペースレジスタへの
ロード命令の出力などのデータ接近のための処理と出力
を行わなければならず、翻訳速度および実行速度の低下
を招く欠点がある。
差が無くとも最大ディスプレースメント以上のデータが
先に宣言または参照されると、それが先に割付けられ、
次に割付けたデータを参照するにはペースレジスタへの
ロード命令の出力などのデータ接近のための処理と出力
を行わなければならず、翻訳速度および実行速度の低下
を招く欠点がある。
本発明はこのような欠点を除去するもので、翻訳速度お
よび実行速度の低下を招かないコンパイル装置を提供す
ることを目的とする。
よび実行速度の低下を招かないコンパイル装置を提供す
ることを目的とする。
本発明は、最大ディスプレースメントの間隔で割当てた
ベースアドレスからの相対アドレスに応じてデータアク
セスを行うコンパイル装置において、各データの記号表
へのポインタ値を抽出し、このポインタ値をデータの参
照回数の多い順に、また参照回数の同じデータが複数個
存在するときはデータ長の短い順に整列して割付順情報
を生成する整列手段と、上北整列手段が生成した割付順
情報に基づきデータの割付は行うデータ割付手段とを備
えたことを特徴とする。
ベースアドレスからの相対アドレスに応じてデータアク
セスを行うコンパイル装置において、各データの記号表
へのポインタ値を抽出し、このポインタ値をデータの参
照回数の多い順に、また参照回数の同じデータが複数個
存在するときはデータ長の短い順に整列して割付順情報
を生成する整列手段と、上北整列手段が生成した割付順
情報に基づきデータの割付は行うデータ割付手段とを備
えたことを特徴とする。
各データの記号表へのポインタ値を得て、そのポインタ
値をデータの参照回数の多い順にさらに参照回数の同じ
データが複数存在するときはデータ値の小さい順に整列
する。この整列済みのポインタ値を保存した割付は順情
報と最適割付は順整列手役が生成した割付は順情報どを
人力し、その情報をもとに参照回数の多いデータからさ
らに参照回数が同じデータ間ではデータ長の小さいデー
タからデータ割付けを行う。
値をデータの参照回数の多い順にさらに参照回数の同じ
データが複数存在するときはデータ値の小さい順に整列
する。この整列済みのポインタ値を保存した割付は順情
報と最適割付は順整列手役が生成した割付は順情報どを
人力し、その情報をもとに参照回数の多いデータからさ
らに参照回数が同じデータ間ではデータ長の小さいデー
タからデータ割付けを行う。
以下、本発明の一実施例について図面を参照して説明す
る。第1図はこの実施例の構成を示すブロック図である
。この実施例は、第1図に示すように、最大ディスプレ
ースメントの間隔で割当てたベースアドレスからの相対
アドレスに応じてデータアクセスを行う手段を備え、さ
らに、本発明の特徴とする手段として、各データの記号
表へのポインタ値を抽出し、このポインタ値をデータの
参照回数の多い順に、また参照回数の同じデータが複数
個存在するときはデータ長の短い順に整列して割付順情
報を生成する整列手段である最適側付順整列手段9と、
上記整列手段が生成した割付順情報に基づきデータの割
付は行うデータ割付手段である最適割付順データ割付手
段5を備える。
る。第1図はこの実施例の構成を示すブロック図である
。この実施例は、第1図に示すように、最大ディスプレ
ースメントの間隔で割当てたベースアドレスからの相対
アドレスに応じてデータアクセスを行う手段を備え、さ
らに、本発明の特徴とする手段として、各データの記号
表へのポインタ値を抽出し、このポインタ値をデータの
参照回数の多い順に、また参照回数の同じデータが複数
個存在するときはデータ長の短い順に整列して割付順情
報を生成する整列手段である最適側付順整列手段9と、
上記整列手段が生成した割付順情報に基づきデータの割
付は行うデータ割付手段である最適割付順データ割付手
段5を備える。
すなわち、原始プログラム1をコンパイラのフロントエ
ンド2が入力し、コード生成および目的プログラムの出
力を主に担当するバックエンド6に情報源として中間言
語8を出力する。フロントエンド2の中で利用者が記述
したプログラムのうち手続部の解析を主に担当する手続
部解析部3に本発明の特徴とする手段である最適側付順
整列手段9が位置する。
ンド2が入力し、コード生成および目的プログラムの出
力を主に担当するバックエンド6に情報源として中間言
語8を出力する。フロントエンド2の中で利用者が記述
したプログラムのうち手続部の解析を主に担当する手続
部解析部3に本発明の特徴とする手段である最適側付順
整列手段9が位置する。
次に、この実施例の動作を説明する。
まず、最適側付順整列手段9を含む手続部解析部3の動
作は、第2図を参照すると、文の一単位について(たと
えば、代入や比較などの一単位)中間言語8を生成した
後に(ステップ321、S22および523) 、関連
するデータの記号表を得る(ステップ524)。すなわ
ち、利用者がこれがデータAにデータBの内容を代入す
るといった言語仕様を記述すると、生成する中間言語は
代入であるという情報とそれにAとBの記号表が関連付
けられる。得られた記号表から1番上のレベル番号をも
つデータであるか否かを調べ(ステップ525)、従属
するレベルのデータであったら1番上のレベルのデータ
の記号表を得る(ステップ526)。これは、1番上の
レベルのデータを割付けて初めてそれに従属するレベル
のデータの割付はアドレスが決定されるからである。こ
うして得られた1番上のレベルのデータの記号表には初
期値がオフのビットが用意してあり、仮にこれを登録フ
ラグとすると、登録フラグが初期状態であるか否かを調
べ(ステップ527) 、初期状態のオフであればオン
にしくステップ529)、初めての参照のため割付順情
報4の中の参照回数に初期値「1」を入れ、記号表のア
ドレスをポインタ値として登録し、記号表に含まれるデ
ータ長も登録し、記号表の方にも登録先のアドレスを保
存する(ステップ530)。
作は、第2図を参照すると、文の一単位について(たと
えば、代入や比較などの一単位)中間言語8を生成した
後に(ステップ321、S22および523) 、関連
するデータの記号表を得る(ステップ524)。すなわ
ち、利用者がこれがデータAにデータBの内容を代入す
るといった言語仕様を記述すると、生成する中間言語は
代入であるという情報とそれにAとBの記号表が関連付
けられる。得られた記号表から1番上のレベル番号をも
つデータであるか否かを調べ(ステップ525)、従属
するレベルのデータであったら1番上のレベルのデータ
の記号表を得る(ステップ526)。これは、1番上の
レベルのデータを割付けて初めてそれに従属するレベル
のデータの割付はアドレスが決定されるからである。こ
うして得られた1番上のレベルのデータの記号表には初
期値がオフのビットが用意してあり、仮にこれを登録フ
ラグとすると、登録フラグが初期状態であるか否かを調
べ(ステップ527) 、初期状態のオフであればオン
にしくステップ529)、初めての参照のため割付順情
報4の中の参照回数に初期値「1」を入れ、記号表のア
ドレスをポインタ値として登録し、記号表に含まれるデ
ータ長も登録し、記号表の方にも登録先のアドレスを保
存する(ステップ530)。
登録フラグがオンであれば、初めての参照のときに記号
表に保存しておいた登録先のアドレスからこれをポイン
タ値として該当する割付順情報を得、そこの参照回数を
一つカウントアツプする(ステップ328)。この一連
の動作を繰り返し手続部が終了するとくステップ522
)、参照回数が1回以上のデータをすべて登録した割付
順情報4を参照回数をキーとし、重複した場合はデータ
長をさらにキーとして参照回数の多い順に、同じ参照回
数内ではデータ長の小さい順に整列する(ステップ53
1)。割付順情報のデザイン例を第3図および第4図に
示す。割付順情報への登録例が、第3図に示すように、
データCSB、Aの次にデータDが参照された場合に、
データDの記号表35のアドレスが割付順情報31の4
番目の情報として登録される。また、第4図に示すよう
に、利用者のプログラム中で参照されたデータがデータ
A、BSC。
表に保存しておいた登録先のアドレスからこれをポイン
タ値として該当する割付順情報を得、そこの参照回数を
一つカウントアツプする(ステップ328)。この一連
の動作を繰り返し手続部が終了するとくステップ522
)、参照回数が1回以上のデータをすべて登録した割付
順情報4を参照回数をキーとし、重複した場合はデータ
長をさらにキーとして参照回数の多い順に、同じ参照回
数内ではデータ長の小さい順に整列する(ステップ53
1)。割付順情報のデザイン例を第3図および第4図に
示す。割付順情報への登録例が、第3図に示すように、
データCSB、Aの次にデータDが参照された場合に、
データDの記号表35のアドレスが割付順情報31の4
番目の情報として登録される。また、第4図に示すよう
に、利用者のプログラム中で参照されたデータがデータ
A、BSC。
Dに限られると、割付順情報に登録されるのもこの4個
の記号表のみとなる。これを参照回数の多い順に、さら
に同じ参照回数内ではデータ長の小さい順に整列したも
のが割付順情報41である。
の記号表のみとなる。これを参照回数の多い順に、さら
に同じ参照回数内ではデータ長の小さい順に整列したも
のが割付順情報41である。
割付順情報41をもとに実際に割付処理を行うのが最適
割付順データ割付手段5で、フロントエンド2とバック
エンド6の間に位置し、その動作は、第5図を参照する
と、最適側付順整列手段9が生成した整列済みの割付順
情報4を入力し、参照回数の多い順に、参照回数の同じ
データが複数存在するときはその中でデータ長の小さい
順にデータを割付ける(ステップ551)。このように
して割付けたデータの例を第6図に示す。通常データ領
域の先頭を示すアドレスaをペースレジスタ0にロード
する命令は無条件に出力するためこのように割付ければ
参照の多いデータA、BSCのデータ接近のために新た
にペースレジスタへのロード命令を出力する必要がない
。表1は、第6図にかかわる表で、各データ参照の際に
データ接近のために出力するオブジェクトを示す。
割付順データ割付手段5で、フロントエンド2とバック
エンド6の間に位置し、その動作は、第5図を参照する
と、最適側付順整列手段9が生成した整列済みの割付順
情報4を入力し、参照回数の多い順に、参照回数の同じ
データが複数存在するときはその中でデータ長の小さい
順にデータを割付ける(ステップ551)。このように
して割付けたデータの例を第6図に示す。通常データ領
域の先頭を示すアドレスaをペースレジスタ0にロード
する命令は無条件に出力するためこのように割付ければ
参照の多いデータA、BSCのデータ接近のために新た
にペースレジスタへのロード命令を出力する必要がない
。表1は、第6図にかかわる表で、各データ参照の際に
データ接近のために出力するオブジェクトを示す。
ところが従来の割付は方式では、第7図に示すように、
データAのデータ接近のためにアドレスdをペースレジ
スタ3にロードする命令、データBのデータ接近のため
にアドレスCをペースレジスタ2にロードする命令、デ
ータCのデータ接近のためにアドレスbをペースレジス
タ1にロードする命令を出力しなければならない。表2
は、第7図にかかわる表で、各データ参照の際にデータ
接近のために出力するオブジェクトを示す。
データAのデータ接近のためにアドレスdをペースレジ
スタ3にロードする命令、データBのデータ接近のため
にアドレスCをペースレジスタ2にロードする命令、デ
ータCのデータ接近のためにアドレスbをペースレジス
タ1にロードする命令を出力しなければならない。表2
は、第7図にかかわる表で、各データ参照の際にデータ
接近のために出力するオブジェクトを示す。
本発明は、以上説明したように、参照回数の多い順にさ
らに参照回数が同じデータの中ではデータ長の小さい順
に割付けるので、データ接近のための余計な目的プログ
ラム(オブジェクト)の出力や計算が不要になり、翻訳
速度が高速になり、また目的プログラムのステップ数も
減少するので、実行速度も高速になる効果がある。
らに参照回数が同じデータの中ではデータ長の小さい順
に割付けるので、データ接近のための余計な目的プログ
ラム(オブジェクト)の出力や計算が不要になり、翻訳
速度が高速になり、また目的プログラムのステップ数も
減少するので、実行速度も高速になる効果がある。
さらに、参照のあるデータのみを割付けることになるの
で、余計なデータの割付は処理が不要になり、翻訳速度
が高速になり、また実行待余計なデータがメモリを占有
することがなくなるので、実行効率が向上する効果があ
る。
で、余計なデータの割付は処理が不要になり、翻訳速度
が高速になり、また実行待余計なデータがメモリを占有
することがなくなるので、実行効率が向上する効果があ
る。
第1図は本発明実施例の構成を示すブロック構成図。
第2図は第1図の最適側付順整列手段を含む手続部解析
部での処理を示すフローチャート。 第3図は本発明実施例による割付順情報への登録例を示
す図。 第4図は本発明実施例による割付順情報の整列例を示す
図。 第5図は第1図の最適割付順データ割付手段での処理を
示すフローチャート。 第6図は本発明を実施したときのデータ割付は例を示す
マツプ図。 第7図は従来のデータ割付は例を示すマツプ図。 1・・・原始プログラム、2・・・フロントエンド、3
・・・手続部解析部、4・・・割付順情報、5・・・最
適割付順データ割付手段、6・・・バックエンド、7・
・・目的プログラム、8・・・中間言語。 実施例の構成 第1図 第 図実施例の動作 アドレスa・−・、(データ割付領域の先頭)参照回数 第 図 本発明によるデータ割付け
部での処理を示すフローチャート。 第3図は本発明実施例による割付順情報への登録例を示
す図。 第4図は本発明実施例による割付順情報の整列例を示す
図。 第5図は第1図の最適割付順データ割付手段での処理を
示すフローチャート。 第6図は本発明を実施したときのデータ割付は例を示す
マツプ図。 第7図は従来のデータ割付は例を示すマツプ図。 1・・・原始プログラム、2・・・フロントエンド、3
・・・手続部解析部、4・・・割付順情報、5・・・最
適割付順データ割付手段、6・・・バックエンド、7・
・・目的プログラム、8・・・中間言語。 実施例の構成 第1図 第 図実施例の動作 アドレスa・−・、(データ割付領域の先頭)参照回数 第 図 本発明によるデータ割付け
Claims (1)
- 【特許請求の範囲】 1、最大ディスプレースメントの間隔で割当てたベース
アドレスからの相対アドレスに応じてデータアクセスを
行うコンパイル装置において、各データの記号表へのポ
インタ値を抽出し、このポインタ値をデータの参照回数
の多い順に、また参照回数の同じデータが複数個存在す
るときはデータ長の短い順に整列して割付順情報を生成
する整列手段と、 上記整列手段が生成した割付順情報に基づきデータの割
付け行うデータ割付手段と を備えたことを特徴とするコンパイル装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1246974A JPH03109642A (ja) | 1989-09-22 | 1989-09-22 | コンパイル装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1246974A JPH03109642A (ja) | 1989-09-22 | 1989-09-22 | コンパイル装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03109642A true JPH03109642A (ja) | 1991-05-09 |
Family
ID=17156493
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1246974A Pending JPH03109642A (ja) | 1989-09-22 | 1989-09-22 | コンパイル装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH03109642A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05120028A (ja) * | 1991-10-28 | 1993-05-18 | Nec Corp | マイクロコンピユータ装置 |
| JP2006058991A (ja) * | 2004-08-18 | 2006-03-02 | Fujitsu Ltd | コンパイル方法及びコンパイラ |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6234240A (ja) * | 1985-08-08 | 1987-02-14 | Nec Corp | デ−タ割付け方式 |
-
1989
- 1989-09-22 JP JP1246974A patent/JPH03109642A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6234240A (ja) * | 1985-08-08 | 1987-02-14 | Nec Corp | デ−タ割付け方式 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05120028A (ja) * | 1991-10-28 | 1993-05-18 | Nec Corp | マイクロコンピユータ装置 |
| JP2006058991A (ja) * | 2004-08-18 | 2006-03-02 | Fujitsu Ltd | コンパイル方法及びコンパイラ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH03109642A (ja) | コンパイル装置 | |
| JPS6234240A (ja) | デ−タ割付け方式 | |
| JPH08212081A (ja) | メモリ割り付け方法、並びにコンパイル方法およびコンパイラ | |
| JP2556148B2 (ja) | ベクトルレジスタ割付け方式 | |
| JPS62219130A (ja) | プログラムの最適化方式 | |
| JPH02171830A (ja) | コンパイラにおける最適データ割付け方式 | |
| JP3338466B2 (ja) | 主記憶アクセス最適化処理装置 | |
| JP2819668B2 (ja) | 命令の最適化方式 | |
| JPH0371233A (ja) | コンパイラにおける最適データ割付け方式 | |
| JPH02140825A (ja) | プログラムの再配置処理方法 | |
| JPH0792757B2 (ja) | 最適データ割付け方式 | |
| JPH03196224A (ja) | データ割付け方式 | |
| JP4260895B2 (ja) | マイクロコントローラにおける複数フォーマットアドレス指定 | |
| JP2005228047A (ja) | 言語処理装置及び言語処理プログラム | |
| JP2932812B2 (ja) | 言語処理プログラム実行装置 | |
| JPH02171831A (ja) | コンパイラのデータ接近方式 | |
| JPH036624A (ja) | 複数コード系に対応する翻訳リスト出力処理方式 | |
| JP2754866B2 (ja) | データ駆動形計算機用オブジエクトコード生成装置 | |
| JPH02105224A (ja) | コンパイラにおけるデータ割付け方式 | |
| JPS59180743A (ja) | コンパイラにおけるデ−タ割付方式 | |
| JPH07129408A (ja) | 言語処理プログラムの実行方式 | |
| JPH01245330A (ja) | コンパイラ装置 | |
| JPS62216042A (ja) | デ−タ領域のメモリ割付方式 | |
| JPH01298464A (ja) | 日本語辞書アクセス方式 | |
| JP2006058991A (ja) | コンパイル方法及びコンパイラ |