JPH0264731A - データ域の初期化処理方式 - Google Patents

データ域の初期化処理方式

Info

Publication number
JPH0264731A
JPH0264731A JP21591788A JP21591788A JPH0264731A JP H0264731 A JPH0264731 A JP H0264731A JP 21591788 A JP21591788 A JP 21591788A JP 21591788 A JP21591788 A JP 21591788A JP H0264731 A JPH0264731 A JP H0264731A
Authority
JP
Japan
Prior art keywords
program
data area
internal
area
data
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
JP21591788A
Other languages
English (en)
Inventor
Isao Funaki
勇夫 舟木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP21591788A priority Critical patent/JPH0264731A/ja
Publication of JPH0264731A publication Critical patent/JPH0264731A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 内部プログラムのデータ域の初期化処理方式に関し。
内部プログラムが占める領域を小さくすることを目的と
し。
少なくとも1つが内部にデータ域を有する複数の内部プ
ログラムを含むロードモジュールを格納する外部記憶装
置を備え、前記ロードモジュールを主メモリにローディ
ングして、内部にデータ域を有する内部プログラムを含
むロードモジュールとし、データ処理部での前記ロード
モジュールの実行に伴って、前記データ域の内容が変更
されるデータ処理装置において、前記データ域の内容を
初期化する初期化処理部を設け、前記データ域の内容の
初期化が必要となった時に、前記初期化処理部が、前記
外部記憶装置の前記データ域の内容を、前記主メモリの
前記データ域ヘローディングするように構成する。
[産業上の利用分野〕 本発明はデータ域の初期化処理方式に関し、更に詳しく
は、内部プログラムのデータ域の初期化処理方式に関す
る。
C0BOLにおいては、プログラムに含まれるデータ域
の内容は、ある特定の命令がある特定のタイミングで実
行された場合には次に参照され為時には初期値となって
いなければならないという規定がある。
なお、プログラムの実行によって主メモリ上の当該プロ
グラムのデータ域の内容が変更されても。
通常のデータとは異なり、変更の都度、外部記憶装置に
出力される(外部記憶装置上の当該ブロク゛ラムのデー
タ域が同様に変更される)とむ1うことはない。
〔従来の技術〕 データ域の内容を初期値とする処理(データ域の初期化
処理)は、従来、プログラムの種類に応じて9次のよう
な方式とされていた。
(1)外部プログラムのデータ域の初期化外部プログラ
ム(1つのロードモジュール自体が1つのプログラムと
されているもの)のデータ域の初期化は、従来、第6図
に図示するように行っていた。
主メモリ3上の1つの外部プログラム91が。
命令rCALL“A″Jにより、プログラムAなる他の
外部プログラムを呼び出す、これGこより、外部記憶装
置2の外部プログラム93力曵主メモリ3上にローディ
ングされ、外部ブロク゛ラム92とされる。制御が外部
プログラム92に渡ると、外部プログラム92は必要な
処理を行う、これにより1例えば、外部プログラム92
のデータ域82の内容が、書き換えられる。従って、再
度、命令rcALL’Aゝ」により外部プログラム92
が呼び出された時は、データ域82の内容は初期値では
ない。
次に、制御が外部プログラム91に戻った後。
外部プログラム91が、命令rcANcEL“A”Jに
より、外部プログラム92を取り消したとする。この命
令があった場合には9次にプログラムAなる外部プログ
ラムが参照された時には、そのデータ域の内容は初期値
となっていなければならない、そこで、外部プログラム
92は主メモリ3上から消去される。
次に、再び、外部プログラム91がプログラム八なる外
部プログラムを呼び出すと、外部記憶装置2の外部プロ
グラム93が主メモリ3にローディングされ、外部プロ
グラム94とされる。これにより、プログラムAのデー
タ域84の内容は初期値とされる。
(2)内部プログラムのデータ域の初期化内部プログラ
ム(1つのロードモジュール内に含まれる別単位のプロ
グラム)のデータ域の初期化は、従来、第7図に図示す
るように行っていた。
主メモリ3上にローディングされた1つのロードモジュ
ール95は、別単位の(互いに独立に実行できる)2つ
の内部プログラム96及び97を含んでいる。
プログラムMなる1つの内部プログラム96が、命令r
CALL″A“」により、プログラムAなる他の内部プ
ログラム97を呼び出す。
制御が内部プログラム97に渡ると、内部プログラム9
7は必要な処理を行う、これにより。
例えば、内部プログラム97のデータ域87の内容が、
書き換えられる。従って、再度、命令rCALL“A″
」により内部プログラム97が呼び出された時は、デー
タ域87の内容は初期値ではない。
次に、制御が内部プログラム96に戻った後。
内部プログラム96が、命令rCANCEL“A”」に
より、内部プログラム97を取り消したとする。この命
令があった場合には1次にプログラムAなる内部プログ
ラム97が参照された時には、そのデータ域87の内容
は初期値となっていなければならない、しかし、データ
域87又は内部プログラム97を主メモリ3上から消去
しようとすると、ロードモジュール95も消去されてし
まうので、消去できない、そこで、初期化のために、内
部プログラム97内に初期値データを格納する領域88
を別に設ける。
次に、再び、内部プログラム96がプログラムAなる内
部プログラム97を呼び出すと、命令rCANCEL″
A″」があったことを知り。
領域8Bから初期値データがデータ域87にコピーされ
る。これにより、データ域87の内容は初期値とされる
〔発明が解決しようとする課題〕
前述のように、内部プログラムのデータ域の初期化にお
いては、外部プログラムと同様の方式。
即ち、 (内部)プログラムを消去した後再度ローディ
ングすることにより初期化をする方式は採用できない、
このため、 (内部)プログラムが自分の中に初期値デ
ータを持つ必要が生じ、領域88が必要となる。
このようにデータ域87と同サイズの領域8Bが別に必
要となるため、外部記憶装置2及び主メモリ3において
、内部プログラム(又はロードモジュール)が大きな領
域を占めてしまうという問題があった。
本発明は、内部プログラムが占める領域を小さくするこ
とが可能な内部プログラムのデータ域の初期化処理方式
を提供することを目的とする。
〔課題を解決するための手段〕
第1図は本発明の原理構成図であり1本発明によるデー
タ処理装置を示している。
第1図において、1はデータ処理部、2は外部記憶装置
、3は主メモリ、4は初期化処理部、51及び52はロ
ードモジュール、61,62,71及び72は内部プロ
グラム、81及び82はデータ域である。
外部記憶装置2はロードモジュール52を格納している
。ロードモジエール52は、互いに独立の(別単位の)
複数(この場合は2つ)の内部プログラム62及び72
を含む、少なくとも1つの内部プログラム72は、その
内部にデータ域82を有する。
ロードモジュール52は、外部記憶装置2から主メモリ
3ヘローデイングされる。これにより。
主メモリ3には、ロードモジュール52と同一内容のロ
ードモジュール51が格納される。従って。
ロードモジュール51は、内部プログラム62及び72
と同一の内部プログラム61及び71を含み、内部プロ
グラム71はデータ域81を有する。
データ処理部1は、中央処理装置(CP U)と主メモ
リ3とから構成され、主メモリ3内のロードモジュール
51の処理を実行する。
初期化処理部4は、主メモリ3内の内部プログラム71
のデータ域81の初期化が必要となった時に、外部記憶
装置2内の内部プログラム72のデータ域82の内容を
、データ域81ヘローデイングする。
〔作用〕
データ処理部1においてロードモジュール51の実行中
に、内部プログラム61が、命令rCALL“A”」に
より、他の内部プログラム71(プログラムA)を呼び
出す。制御が内部プログラム71に渡ると、内部プログ
ラム71は必要な処理を行う、これにより9例えば、内
部プログラム71のデータ域81の内容が、書き換えら
れる。
従って、再度、命令rcALL”A’″」により内部プ
ログラム71が呼び出された時は、データ域81の内容
は初期値ではない。
次に、制御が内部プログラム61に戻った後内部プログ
ラム61が、命令rcANcEL“A”」により、内部
プログラム71を取り消したとする。この命令があった
場合には1次に内部プログラム7!が参照された時には
、そのデータ域81の内容は初期値となっていなければ
ならない。
そこで、内部プログラム61は、内部プログラム71を
取り消すと共に、初期化処理部4に対して、データ域8
1の初期化が必要であることを通知する。
次に、再び、内部プログラム61が内部プログラム71
を呼び出すと、先に前述の通知を受けた初期化処理部4
は、データ域82の内容をデータ域81ヘローデイング
する。これにより、データ域81の内容は初期値とされ
る。
このように2元のロードモジュール52のうちの必要な
一部分(即ち、初期化が必要となったデータ域81の部
分)のみが9部分的に、再度ローディングされる。これ
により、内部プログラム自体に初′M値データを持つ必
要がなくなる。従って。
内部プログラムの占める領域を小さくでき、かつ。
主メモリ上の内部プログラムのデータ域の初期化を行う
ことができる。
〔実施例〕
第2図は実施例説明図であり、同図において40は初期
化フラグ、41はフラグ設定部、42はフラグ判定部、
43は部分ローディング処理部85及び86は必須パラ
メタである。
フラグ設定部41は、内部プログラム61(プログラム
M)が呼び出している他の内部プログラム71(プログ
ラムA)を命令rCANCEL“A″」により取り消す
と、取り消された内部プログラム71のデータ域81の
初期化が必要であることを示すフラグを設定する。即ち
、内部プログラム71についての初期化フラグ40に「
初期化必要」を設定する。
フラグ判定部42は、内部プログラム61が他の内部プ
ログラム71を命令rCALL″A“°」により呼び出
すと、呼び出された内部プログラム71についての初期
化の必要性を判定する。即ち内部プログラム71につい
ての初期化フラグ40の状態を判定する。
部分ローディング処理部43は、フラグ判定部42にお
いて初期化が必要であると判定されると。
これを受けて、データ域81の初期化を行う。即ち、実
行中のロードモジュール51の元のロードモジュール5
2のうちデータ域82のみを、必須パラメタ86を用い
て5部分的にデータ域81ヘローデイングする0部分ロ
ーディングが終了すると2部分ローディング処理部43
は初期化フラグ40に「初期化不要」を設定する。
必須パラメタ86は、呼び出しの対象となる内部プログ
ラム71に含まれるようにされ6元のロードモジュール
名(ロードモジュール52であること)、ロードモジュ
ール52におけるデータ域82のアドレスとサイズ、主
メモリ3にローディングされた時の(ロードモジエール
51における)データ域81のアドレスを含む。
第3図はデータ域の初期化処理フローである。
■ 内部プログラム61において最初のCALL命令(
CALL“A”)があると、内部プログラム71が呼び
出され、制御が内部プログラム71に渡る(分岐する)
■ 内部プログラム71の人口において、まず初期化フ
ラグ40の状態が判定される。
この時点では、初期化フラグ40が初期化不要とされて
いるので、内部プログラム71の各命令の処理が実行さ
れる。
■ 内部プログラム61に制御が戻った後、内部プログ
ラム61においてCANCEL命令(CANCEL″A
″″)があると、初期化フラグ40に「初期化必要」が
設定される。
■ この後、内部プログラム61において再びCALL
命令があると、内部プログラム71に分岐する。
■ 内部プログラム71の入口において、初期化フラグ
40の状態が判定される。
この時点では、先のCANCEL命令によって初期化フ
ラグ40が「初期化必要」とされているので、以下の処
理■ないし■が行われる。
即ち、内部プログラム71の各命令の処理の実行に先立
って、データ域81の初期化が行われ■ ロードモジュ
ール52のうちのデータ域82をデータ域81へ部分的
にローディングするための必須パラメタ86がローダ(
部分ローディング処理部43)に設定される。
■ 必須パラメタ86に従って、データ域82の内容が
データ域81に部分的にローディングされる。
■ 部分的なローディングが終了すると、初期化フラグ
40が「初期化不要」に設定される。
この後、データ域81の初期化された内部プログラム7
1の各命令の処理が実行される。
■ この後、内部プログラム61においてCALL命令
があると、内部プログラム71に分岐する。
■ 内部プログラム71の入口において、初期化フラグ
40の状態が判定される。
この時点では、初期化フラグ40が「初期化不要」とさ
れているので、内部プログラム71の各命令の処理が実
行される。
以上の処理を可能とするために、ロードモジュール52
を得る過程において、原始プログラムを翻訳(コンパイ
ル)して目的プログラムを生成する時に、以下のコンパ
イル処理が行われる。
第4図はコイパイル処理の概要を示しており。
同図において、101はコンパイラ、102は原始プロ
グラム、103は目的プログラムである。
原始プログラム102におけるプログラムAを呼び出す
命令rCALL ’“A″」は、コンパイラ101によ
り、目的プログラム103において「プログラムAのア
ドレスへのサブルーチンコール」とされる。
同様に、命令rCANCEL″A″」は、「プログラム
Aにおいてデータ域の初期化が必要である事を示すフラ
グを設定」とされる、この時、データ域の部分ローディ
ングを行うようにはコンパイル処理されない、これは、
命令rcANcEL“A′″」の後に命令rCALL 
”A″」が存在しない場合には、データ域の部分ローデ
ィングが無駄な処理となってしまうからである。
一方、同一の原始プログラム102において、他のプロ
グラム(この場合はプログラムM)から呼び出されるプ
ログラム(この場合はプログラムA)は、そのプログラ
ムの入口において1次のようにされる。
原始プログラム102におけるプログラムAの入口のr
PROcEDURE  DIVISIONJが、コンパ
イラ101により、第4図図示の如くにコンパイル処理
される。即ち、この時、データ域の部分ローディングを
行うようにされる。また。
このために必要なデータが必須パラメタとして。
コンパイラ101により目的プログラム103に加えら
れる。必須パラメタは1例えば、当該目的プログラム1
03がロードモジュール52とされること(ロードモジ
エール名)、ロードモジュール52におけるデータ域8
2のアドレスとサイズ、主メモリ3にローディングされ
た時のデータ域81のアドレスを含む。
なお、第5図に、各命令に対応して生成された目的プロ
グラムの処理内容を示す。
第4図図示の如く生成された目的プログラム103は、
データ処理部1において、第5図図示の如き処理を行う
、実際は、目的プログラム103は。
例えば、リンケージエディタにおいてデータと結合され
、実行可能なロードモジュール52とされる。このデー
タは、データ域81内のデータとは異なるものである。
以上1本発明を実施例により説明したが1本発明はその
主旨に従い種々の変形が可能である。
例えば、7′−夕域81の初期化処理のための部分ロー
ディングが、内部プログラム71の入口ではなく、内部
プログラム61におけるCANCEL命令に伴って行わ
れるようにしてもよい、即ち。
第3図の処理■ないし■(各命令の処理の実行を除く)
が、内部プログラム61におけるCANCEL命令に対
応するようにされる。この場合には。
初期化フラグ40の設定は不要となる。
また、初期化フラグ40を利用することにより。
内部プログラム61におけるCANCEL命令の有無と
は無関係に、データ域81の初期化を行うようにしても
よい0例えば、内部プログラム71の出口(内部プログ
ラム61に制御を戻す時)において、初期化フラグ40
に「初期化必要」のフラグをたてるようにすることがで
きる。この場合には、内部プログラム71が呼び出され
ると、常に、そのデータ域81の初期化が行われる。こ
れは、言語仕様の規定により初期化が必要とされる場合
9例えば、内部プログラム71が内部プログラム61に
対してINITIAL属性を持つような場合に有効であ
る。
(発明の効果) 以上説明したように2本発明によれば、C0BOLにお
ける内部プログラムのデータ域の初期化処理において、
データ域のみを必要に応じて部分的に再度ローディング
することにより、内部プログラム自体が初期値データを
持つ必要を無くすことができるので、内部プログラムが
占める領域を小さくすることができる。
【図面の簡単な説明】
第1図は本発明の原理構成図。 第2図は実施例説明図。 第3図は初期化処理フロー 第4図はコンパイル処理を示す図。 第5図は目的プログラムの処理内容を示す図第6図及び
第7図は従来技術説明図。 1はデータ処理部、2は外部記憶装置、3は主メモリ、
4は初期化処理部、40は初期化フラグ41はフラグ設
定部、42はフラグ判定部、43は部分ローディング処
理部、51及び52はロードモジュール、61,62.
71及び72は内部プログラム、81及び82はデータ
域である。

Claims (1)

  1. 【特許請求の範囲】 主メモリ(3)を有するデータ処理部(1)と、少なく
    とも1つが内部にデータ域(82)を有する複数の内部
    プログラム(72)を含むロードモジュール(52)と
    、 前記ロードモジュール(52)を格納する外部記憶装置
    (2)とを備え、 前記ロードモジュール(52)を前記主メモリ(3)に
    ローディングして、内部にデータ域(81)を有する内
    部プログラム(71)を含むロードモジュール(51)
    とし、前記データ処理部(1)での前記ロードモジュー
    ル(51)の実行に伴って、前記データ域(81)の内
    容が変更されるデータ処理装置において、 前記データ域(81)の内容を初期化する初期化処理部
    (4)を設け、 前記データ域(81)の内容の初期化が必要となった時
    に、前記初期化処理部(4)が、前記外部記憶装置(2
    )の前記データ域(82)の内容を、前記主メモリ(3
    )の前記データ域(81)へローディングする ことを特徴とするデータ域の初期化処理方式。
JP21591788A 1988-08-30 1988-08-30 データ域の初期化処理方式 Pending JPH0264731A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21591788A JPH0264731A (ja) 1988-08-30 1988-08-30 データ域の初期化処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21591788A JPH0264731A (ja) 1988-08-30 1988-08-30 データ域の初期化処理方式

Publications (1)

Publication Number Publication Date
JPH0264731A true JPH0264731A (ja) 1990-03-05

Family

ID=16680397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21591788A Pending JPH0264731A (ja) 1988-08-30 1988-08-30 データ域の初期化処理方式

Country Status (1)

Country Link
JP (1) JPH0264731A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5911344B2 (ja) * 1976-10-31 1984-03-14 財団法人雑賀技術研究所 防音精米装置
JPS59125421A (ja) * 1983-01-04 1984-07-19 Nec Corp 計算機応用機器の初期設定方式
JPS61214054A (ja) * 1985-03-20 1986-09-22 Hitachi Ltd 端末装置のプリセツトデ−タ処理方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5911344B2 (ja) * 1976-10-31 1984-03-14 財団法人雑賀技術研究所 防音精米装置
JPS59125421A (ja) * 1983-01-04 1984-07-19 Nec Corp 計算機応用機器の初期設定方式
JPS61214054A (ja) * 1985-03-20 1986-09-22 Hitachi Ltd 端末装置のプリセツトデ−タ処理方式

Similar Documents

Publication Publication Date Title
US4607332A (en) Dynamic alteration of firmware programs in Read-Only Memory based systems
US20060071933A1 (en) Application binary interface for multi-pass shaders
US20040025083A1 (en) Generating test code for software
JP2000347874A (ja) レジスタ割当器を用いた呼出規則プロローグ・エピローグコード構築方法及び装置
EA012057B1 (ru) Определение области действия параметра графа зависимостей
US20160154657A1 (en) Extensible Firmware Abstraction
WO2003001373A1 (en) Java rule engine framework
JPH0254337A (ja) 実行可能イメージの生成を容易とするデータ処理システム
JPH1139169A (ja) コンパイル方法,コンパイラ,例外ハンドラ及びプログラム記憶媒体
CN117193882A (zh) 一种基于微内核操作系统的elf加载方法
US6101326A (en) Method and apparatus for frame elimination for simple procedures with tail calls
US7051323B2 (en) Method and apparatus for initializing romized system classes at virtual machine build time
US20030079210A1 (en) Integrated register allocator in a compiler
US10963275B1 (en) Implementing dependency injection via direct bytecode generation
CN1004906B (zh) 解释程序的扩充方法
US10459702B2 (en) Flow control for language-embedded programming in general purpose computing on graphics processing units
US6012140A (en) Processing system, processing unit, memory and compiling method
JPH06275084A (ja) 不揮発性半導体記憶装置及びそれを用いたデータ処理装置
JPH0264731A (ja) データ域の初期化処理方式
US12530732B2 (en) Enhanced computer vision application programming interface
EP0417916B1 (en) Procedure state descriptor system for digital data processors
Hamlin Jr et al. Configurable applications for graphics employing satellites (CAGES)
CN117707540A (zh) 一种嵌入式软件内部模块解耦合的开发加载方法及装置
US20070169028A1 (en) Partitioning of non-volatile memories for vectorization
US5875337A (en) Modifier for a program executing parallel processes that reduces wait time for access to a shared resource