JPH05341981A - パッチ領域確保装置 - Google Patents

パッチ領域確保装置

Info

Publication number
JPH05341981A
JPH05341981A JP17751092A JP17751092A JPH05341981A JP H05341981 A JPH05341981 A JP H05341981A JP 17751092 A JP17751092 A JP 17751092A JP 17751092 A JP17751092 A JP 17751092A JP H05341981 A JPH05341981 A JP H05341981A
Authority
JP
Japan
Prior art keywords
program
source program
patch area
cobol
system subroutine
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
JP17751092A
Other languages
English (en)
Inventor
Hiroko Endo
宏子 遠藤
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 JP17751092A priority Critical patent/JPH05341981A/ja
Publication of JPH05341981A publication Critical patent/JPH05341981A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 コード部にパッチ領域を確保し、プログラム
をソースプログラムから修正できないような場合にもプ
ログラムの修正を可能とする。 【構成】 システムサブルーチン1はコード部からなっ
ており、パッチ領域として利用するのに十分な大きさが
確保されている。COBOL言語ソースプログラム2は
COBOL言語で作成されたソースプログラムであり、
システムサブルーチン1を読出すCALL文が含まれて
いる。スキップフラグ3は該CALL文が通常のプログ
ラムの流れの中で実行されることがないように制御する
ために設けられている。コンパイルユニット4はシステ
ムサブルーチン1のコンパイル結果である。COBOL
コンパイルユニット5はCOBOL言語ソースプログラ
ム2のコンパイル結果である。リンカ7はコンパイルユ
ニット4とCOBOLコンパイルユニット5とをリンク
して最終的なロードモジュール6を作成する。

Description

