JPS63140338A - コンパイラにおける変数のメモリ割付け方式 - Google Patents
コンパイラにおける変数のメモリ割付け方式Info
- Publication number
- JPS63140338A JPS63140338A JP28817186A JP28817186A JPS63140338A JP S63140338 A JPS63140338 A JP S63140338A JP 28817186 A JP28817186 A JP 28817186A JP 28817186 A JP28817186 A JP 28817186A JP S63140338 A JPS63140338 A JP S63140338A
- Authority
- JP
- Japan
- Prior art keywords
- allocation
- boundary
- value
- symbol table
- boundary value
- 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 description 9
- 238000010586 diagram Methods 0.000 description 5
- 235000013312 flour Nutrition 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はコンパイラにおける変数のメモリへの割付は方
式に関し、特にデータ長が境界値の整数倍でら9.2つ
の境界値の任意の組について大きい値を持つ境界値は小
さい11iヲ持つ境界値の整数倍でめるという条件を満
足する変数のメモリ割付は方式に関する。
式に関し、特にデータ長が境界値の整数倍でら9.2つ
の境界値の任意の組について大きい値を持つ境界値は小
さい11iヲ持つ境界値の整数倍でめるという条件を満
足する変数のメモリ割付は方式に関する。
従来、この種のコンパイラにおける変数のメモリ割付は
方式では、翻訳対象のプログラム内に出現する変数を出
現順に割付は要求境界に従って割付けていた。
方式では、翻訳対象のプログラム内に出現する変数を出
現順に割付は要求境界に従って割付けていた。
上述した従来のコンパイラにおけるメモリ割付は方式は
、変数の出現順にその変数の割付は要求境界に従って割
付けていたため、1バイト境界からの割付けt−i求す
る1バイト長の変数A、2バイト境界からの割付けを要
求する2バイト長の変数B、4バイト境界からの割付け
を要求する4バイト長の変数Cのような3つの変数がA
、B、Cの順に出現した場合、八とBとの間に1バイト
の空領域を確保せざるを得なくな夛、無駄にメモリを消
費してしまうという欠点がある。
、変数の出現順にその変数の割付は要求境界に従って割
付けていたため、1バイト境界からの割付けt−i求す
る1バイト長の変数A、2バイト境界からの割付けを要
求する2バイト長の変数B、4バイト境界からの割付け
を要求する4バイト長の変数Cのような3つの変数がA
、B、Cの順に出現した場合、八とBとの間に1バイト
の空領域を確保せざるを得なくな夛、無駄にメモリを消
費してしまうという欠点がある。
本発明の目的は、簡単な方式によシ上記欠点をなりシ、
効率の良いメモリ割付けを可能とするコンパイラにおけ
る変数のメモリ割付は方式を提供することにある。
効率の良いメモリ割付けを可能とするコンパイラにおけ
る変数のメモリ割付は方式を提供することにある。
本発明のコンパイラにおける変数のメモリへの割付は方
式の構成は、データ長がメモリの所定の境界値の整数倍
でめシ、2つの前記境界値の任意の組について大きい値
を持つ境界値は小さい値を持つ境界値の整数倍であると
いう条件を満足する変数に対し作成され、チェーンフィ
ールド、割付は境界値、データ長および割付はアドレス
フィールドを含む記号テーブルと、前記割付は境界値の
種類分の要素を持ち大きい割付は境界値に対応する要素
ほど前に配置された割付は境界テーブルと、前記記号テ
ーブルをその記号テーブルの割付は境界値に対応する前
記割付は境界テーブルの要素にチェーンする割付はデー
タチェーン手段と、前記割付は境界テーブルの要素から
チェーンされた前記記号テーブルの前記割付はアドレス
フィールドを前記割付は境界値の大きい順に設定するメ
モリ割付は手段とを有することを%徴とする。
式の構成は、データ長がメモリの所定の境界値の整数倍
でめシ、2つの前記境界値の任意の組について大きい値
を持つ境界値は小さい値を持つ境界値の整数倍であると
いう条件を満足する変数に対し作成され、チェーンフィ
ールド、割付は境界値、データ長および割付はアドレス
フィールドを含む記号テーブルと、前記割付は境界値の
種類分の要素を持ち大きい割付は境界値に対応する要素
ほど前に配置された割付は境界テーブルと、前記記号テ
ーブルをその記号テーブルの割付は境界値に対応する前
記割付は境界テーブルの要素にチェーンする割付はデー
タチェーン手段と、前記割付は境界テーブルの要素から
チェーンされた前記記号テーブルの前記割付はアドレス
フィールドを前記割付は境界値の大きい順に設定するメ
モリ割付は手段とを有することを%徴とする。
第1図は不発明のコンパイラにおける変数のメモリ割付
は方式を説明する図であり、1は割付データチェーン手
段、2は割付は境界テーブル、3はメモリ割付手段、4
は記号テーブルである。
は方式を説明する図であり、1は割付データチェーン手
段、2は割付は境界テーブル、3はメモリ割付手段、4
は記号テーブルである。
第2図は記号テーブル4の構成を示す図であり、翻訳対
象のプログラム内VC存在する変数1つに対し1つ存在
し、チェーンフィールド5と割付は境界値6とデータ長
7と割付はアドレスフィールド8を含む。
象のプログラム内VC存在する変数1つに対し1つ存在
し、チェーンフィールド5と割付は境界値6とデータ長
7と割付はアドレスフィールド8を含む。
第3図は割付は境界テーブル2の構成を示す図であり、
割付は境界値6の種類分の要素9を持ち、各要素は大き
い割付は境界値6に対応する要素9ほど前に配置され、
初期状態は空である。
割付は境界値6の種類分の要素9を持ち、各要素は大き
い割付は境界値6に対応する要素9ほど前に配置され、
初期状態は空である。
第4図はメモリ割付は手段3の構成図でsb、記号テー
ブルインジケータ10と割付はアドレスカウンタ11を
有しており、割付はアドレスカウンタ11の初期状態は
値としてOを持つ。
ブルインジケータ10と割付はアドレスカウンタ11を
有しており、割付はアドレスカウンタ11の初期状態は
値としてOを持つ。
割付はデータチェーン手段1には記号テーブル4の位置
が与えられ、割付は境界値6に対応する要素9が空であ
れば要素9に記号テーブル4の位置を設定した後、チェ
ーンフィールド5を空とし、要素9が空でなければチェ
ーンフィールド5に要素9の内容を設定した後、要素9
に記号テーブル4の位置を設定する。
が与えられ、割付は境界値6に対応する要素9が空であ
れば要素9に記号テーブル4の位置を設定した後、チェ
ーンフィールド5を空とし、要素9が空でなければチェ
ーンフィールド5に要素9の内容を設定した後、要素9
に記号テーブル4の位置を設定する。
メモリ割付は手段3は割付は境界テーブル2の要素の並
び順に従って下記の操作を施す。
び順に従って下記の操作を施す。
操作1:割付は境界テーブル2の要素を記号テーブルイ
ンジケータ10に設定する。・操作2:記号テーブルイ
ンジケータ10の値が・A5− 空でない間、操作21から操作24ま でを繰返す。
ンジケータ10に設定する。・操作2:記号テーブルイ
ンジケータ10の値が・A5− 空でない間、操作21から操作24ま でを繰返す。
割付はアドレスカウンタ11の値+ (m−1)操作2
1:FLOUR() ×mの値を計算し、計算結果を割付は アドレスカウンタ11に設定する。
1:FLOUR() ×mの値を計算し、計算結果を割付は アドレスカウンタ11に設定する。
ここで、mは記号テーブルインジケ
ータ10の示す記号テーブル4の割付
は境界値5 、 FL(JOR(α)はα以ド■犬の整
数値を示す。
数値を示す。
操作22:記号テーブルインジクータ10の示す記号テ
ーブル4の割付はアドレスフィ ールド8に割付はアドレスカウンタ11の値を設定する
。
ーブル4の割付はアドレスフィ ールド8に割付はアドレスカウンタ11の値を設定する
。
操作23:割付はアドレスカウンタ11を記号テーブル
インジケータ10の示す記号テ ーブル4のデータ長7だけ増加させる。
インジケータ10の示す記号テ ーブル4のデータ長7だけ増加させる。
操作24:記号テーブルインジケータ10の示す記号テ
ーブル4のチェーンフィールド 5の値を記号テーブルインジケータ10に設定する。
ーブル4のチェーンフィールド 5の値を記号テーブルインジケータ10に設定する。
コンパイラは翻訳対象のプログラム内に出現する変数に
対し、記号テーブル4t−作成し割付は境界値6とデー
タ長7を設定した後、作成する毎に割付はデータチェー
ン手段3を起動する。すべての記号テーブル4を作成し
た後でメモリ割付は手段3を起動する。
対し、記号テーブル4t−作成し割付は境界値6とデー
タ長7を設定した後、作成する毎に割付はデータチェー
ン手段3を起動する。すべての記号テーブル4を作成し
た後でメモリ割付は手段3を起動する。
以上説明したように本発明は、割付は境界値の大きい変
数から割付は境界値の小さい変数の順にメモリに割付け
ることによシ、割付は境界の調整のために生ずる空領域
を除去できるという効果がある。
数から割付は境界値の小さい変数の順にメモリに割付け
ることによシ、割付は境界の調整のために生ずる空領域
を除去できるという効果がある。
第1図は本発明のコンパイラにおける変数のメモリ割付
は方式を説明するロ、第2図は記号テーブルの構成を示
す図、第3図は割付は境界テーブルの構成を示す図、第
4図はメモリ割付は手段の構成を示す図である。 1・・・・・・割付はデータチェーン手段、2・・・・
・・割付は境界テーブル、3・・・・・・メモリ割付は
手段、4・・・・・・記号テア”ル、5・・・・・・チ
ェーンフィールド、6・・・・・・割付は境界値、7・
・・・・・データ長、8・・・・・・割付はアドレスフ
ィールド、9・・・・・・要素、1o・・・・・・記号
テーブルインジケータ、11・・・・・・割付アドレス
→〉
は方式を説明するロ、第2図は記号テーブルの構成を示
す図、第3図は割付は境界テーブルの構成を示す図、第
4図はメモリ割付は手段の構成を示す図である。 1・・・・・・割付はデータチェーン手段、2・・・・
・・割付は境界テーブル、3・・・・・・メモリ割付は
手段、4・・・・・・記号テア”ル、5・・・・・・チ
ェーンフィールド、6・・・・・・割付は境界値、7・
・・・・・データ長、8・・・・・・割付はアドレスフ
ィールド、9・・・・・・要素、1o・・・・・・記号
テーブルインジケータ、11・・・・・・割付アドレス
→〉
Claims (1)
- データ長がメモリの所定の境界値の整数倍であり、2つ
の前記境界値の任意の組について大きい値を持つ境界値
は小さい値を持つ境界値の整数倍であるという条件を満
足する変数に対し作成され、チェーンフィールド、割付
け境界値、データ長および割付けアドレスフィールドを
含む記号テーブルと、前記割付け境界値の種類分の要素
を持ち大きい割付け境界値に対応する要素ほど前に配置
された割付け境界テーブルと、前記記号テーブルをその
記号テーブルの割付け境界値に対応する前記割付け境界
テーブルの要素にチェーンする割付けデータチェーン手
段と、前記割付け境界テーブルの要素からチェーンされ
た前記記号テーブルの前記割付けアドレスフィールドを
前記割付け境界値の大きい順に設定するメモリ割付け手
段とを有することを特徴とするコンパイラにおけるメモ
リ割付け方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28817186A JPS63140338A (ja) | 1986-12-02 | 1986-12-02 | コンパイラにおける変数のメモリ割付け方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28817186A JPS63140338A (ja) | 1986-12-02 | 1986-12-02 | コンパイラにおける変数のメモリ割付け方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS63140338A true JPS63140338A (ja) | 1988-06-11 |
Family
ID=17726728
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP28817186A Pending JPS63140338A (ja) | 1986-12-02 | 1986-12-02 | コンパイラにおける変数のメモリ割付け方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS63140338A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07129408A (ja) * | 1993-09-13 | 1995-05-19 | Nec Corp | 言語処理プログラムの実行方式 |
-
1986
- 1986-12-02 JP JP28817186A patent/JPS63140338A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07129408A (ja) * | 1993-09-13 | 1995-05-19 | Nec Corp | 言語処理プログラムの実行方式 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS5757345A (en) | Data controller | |
| JPS55127638A (en) | Digital arithmetic unit | |
| JPS621048A (ja) | 仮想記憶システム | |
| JPS57129585A (en) | Memory device | |
| TW449726B (en) | Virtual multi-tasked CPU | |
| JPS5797108A (en) | Sequence | |
| JPS6190240A (ja) | 割込み制御方式 | |
| JPH0380335A (ja) | レジスタ管理方式 | |
| JPS57204959A (en) | Sequence controller due to microprocessor | |
| JPS63118961A (ja) | デ−タのオ−バレイセグメント割当て方式 | |
| JPS62274348A (ja) | メモリ管理方式 | |
| JPH0346698A (ja) | 複数の書体を有する文字パターン発生器 | |
| JPH01230134A (ja) | 情報処理装置 | |
| Brown | Introduction to computers and their development | |
| JPH02162440A (ja) | データ転送制御方式 | |
| JPS62229375A (ja) | ワ−クステ−シヨン用グラフイツク・アクセラレ−タ・パイプライン構造 | |
| JPS5463640A (en) | Information processing system | |
| JPS54159835A (en) | Multiple transfer instructing system | |
| JPS63175954A (ja) | メモリ管理方式 | |
| JPH0381829A (ja) | 高級言語プログラムの初期値を有したスタティック変数参照方式 | |
| JPS54148331A (en) | Memory control unit | |
| JPH03257626A (ja) | 自動オペランド生成アドレッシング方法 | |
| JPS602708B2 (ja) | 単一チツプ・コンピユ−タのアドレス指定方式 | |
| JPS63101952A (ja) | デ−タ処理システム | |
| JPH02137003A (ja) | プログラマブル・コントローラ |