JPH02105224A - コンパイラにおけるデータ割付け方式 - Google Patents
コンパイラにおけるデータ割付け方式Info
- Publication number
- JPH02105224A JPH02105224A JP25790388A JP25790388A JPH02105224A JP H02105224 A JPH02105224 A JP H02105224A JP 25790388 A JP25790388 A JP 25790388A JP 25790388 A JP25790388 A JP 25790388A JP H02105224 A JPH02105224 A JP H02105224A
- Authority
- JP
- Japan
- Prior art keywords
- data
- allocation
- memory
- compiler
- allocated
- 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
- 238000000034 method Methods 0.000 claims abstract description 17
- 230000006870 function Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はコンピュータシステムで用いられるコンパイラ
においてメモリへデータを割付ける方式%式% 〔従来の技術〕 第3図は従来のコンパイラの構成を示したものであり、
フロントエンド32は原始プログラム31を入力すると
構文解析、意味解析等の処理を行って中間テキストおよ
び各種テーブルを含むテキスト&テーブル34を出力す
ると共に、データ割付は手段33により原始プログラム
31中において宣言されたデータ(暗黙の宣言も含む、
)の全てを宣言された順番にメモリに対して割付け、制
御をバンクエンド35に渡し、バックエンド35は入力
手段36によりテキスト&テーブル34を読み込み、コ
ード生成手段37により対応するコードに変換して目的
プログラム3Bを生成していた。
においてメモリへデータを割付ける方式%式% 〔従来の技術〕 第3図は従来のコンパイラの構成を示したものであり、
フロントエンド32は原始プログラム31を入力すると
構文解析、意味解析等の処理を行って中間テキストおよ
び各種テーブルを含むテキスト&テーブル34を出力す
ると共に、データ割付は手段33により原始プログラム
31中において宣言されたデータ(暗黙の宣言も含む、
)の全てを宣言された順番にメモリに対して割付け、制
御をバンクエンド35に渡し、バックエンド35は入力
手段36によりテキスト&テーブル34を読み込み、コ
ード生成手段37により対応するコードに変換して目的
プログラム3Bを生成していた。
従来のコンパイラは上記のように構成され動作するもの
であったが、フロントエンド32のデータ割付は手段3
3において、原始プログラム31中で宣言されたデータ
の全てを無条件にメモリに割付けていたため、手続文に
おいて実際には参照されない不必要なデータに対しても
メモリ領域を確保することとなり、目的プログラム38
の実行の際に使用できるメモリ資源がその分だけ減少し
、処理能力の低下および効率の劣化を招くという欠点が
あった。
であったが、フロントエンド32のデータ割付は手段3
3において、原始プログラム31中で宣言されたデータ
の全てを無条件にメモリに割付けていたため、手続文に
おいて実際には参照されない不必要なデータに対しても
メモリ領域を確保することとなり、目的プログラム38
の実行の際に使用できるメモリ資源がその分だけ減少し
、処理能力の低下および効率の劣化を招くという欠点が
あった。
本発明は上記の点に鑑み提案されたものであり、その目
的とするところは、コンパイル時においてメモリに対し
て最適にデータの割付けが行えるコンパイラにおけるデ
ータ割付は方式を提供することにある。
的とするところは、コンパイル時においてメモリに対し
て最適にデータの割付けが行えるコンパイラにおけるデ
ータ割付は方式を提供することにある。
本発明は上記の目的を達成するため、原始プログラムを
入力して目的プログラムを生成するコンパイラにおける
メモリへのデータ割付は方式において、 前記原始プログラム中に宣言されたデータについてのデ
ータ名テーブルに割付は済みビットを付加し、 コード生成を行う前に、参照されたデータにつき前記デ
ータ名テーブルを参照して割付は済みピッtが未済であ
る場合にのみメモリへのデータ割付けを行うと共に当該
割付は済みビットを既済に変更するようにしている。
入力して目的プログラムを生成するコンパイラにおける
メモリへのデータ割付は方式において、 前記原始プログラム中に宣言されたデータについてのデ
ータ名テーブルに割付は済みビットを付加し、 コード生成を行う前に、参照されたデータにつき前記デ
ータ名テーブルを参照して割付は済みピッtが未済であ
る場合にのみメモリへのデータ割付けを行うと共に当該
割付は済みビットを既済に変更するようにしている。
すなわち、本発明では手続文で実際に参照されるデータ
についてのみメモリへのデータ割付けを行うことにより
、不必要なデータの割付けを防止している。なお、実際
に参照されるデータについて全てデータ割付けを行うと
、同じデータが複数回参照される場合に不都合が生じる
ため、割付は済みビットを導入して同じデータに対して
2度以上データ割付けを行わないようにしている。
についてのみメモリへのデータ割付けを行うことにより
、不必要なデータの割付けを防止している。なお、実際
に参照されるデータについて全てデータ割付けを行うと
、同じデータが複数回参照される場合に不都合が生じる
ため、割付は済みビットを導入して同じデータに対して
2度以上データ割付けを行わないようにしている。
本発明のコンパイラにおけるデータ割付は方式にあって
は、原始プログラム中に宣言されたデータについてのデ
ータ名テーブルに割付は済みビットを付加しておき、コ
ード生成を行う前にデータ割付けを行い、手続文で実際
に参照されたデータにつき前記データ名テーブルを参照
して割付は済みビットが未済である場合にのみメモリへ
のデータ割付けを行うと共に当該割付は済みビットを既
済に変更する。
は、原始プログラム中に宣言されたデータについてのデ
ータ名テーブルに割付は済みビットを付加しておき、コ
ード生成を行う前にデータ割付けを行い、手続文で実際
に参照されたデータにつき前記データ名テーブルを参照
して割付は済みビットが未済である場合にのみメモリへ
のデータ割付けを行うと共に当該割付は済みビットを既
済に変更する。
以下、本発明の実施例につき図面を参照して説明する。
第1図は本発明のデータ割付は方式を通用したコンパイ
ラの一実施例を示す構成図である。第1図において、本
実施例は、原始プログラム1を入力してテキスト&テー
ブル3を出力するフロントエンド2と、テキスト&テー
ブル3を入力して目的プログラム8を生成・出力するバ
ックエンド4とから構成されている。また、バックエン
ド4は入力手段5と、割付は済み判定機能付きデータ割
付は手段6と、コード生成手段7とから構成されている
。なお、フロントエンド2は、周知の構文解析手段、意
味解析手段等から構成されている。
ラの一実施例を示す構成図である。第1図において、本
実施例は、原始プログラム1を入力してテキスト&テー
ブル3を出力するフロントエンド2と、テキスト&テー
ブル3を入力して目的プログラム8を生成・出力するバ
ックエンド4とから構成されている。また、バックエン
ド4は入力手段5と、割付は済み判定機能付きデータ割
付は手段6と、コード生成手段7とから構成されている
。なお、フロントエンド2は、周知の構文解析手段、意
味解析手段等から構成されている。
しかして、フロントエンド2は原始プログラム1を入力
すると構文解析、意味解析等の処理を行って中間テキス
トおよび各種テーブルを含むテキストルテーブル3を出
力する。テーブルの中には原始プログラムz中で宣言さ
れたデータの全てに対するデータ名テーブルが含まれて
いる。データ名テーブルはデータ名と、そのデータに関
する各種の情報が対応して格納されており、更に、本発
明ではそのデータがメモリに対して既に割付けられてい
るか否かを示す情報である割付は済みビ。
すると構文解析、意味解析等の処理を行って中間テキス
トおよび各種テーブルを含むテキストルテーブル3を出
力する。テーブルの中には原始プログラムz中で宣言さ
れたデータの全てに対するデータ名テーブルが含まれて
いる。データ名テーブルはデータ名と、そのデータに関
する各種の情報が対応して格納されており、更に、本発
明ではそのデータがメモリに対して既に割付けられてい
るか否かを示す情報である割付は済みビ。
トが付加されている。なお、初期状態では割付は済みビ
ットは未済を示す値(例えば0FF)が格納されている
。ここで、例えば原始プログラムlに −B と記述された文があり、これがデータAにデータBの内
容を代入するという言語仕様であるとすると、テキスト
&テーブル3には、代入という手続を示す情報と、デー
タA、Bに関するデータ名テーブルとが含まれることに
なる。
ットは未済を示す値(例えば0FF)が格納されている
。ここで、例えば原始プログラムlに −B と記述された文があり、これがデータAにデータBの内
容を代入するという言語仕様であるとすると、テキスト
&テーブル3には、代入という手続を示す情報と、デー
タA、Bに関するデータ名テーブルとが含まれることに
なる。
次いで、バックエンド4は入力手段5によりテキスト&
テーブル3を読み込み、データの参照がある手続文を検
出すると割付は済み判定機能付きデータ割付は手段6を
起動する。
テーブル3を読み込み、データの参照がある手続文を検
出すると割付は済み判定機能付きデータ割付は手段6を
起動する。
第2図は割付は済み判定機能付きデータ割付は手段6の
処理を示す流れ図であり、起動された割付は済み判定機
能付きデータ割付は手段6は、参照されたデータに対応
するデータ名テーブルの割付は済みビットを参照しくス
テップ21)、未済であることを示す値(OFF)であ
ればメモリに対してデータの割付けを行い(ステップ2
2)、そのデータに対応するデータ名テーブルの割付は
済みビットを既済を示す値(ON)とする(ステップ2
3)、また、ステップ21において、参照されたデータ
に対応するデータ名テーブルの割付は済みビットが既済
を示す値(ON)であれば、そのデータについては既に
データ割付けが終了しているため、データ割付けを行わ
ず、処理を終了する。こうすることで、−置割付けられ
たデータはその後に何度参照されても再び割付けられる
ことはなく、最初の参照の際に割付けられるのみである
。
処理を示す流れ図であり、起動された割付は済み判定機
能付きデータ割付は手段6は、参照されたデータに対応
するデータ名テーブルの割付は済みビットを参照しくス
テップ21)、未済であることを示す値(OFF)であ
ればメモリに対してデータの割付けを行い(ステップ2
2)、そのデータに対応するデータ名テーブルの割付は
済みビットを既済を示す値(ON)とする(ステップ2
3)、また、ステップ21において、参照されたデータ
に対応するデータ名テーブルの割付は済みビットが既済
を示す値(ON)であれば、そのデータについては既に
データ割付けが終了しているため、データ割付けを行わ
ず、処理を終了する。こうすることで、−置割付けられ
たデータはその後に何度参照されても再び割付けられる
ことはなく、最初の参照の際に割付けられるのみである
。
次いで、第1図に戻り、バックエンド4はコード生成手
段7により、割付けられたデータおよびテキスト&テー
ブル3の情報を対応するコードに変換して目的プログラ
ム8を生成する。これらの動作をテキスト&テーブル3
の全ての手続文に対して行い、コンパイラの処理を終了
する。
段7により、割付けられたデータおよびテキスト&テー
ブル3の情報を対応するコードに変換して目的プログラ
ム8を生成する。これらの動作をテキスト&テーブル3
の全ての手続文に対して行い、コンパイラの処理を終了
する。
以上説明したように、本発明のコンパイラにおけるデー
タ割付は方式にあっては、手続文で実際に参照されたデ
ータについて、データ名テーブルの割付は済みビットを
参照して、最初の1回目だけデータ割付けを行うように
しているので、実際に参照されない不必要なデータのた
めにメモリを&1保することがなくなり、メモリ資源の
有効利用および処理能力の向上が図れる効果がある。
タ割付は方式にあっては、手続文で実際に参照されたデ
ータについて、データ名テーブルの割付は済みビットを
参照して、最初の1回目だけデータ割付けを行うように
しているので、実際に参照されない不必要なデータのた
めにメモリを&1保することがなくなり、メモリ資源の
有効利用および処理能力の向上が図れる効果がある。
第1図は本発明のデータ割付は方式を通用したコンパイ
ラの一実施例を示す構成図、 第2図は第1図における割付は済み判定機能付きデータ
割付は手段の処理を示す流れ図および、第3図は従来の
コンパイラを示す構成図である。 図において、 1・・・原始プログラム 2・・・フロントエンド 3・・・テキスト&テーブル 4・・・バックエンド 5・・・入力手段 6・・・割付は済み判定機能付きデータ割付は手段7・
・・コード生成手段 8・・・目的プログラム
ラの一実施例を示す構成図、 第2図は第1図における割付は済み判定機能付きデータ
割付は手段の処理を示す流れ図および、第3図は従来の
コンパイラを示す構成図である。 図において、 1・・・原始プログラム 2・・・フロントエンド 3・・・テキスト&テーブル 4・・・バックエンド 5・・・入力手段 6・・・割付は済み判定機能付きデータ割付は手段7・
・・コード生成手段 8・・・目的プログラム
Claims (1)
- 【特許請求の範囲】 原始プログラムを入力して目的プログラムを生成するコ
ンパイラにおけるメモリへのデータ割付け方式において
、 前記原始プログラム中に宣言されたデータについてのデ
ータ名テーブルに割付け済みビットを付加し、 コード生成を行う前に、参照されたデータにつき前記デ
ータ名テーブルを参照して割付け済みビットが未済であ
る場合にのみメモリへのデータ割付けを行うと共に当該
割付け済みビットを既済に変更することを特徴としたコ
ンパイラにおけるデータ割付け方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25790388A JPH02105224A (ja) | 1988-10-13 | 1988-10-13 | コンパイラにおけるデータ割付け方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25790388A JPH02105224A (ja) | 1988-10-13 | 1988-10-13 | コンパイラにおけるデータ割付け方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02105224A true JPH02105224A (ja) | 1990-04-17 |
Family
ID=17312790
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP25790388A Pending JPH02105224A (ja) | 1988-10-13 | 1988-10-13 | コンパイラにおけるデータ割付け方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH02105224A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016136368A (ja) * | 2015-01-23 | 2016-07-28 | 富士電機株式会社 | 言語変換装置 |
-
1988
- 1988-10-13 JP JP25790388A patent/JPH02105224A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016136368A (ja) * | 2015-01-23 | 2016-07-28 | 富士電機株式会社 | 言語変換装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1164478A2 (en) | Method and apparatus for resolving data references in generated code | |
| JPH09223023A (ja) | コンパイル装置およびコンパイラ | |
| JPH04311227A (ja) | マイクロコンピュータの言語処理装置 | |
| JP2003256215A (ja) | プログラム変換方法、これを用いたデータ処理装置及びプログラム | |
| JP3327674B2 (ja) | プログラム翻訳装置及び方法 | |
| JPH07105013A (ja) | レジスタ割り付け方式 | |
| JP2556148B2 (ja) | ベクトルレジスタ割付け方式 | |
| KR100323372B1 (ko) | 이엠 코드에 대한 실행시간 스택의 타입 분석 방법 | |
| JP3464019B2 (ja) | レジスタの割付方式 | |
| JPH0373026A (ja) | コンパイル方式 | |
| JP3018783B2 (ja) | コンパイル方式 | |
| JPS6365530A (ja) | コ−ド最適化方式 | |
| JPH0991151A (ja) | コンパイル装置及びプロセッサ装置 | |
| JPS62182843A (ja) | 高速コンパイル/リンク方式 | |
| JPH06324882A (ja) | コンパイラ装置 | |
| JPH0126091B2 (ja) | ||
| JPH01161443A (ja) | 動的ディスパッチング方式 | |
| JPS63120369A (ja) | プログラム変換装置 | |
| JPH01194034A (ja) | プログラムの最適化対象データ選択方式 | |
| JPS63195738A (ja) | コンパイラのレジスタ割付方式 | |
| JPS6373434A (ja) | デ−タフロ−型計算機デバツグ用プログラム作成方式 | |
| JPS63238628A (ja) | レジスタ割り当て方式 | |
| JPH02201541A (ja) | コンパイル方式 | |
| JP2001134447A (ja) | コンパイル方法、および、コンパイル用プログラムを記録した記録媒体 | |
| JPH10228455A (ja) | 最適並列プログラム生成方法 |