【発明の詳細な説明】
【0001】
【技術分野】本発明はパッチ領域確保装置に関し、特に
COBOL言語などの高級プログラム言語でプログラム
開発を行う際のコード部におけるパッチ領域の確保方法
に関する。
【0002】
【従来技術】一般に、プログラム開発におけるプログラ
ムの修正方法としては、ソースプログラムから修正して
コンパイルリンクを行い、実行可能形式のロードモジュ
ールを作成し直す方法と、ソースプログラムを修正せず
に、ロードモジュールの一部を直接書き直す方法とがあ
る。
【0003】COBOL言語などの高級プログラム言語
のプログラム開発においては、プログラムの不具合発生
時にソースプログラムを修正することで、その不具合に
対処するようになっている。
【0004】このCOBOL言語のような高級プログラ
ム言語にはデータ部にデータ領域を確保する命令はある
が、コード部にパッチ領域として領域を確保するだけで
何も動作をしないような命令は存在しない。このため、
データ部のパッチ領域を予め確保することはできるが、
コード部のパッチ領域を確保することはできないという
問題がある。
【0005】データ部に確保したパッチ領域をコード部
がコードとして使用することはできないため、COBO
L言語のような高級プログラム言語で作成したプログラ
ムで不具合が発生した場合、ソースプログラムを修正し
てコンパイルリンクを行うこととなり、パッチによるプ
ログラム修正ができないという問題がある。
【0006】
【発明の目的】本発明は上記のような従来のものの問題
点を除去すべくなされたもので、コード部にパッチ領域
を確保することができ、プログラムをソースプログラム
から修正できないような場合にもプログラムの修正を行
うことができるパッチ領域確保装置の提供を目的とす
る。
【0007】
【発明の構成】本発明によるパッチ領域確保装置は、高
級プログラム言語で作成されたソースプログラムを修正
する修正プログラムを格納するパッチ領域を確保するた
めのシステムサブルーチンと、前記ソースプログラム内
に設けられ、前記システムサブルーチンを読出す読出し
命令と、前記ソースプログラムのコンパイル結果と前記
システムサブルーチンのコンパイル結果とをリンクする
リンク手段とを有することを特徴とする。
【0008】
【実施例】次に、本発明の一実施例について図面を参照
して説明する。
【0009】図1は本発明の一実施例の構成を示すブロ
ック図である。図において、システムサブルーチン1は
COBOL言語で作成されたプログラムの実行可能形式
のロードモジュールのコード部の中にパッチ領域を確保
するために作成されたものである。
【0010】すなわち、システムサブルーチン1はコー
ド部からなっており、パッチ領域として利用するのに十
分な大きさが確保されている。また、システムサブルー
チン1の内容としては、実行しても何も動作を起こさな
いノーオペレーション命令で埋められている。
【0011】但し、COBOL言語ではこのような命令
が存在しないため、本実施例のシステムサブルーチン1
はアセンブラ命令で組まれたソースプログラムとする。
つまり、システムサブルーチン1はアセンブラ言語のノ
ーオペレーション命令で埋め尽くされたソースプログラ
ムとする。
【0012】システムサブルーチン1は予めコンパイル
されたものであり、そのコンパイル結果がコンパイルユ
ニット4である。したがって、コンパイルユニット4に
はオブジェクトコードのみが存在している。ここで、通
常、アセンブラで組まれたプログラムはアセンブルと表
現するが、本実施例では便宜上コンパイルと表現してい
る。
【0013】COBOL言語ソースプログラム2はCO
BOL言語で作成されたソースプログラムであり、シス
テムサブルーチン1を読出すCALL文が含まれてい
る。スキップフラグ3はCOBOL言語ソースプログラ
ム2内に設けられており、COBOL言語ソースプログ
ラム2内の上記のCALL文が通常のプログラムの流れ
の中で実行されることがないよう制御するために設けら
れている。
【0014】すなわち、COBOL言語ソースプログラ
ム2はそのコード部にシステムサブルーチン1を読出す
コール命令をいれておくが、実際にはシステムサブルー
チン1が実行されることがないような条件式の中にいれ
ておく。
【0015】本実施例では、スキップフラグ3の値を条
件の真理値に使い、条件式が真となって満たされたとき
にコール命令でシステムサブルーチン1が読み出される
ようにプログラムする。つまり、スキップフラグ3に条
件式が真とならないような値をセットすることによっ
て、このシステムサブルーチン1が実際には呼び出され
ないようにしておく。
【0016】COBOLコンパイルユニット5はCOB
OL言語ソースプログラム2のコンパイル結果であり、
通常オブジェクトデータ部51とオブジェクトコード部
52とからなっている。
【0017】リンカ7はコンパイルユニット4とCOB
OLコンパイルユニット5とをリンクして最終的なロー
ドモジュール6を作成する。すなわち、リンカ7がCO
BOLコンパイルユニット5のオブジェクトコード部5
2とアセンブラソースモジュールのオブジェクトコード
部のみからなるコンパイルユニット4とをリンクするこ
とで、ロードモジュール6にはシステムサブルーチン1
で確保された領域の分だけコード部のパッチ領域61が
確保される。
【0018】図2は図1のパッチ領域61にパッチデー
タが存在するときの動作を示すフローチャートである。
これら図1および図2を用いて本発明の一実施例によっ
て確保されたパッチ領域61にパッチデータが存在する
ときの動作について以下説明する。
【0019】COBOL言語ソースプログラム2に書か
れた命令が実行されていくときに(図2ステップ2
0)、通常の動作、つまりパッチ領域61のパッチデー
タを使用する必要のない命令であれば、システムサブル
ーチン1を含む条件式を実行する前の適当なところでス
キップフラグ3に‘YES’をセットする(図2ステッ
プ21)。
【0020】システムサブルーチン1を読出すコール命
令を含む条件判断分の命令が実行されると(図2ステッ
プ22)、スキップフラグ3の値=‘NO’の条件式が
真となるか否かの判断が行われる。
【0021】この場合、スキップフラグ3には‘YE
S’がセットされているので、スキップフラグ3の値=
‘NO’の条件式が真とはならない(図2ステップ2
3)。よって、システムサブルーチン1を読出すコール
命令が実行されることなく、次のCOBOL言語命令の
実行が行われる(図2ステップ24)。
【0022】COBOL言語命令が実行されていってパ
ッチがあたった箇所にくると、その箇所にはシステムサ
ブルーチン1が展開されているアドレス、つまりパッチ
領域61のアドレスに飛ぶようなアセンブラ命令が書か
れているので、該アセンブラ命令が実行される(図2ス
テップ25)。
【0023】該アセンブラ命令の実行によってパッチ領
域61のアドレスに飛ぶと、パッチ領域61に書かれて
いるアセンブラ命令が実行され(図2ステップ26)、
パッチ領域61で必要な処理が行われる。このパッチ領
域61で必要な処理を行った後に、元のCOBOL言語
で書かれた命令を実行できるような後処理を行い、パッ
チ領域61のアセンブラ命令からCOBOL言語の命令
の実行に戻る(図2ステップ27)。
【0024】このように、アセンブラ言語などでパッチ
領域を確保するように組まれたシステムサブルーチン1
を提供し、このシステムサブルーチン1をコールするよ
うCOBOL言語ソースプログラム2を作成することに
よって、COBOLコンパイルユニット5のリンクを行
うときにCOBOLコンパイルユニット5のオブジェク
トコード部51にコンパイルユニット4をリンクするこ
とで、コード部にパッチ領域を確保することができる。
よって、プログラムをCOBOL言語ソースプログラム
2から修正できないような場合にも、上記パッチ領域を
使用することで、プログラムの修正を行うことができ
る。
【0025】尚、本発明の一実施例ではCOBOL言語
で作成されたソースプログラムについて述べたが、他の
高級プログラム言語にも適用することができ、これに限
定されない。
【0026】
【発明の効果】以上説明したように本発明によれば、高
級プログラム言語で作成されたソースプログラムを修正
する修正プログラムを格納するパッチ領域を確保するた
めのシステムサブルーチンを提供し、このシステムサブ
ルーチンを読出す読出し命令をソースプログラム内に設
け、ソースプログラムのコンパイル結果とシステムサブ
ルーチンのコンパイル結果とをリンクすることによっ
て、コード部にパッチ領域を確保することができ、プロ
グラムをソースプログラムから修正できないような場合
にもプログラムの修正を行うことができるという効果が
ある。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示すブロック図であ
る。
【図2】図1のパッチ領域にパッチデータが存在すると
きの動作を示すフローチャートである。
【符号の説明】
1 システムサブルーチン 2 COBOL言語ソースプログラム 3 スキップフラグ 4 コンパイルユニット 5 COBOLコンパイルユニット 6 ロードモジュール 7 リンカ 51 オブジェクトデータ部 52 オブジェクトコード部 61 パッチ領域

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 高級プログラム言語で作成されたソース
    プログラムを修正する修正プログラムを格納するパッチ
    領域を確保するためのシステムサブルーチンと、前記ソ
    ースプログラム内に設けられ、前記システムサブルーチ
    ンを読出す読出し命令と、前記ソースプログラムのコン
    パイル結果と前記システムサブルーチンのコンパイル結
    果とをリンクするリンク手段とを有することを特徴とす
    るパッチ領域確保装置。
  2. 【請求項2】 前記ソースプログラム内に予め設けられ
    たスキップフラグと、前記スキップフラグの内容に応じ
    て前記読出し命令の実行を制御する手段とを設けたこと
    を特徴とする請求項1記載のパッチ領域確保装置。
  3. 【請求項3】 前記システムサブルーチンを、実行時に
    何も動作を起こさないノーオペレーション命令で構成し
    たことを特徴とする請求項1または請求項2記載のパッ
    チ領域確保装置。
