JPH01196631A - 初期値圧縮展開方式 - Google Patents

初期値圧縮展開方式

Info

Publication number
JPH01196631A
JPH01196631A JP2106988A JP2106988A JPH01196631A JP H01196631 A JPH01196631 A JP H01196631A JP 2106988 A JP2106988 A JP 2106988A JP 2106988 A JP2106988 A JP 2106988A JP H01196631 A JPH01196631 A JP H01196631A
Authority
JP
Japan
Prior art keywords
initial value
size
object module
control information
initial
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
JP2106988A
Other languages
English (en)
Inventor
Atsushi Goto
淳 後藤
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 JP2106988A priority Critical patent/JPH01196631A/ja
Publication of JPH01196631A publication Critical patent/JPH01196631A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、計算機システムにおいてコンパイラの生成す
るオブジェクトモジュール内にプログラムの初期値を圧
縮して格納し、リンク時にその圧縮された初期値をロー
ドモジュール上に展開する初期値圧縮展開方式に関する
〔従来の技術〕
コンパイラによってオブジェクトモジュールを生成する
際には、その内部にプログラムの初期値を格納しておく
必要がある。
オブジェクトモジュールの示すプログラムが実行時に占
めるメモリ空間(以下、実行メモリ空間と称す)上には
、プログラムによって明示的に指示され初期値が決定し
ている領域(以下、初期化領域と称す)が分散して複数
個存在するのが通常である。
この為、従来技術においてはオブジェクトモジュール内
に初期化領域に対応する初期値を実行メモリ空間上の配
置とは無関係に格納し、各々の初期値が実行メモリ空間
上のどの部分の初期値を表すかを示す情II!(初期値
制御情報と称す)を付加して格納することにより、オブ
ジェクトモジュール内の初期値を圧縮する手法が用いら
れていた。
さらに、配列に対する初期化領域の内容は成る一定の初
期値の繰り返しであることが多いことから、初期値は繰
り返しの一回分のみを格納し、初期値制御情報内にその
繰り返しの回数を含めることにより、初期値を圧縮する
手法も存在していた。
〔発明が解決しようとする問題点〕
オブジェクトモジュール内の初期値が配列に対する初期
値のように一定の初期値イメージの繰り返しであるよう
なものが非常に多く、各々の繰り返し回数が非常に大き
い場合には、従来技術のような初期値圧縮手法を用いる
ことにより、オブジェクトモジュール内の初期値の占め
るサイズを大幅に縮小することが可能となる。
しかし、プログラム言語によっては成る一定の初期化イ
メージの列を配列のような連続した領域に繰り返し詰め
られるだけ詰めるという指定を許している場合がある。
この場合には繰り返しの回数は整数にはならず、最後の
繰り返しにおいては指定された初期化イメージの一部の
みを初期値として使用する場合が発生することがある。
このとき従来技術のような初期値圧縮手法を用いると、
コンパイラは完全な繰り返しとなる部分と繰り返しの最
後の部分とを認識して、2mの初期値と初!tII値制
御情報を出力オブジェクトモジュール内に格納する必要
がある。
このため、コンパイラにおいては、1個の初期値の列に
対して例外条件を認識し余分な情報を生成する必要が生
じる為、処理効率が低下する。
また、繰り返しの最後の部分の初期値は完全な繰り返し
となる部分の初期値の先頭の部分と重複する上に、初期
値制御情報が一つ増える為、このような半端な初期化を
多く含むオブジェクトモジュールではそのサイズが増大
する。
さらに、リンク処理においては、オブジェクトモジュー
ル内の初期値を実行メモリ空間上の配置と同等となるよ
うに展開してロードモジエール中に出力するが、その際
初期値制御情報単位に処理する為、初期値制御情報の個
数が増加すると処理効率が低下する。
以上のように従来方式においては、成る一定の初期化イ
メージの列を配列のような連続した領域に繰り返し詰め
るだけ詰めるという指定を許している場合には、初期値
および配置状態によってはコンパイラ及びリンク処理時
の性能が低下し、オブジェクトモジュールのサイズが増
大するという問題がある。
本発明の目的は、上記のような半端な繰り返しを必要と
する初期化に対してもコンパイラ及びリンク処理時の性
能が低下せず、オブジェクトモジュールのサイズが増大
しない初期値圧縮展開方式を提供することにある。
〔問題点を解決するための手段〕
本発明の初期値圧縮展開方式は、上記目的を達成するた
めに、コンパイル時において生成されるオブジェクトモ
ジュール内のプログラムの初期値に対応する初期値制御
情報内に、その初期値を埋めるべき領域のサイズを含め
ることにより初期値の圧縮を行う機構を持つオブジェク
トモジュール生成手段と、オブジェクトモジュール内の
初期値をロードモジュール上に展開する際に、前記初期
値制御情報を参照し、初期値をその初期値を埋めるべき
領域のサイズを満たすように繰り返し展開する機構を持
つリンク手段を有している。
〔作用〕
オブジェクトモジエール生成時、オブジェクトモジュー
ル内に初期値を格納する必要がある場合、その格納する
初期値に対応する初期値制御情報に初期値の繰り返しの
回数ではなく初期値を埋めるべき領域のサイズが設定さ
れ、リンク処理においては、そのサイズを満たすように
初期値が繰り返し展開される。
〔実施例〕
次に本発明の実施例について図面を参照して説明する。
第1図は本発明の実施例の構成図である。第1図におい
て、コンパイラ1内のオブジェクトモジュール生成手段
10により生成されるオブジェクトモジュール0M1内
には、初期値生成処理100によって出力された初期値
の他にそれを制j1’Jする為の情報を持つ初期値制御
情報が含まれる。
第2図は初期値制御情報の形式の一例を示したものであ
る。この例の初期値制御情報は、オフセット部30.イ
メージサイズ部31.エリアサイズ部32およびOM内
オフセント部33に分かれ、OM内オフセット部33及
びイメージサイズ部31はこの初期値制御情報の指す初
期値のオブジェクトモジュールOMI内の位置とサイズ
を示す。
さらにオフセット部30及びエリアサイズ部32はこの
初期値制御情報によって初期化すべき初期化領域のオブ
ジェクトモジュールOMIが占める実行メモリ空間の先
頭からの相対位置とサイズを示す。
第3図はオブジェクトモジュール生成手段10が行う初
期値生成処理100の内容例を示すフローチャートであ
る。
先ず、オブジェクトモジュール生成手段10は、ステッ
プGOIにおいて全ての初期値の出力が終了したか否か
の判定を行い、全ての初期値の出力が終了するまでステ
ップG01〜GO4の処理を操り返す。
ステップGO2においては、初期値のイメージをオブジ
ェクトモジエールOMIに出力する。
次にステップGO3において初YtA値制御情報の各部
30〜33にオフセット、イメージサイズ5エリアサイ
ズ、OM内オフセットの各情報をセントし、ステップG
O4においてステップGO3で必要な情報をセットした
初期値制御情報をオブジェクトモジュールOMIに出力
する。
以上の処理を全ての初期値の出力が終了するまで繰り返
す。
第1図に示すリンク手段2においては、オブジェクトモ
ジュール生成手段10で生成されたオブジェクトモジュ
ールOMIとその他に生成されたオブジェクトモジュー
ルOM2〜OMnを結合して実行可能なロードモジュー
ルLMを生成する。
これは、先ずオブジェクトモジュール人力処理21にお
いてオブジェクトモジュールOM I −OMnを入力
し、リンク処理22においてオブジェクトモジュールO
MI〜OMn間の外部参照を解決する。次に初期値展開
処理23においてオブジェクトモジュールOMI〜OM
nの初期値を実行メモリ空間上の配置と同等になるよう
に展開してロードモジュールLM上に出力する。最後に
ロードモジュール生成処理24によって初期値以外のロ
ードモジュールに必要な情報を出力してロードモジュー
ルLMを完成する。
第4図はリンク手段2内の初期値展開処理23の内容例
を示すフローチャートである。
リンク手段2は、先ずステップLGIにおいて全ての入
力オブジェクトモジュールに対して初期値の処理を終了
したか否かの判定を行い、全ての入力オブジェクトモジ
ュールに対して初期値の処理が終了す番まで、ステップ
LG2〜LGIIの処理をオブジェクトモジュール毎に
操り返す。
次にステップLG2において現在処理中のオブジェクト
モジュール内の全ての初期値制御情報の処理を終了した
か否かの判定を行い、全ての初期値制御情報に対してそ
の処理が終了するまで、ステップLG3〜LGIIの処
理を初!tl](l!!制御情報毎に繰り返す。
ステップLG3〜LG5においては、初期値制御情報上
のエリアサイズ、イメージサイズ、オフセットを各々に
対応する変数as、is、ofにセントする。
次にステップLG6において変数aSがOか否かの判定
を行い、変数aSがOとなるまでステップLG7〜LG
IIを繰り返す。
ステップLC7においては、変数asと変数iSの大小
関係を判定する。このとき変数asO方が変数isより
小さい場合には最後の繰り返しであることを意味するた
め、ステップLG8において変数asを変数isに代入
して初期値イメージサイズを見掛は上縮小する。即ち、
元の初期値イメージの先頭からサイズas分の内容を新
たな初期値イメージとする。
ステップLG9においては、現在処理中の初期値制御情
報の示す初期値イメージの内先頭から変数isで示すサ
イズ分の内容を、現在処理中のオブジェクトモジュール
が実行メモリ空間上で占める領域の先頭から変数ofで
示される長さだけ離れた位置より変数isで示すサイズ
分の初期値としてロードモジュールLM上に出力する。
ステップLGIOにおいては、変数ofにステップLG
9によって初期化したサイズ(=変数lSで示されるサ
イズ)を加算し、変数Ofが次に初期化すべきオフセン
トを指すようにする。
ステップLG11においては、変数aSからステップL
G9によって初期化したサイズ(=変数isで示される
サイズ)を減算し、変数asが初期化すべき残りのエリ
アサイズを示すようにする。
以上の処理を繰り返すことにより初期値展開処理23の
処理を実現する。
〔発明の効果〕
以上説明したように、本発明によれば、成る初期値イメ
ージを連続した領域に詰められるだけ操り返し詰めると
いった指定の初期化も、半端な繰り返しが生じることか
ら二つの初期値イメージと初期値制御情報の組に分ける
必要がなく、一つの初期値イメージと初期値制御情報の
組でオブジェクトモジュール内に格納することが可能と
なる。
このため、コンパイラにおいては、一つの初期値に対し
て初期値イメージと初期値制御情報の組を分離する必要
がなくなり、リンク処理においては処理すべき初期値制
御情報の個数が増加しないため、各々処理効率の低下が
抑制され、オブジェクトモジュールにおいては初期値イ
メージの重複がなくなるため、サイズが縮小されるとい
う効果がある。
【図面の簡単な説明】
第1図は本発明の実施例の構成図、 第2図は初期値制御情報の形式例を示す図、第3図は初
期値生成処理100の内容例を示すフローチャート及び
、 第4図は初期値展開処理23の内容例を示すフローチャ
ートである。 図において、 1・・・コンパイラ 2・・・リンク手段 10・・・オブジェクトモジュール生成手段21・・・
オブジェクトモジュール人力処理22・・・リンク処理 23・・・初期値展開処理 24・・・ロードモジュール生成処理 100・・・初期値生成処理 ○M1〜OMn・・・オブジェクトモジュールLM・・
・ロードモジュール

Claims (1)

    【特許請求の範囲】
  1. コンパイル時において生成されるオブジェクトモジュー
    ル内のプログラムの初期値に対応する初期値制御情報内
    に、その初期値を埋めるべき領域のサイズを含めること
    により初期値の圧縮を行う機構を持つオブジェクトモジ
    ュール生成手段と、オブジェクトモジュール内の初期値
    をロードモジュール上に展開する際に、前記初期値制御
    情報を参照し、初期値をその初期値を埋めるべき領域の
    サイズを満たすように繰り返し展開する機構を持つリン
    ク手段を含むことを特徴とする初期値圧縮展開方式。
JP2106988A 1988-01-30 1988-01-30 初期値圧縮展開方式 Pending JPH01196631A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2106988A JPH01196631A (ja) 1988-01-30 1988-01-30 初期値圧縮展開方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2106988A JPH01196631A (ja) 1988-01-30 1988-01-30 初期値圧縮展開方式

Publications (1)

Publication Number Publication Date
JPH01196631A true JPH01196631A (ja) 1989-08-08

Family

ID=12044597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2106988A Pending JPH01196631A (ja) 1988-01-30 1988-01-30 初期値圧縮展開方式

Country Status (1)

Country Link
JP (1) JPH01196631A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0869381A (ja) * 1994-08-30 1996-03-12 Nec Ic Microcomput Syst Ltd コンパイル方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0869381A (ja) * 1994-08-30 1996-03-12 Nec Ic Microcomput Syst Ltd コンパイル方式

Similar Documents

Publication Publication Date Title
US4569081A (en) Method for expansion of a digital image
JPH01196631A (ja) 初期値圧縮展開方式
JP3037144B2 (ja) データ圧縮記憶演算装置
JPH0497424A (ja) ロードモジュール内初期値圧縮方式
JPH0628150A (ja) プログラム容量圧縮方法
JP4646853B2 (ja) 制御情報供給装置
JP2705549B2 (ja) 集積回路設計データ変換装置およびそのデータの階層展開方法
JP3527265B2 (ja) 原始ソース管理方式
JPH10207662A (ja) 画像処理装置、画像処理方法、画像処理プログラム記憶媒体
JP3757297B2 (ja) 印字装置
JPH0567172A (ja) 論理合成システム
JPH06250922A (ja) 記憶装置
JP2563557Y2 (ja) ビット演算処理装置
JPH0229828A (ja) 論理回路変換システム
JPH02137572A (ja) ビットマップメモリ管理方式
JP2007004238A (ja) 解析支援装置および解析支援方法およびプログラム
JPH06314272A (ja) 線形計画問題の圧縮方式
JP2007272394A (ja) データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、処理装置、及びリコンフィギュラブル回路
JPS61149365A (ja) デ−タ制御装置
JPH06178123A (ja) カラー画像符号化方式
JP2000035882A (ja) 関数呼び出しの手順を動的に変更する方法
JPH04182822A (ja) プリンタ装置
JPH058451B2 (ja)
JPH05189521A (ja) レイアウトパターン発生装置
JPH0883061A (ja) 文字パターン発生方法及び装置