JP17751092A 1992-06-11 1992-06-11 パッチ領域確保装置 Pending JPH05341981A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17751092A JPH05341981A (ja) 1992-06-11 1992-06-11 パッチ領域確保装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17751092A JPH05341981A (ja) 1992-06-11 1992-06-11 パッチ領域確保装置

Publications (1)

Publication Number Publication Date
JPH05341981A true JPH05341981A (ja) 1993-12-24

Family

ID=16032169

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17751092A Pending JPH05341981A (ja) 1992-06-11 1992-06-11 パッチ領域確保装置

Country Status (1)

Country Link
JP (1) JPH05341981A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293207A (ja) * 1999-03-15 2000-10-20 Fisher Rosemount Syst Inc 機能ブロックエンティティ、プロセス制御システム、修正子機能ブロック、および基本機能ブロックの動作を修正する方法。

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293207A (ja) * 1999-03-15 2000-10-20 Fisher Rosemount Syst Inc 機能ブロックエンティティ、プロセス制御システム、修正子機能ブロック、および基本機能ブロックの動作を修正する方法。

Similar Documents

Publication Publication Date Title
US7171649B1 (en) Optimizing safe downcasting in an object-oriented programming language
US5832273A (en) System for deleting redundant instructions from high level language source code containing in-line assembly instructions
US6113651A (en) Compile method, a compiler, an exception handler, and a program recording medium
JPH0760390B2 (ja) サブプログラム呼び出しを実行する方法および装置と コンパイラ装置
JPH05341981A (ja) パッチ領域確保装置
JPH09128267A (ja) データ処理装置およびデータ処理方法
JP2001296996A (ja) コンポーネントの自動生成装置および表現方法
JPH05241812A (ja) パッチ領域確保装置
JP2003076558A (ja) プログラム実行制御方法及びプログラム実行制御プログラム
JPH08123679A (ja) Rom装置およびコンパイラ
JPH11110224A (ja) 言語処理装置及び方法、並びに情報記憶媒体
JP3424596B2 (ja) シンボル参照情報のキャッシュ方法ならびに装置
JPH04251341A (ja) マイクロコンピュータのエミュレータ
JPH03100730A (ja) 高級言語による緊急修正データ作成処理方法
JP2003122592A (ja) ハードウェア検査システム
JP2007080207A (ja) プログラム開発支援システム及びリンカ
JPH03229323A (ja) データ処理装置
Meinicke et al. Tool Support for Product-Line Maintenance
JPH05257672A (ja) コンパイルドコードオブジェクトのパッチ処理方式
JPS58169637A (ja) コンパイル処理方式
JPH04321135A (ja) コンパイラのオブジェクト修正指示方式
JPH05334052A (ja) モジュール管理方式
JPH1124939A (ja) プログラム変換方法
JPH0264731A (ja) データ域の初期化処理方式
JPH0744372A (ja) コンパイルドコードオブジェクトのパッチ処理方式