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
Links
- 230000004048 modification Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- HEFNNWSXXWATRW-UHFFFAOYSA-N Ibuprofen Chemical compound CC(C)CC1=CC=C(C(C)C(O)=O)C=C1 HEFNNWSXXWATRW-UHFFFAOYSA-N 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
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を作成する。
をソースプログラムから修正できないような場合にもプ
ログラムの修正を可能とする。 【構成】 システムサブルーチン1はコード部からなっ
ており、パッチ領域として利用するのに十分な大きさが
確保されている。COBOL言語ソースプログラム2は
COBOL言語で作成されたソースプログラムであり、
システムサブルーチン1を読出すCALL文が含まれて
いる。スキップフラグ3は該CALL文が通常のプログ
ラムの流れの中で実行されることがないように制御する
ために設けられている。コンパイルユニット4はシステ
ムサブルーチン1のコンパイル結果である。COBOL
コンパイルユニット5はCOBOL言語ソースプログラ
ム2のコンパイル結果である。リンカ7はコンパイルユ
ニット4とCOBOLコンパイルユニット5とをリンク
して最終的なロードモジュール6を作成する。
Description
【0001】
【技術分野】本発明はパッチ領域確保装置に関し、特に
COBOL言語などの高級プログラム言語でプログラム
開発を行う際のコード部におけるパッチ領域の確保方法
に関する。
COBOL言語などの高級プログラム言語でプログラム
開発を行う際のコード部におけるパッチ領域の確保方法
に関する。
【0002】
【従来技術】一般に、プログラム開発におけるプログラ
ムの修正方法としては、ソースプログラムから修正して
コンパイルリンクを行い、実行可能形式のロードモジュ
ールを作成し直す方法と、ソースプログラムを修正せず
に、ロードモジュールの一部を直接書き直す方法とがあ
る。
ムの修正方法としては、ソースプログラムから修正して
コンパイルリンクを行い、実行可能形式のロードモジュ
ールを作成し直す方法と、ソースプログラムを修正せず
に、ロードモジュールの一部を直接書き直す方法とがあ
る。
【0003】COBOL言語などの高級プログラム言語
のプログラム開発においては、プログラムの不具合発生
時にソースプログラムを修正することで、その不具合に
対処するようになっている。
のプログラム開発においては、プログラムの不具合発生
時にソースプログラムを修正することで、その不具合に
対処するようになっている。
【0004】このCOBOL言語のような高級プログラ
ム言語にはデータ部にデータ領域を確保する命令はある
が、コード部にパッチ領域として領域を確保するだけで
何も動作をしないような命令は存在しない。このため、
データ部のパッチ領域を予め確保することはできるが、
コード部のパッチ領域を確保することはできないという
問題がある。
ム言語にはデータ部にデータ領域を確保する命令はある
が、コード部にパッチ領域として領域を確保するだけで
何も動作をしないような命令は存在しない。このため、
データ部のパッチ領域を予め確保することはできるが、
コード部のパッチ領域を確保することはできないという
問題がある。
【0005】データ部に確保したパッチ領域をコード部
がコードとして使用することはできないため、COBO
L言語のような高級プログラム言語で作成したプログラ
ムで不具合が発生した場合、ソースプログラムを修正し
てコンパイルリンクを行うこととなり、パッチによるプ
ログラム修正ができないという問題がある。
がコードとして使用することはできないため、COBO
L言語のような高級プログラム言語で作成したプログラ
ムで不具合が発生した場合、ソースプログラムを修正し
てコンパイルリンクを行うこととなり、パッチによるプ
ログラム修正ができないという問題がある。
【0006】
【発明の目的】本発明は上記のような従来のものの問題
点を除去すべくなされたもので、コード部にパッチ領域
を確保することができ、プログラムをソースプログラム
から修正できないような場合にもプログラムの修正を行
うことができるパッチ領域確保装置の提供を目的とす
る。
点を除去すべくなされたもので、コード部にパッチ領域
を確保することができ、プログラムをソースプログラム
から修正できないような場合にもプログラムの修正を行
うことができるパッチ領域確保装置の提供を目的とす
る。
【0007】
【発明の構成】本発明によるパッチ領域確保装置は、高
級プログラム言語で作成されたソースプログラムを修正
する修正プログラムを格納するパッチ領域を確保するた
めのシステムサブルーチンと、前記ソースプログラム内
に設けられ、前記システムサブルーチンを読出す読出し
命令と、前記ソースプログラムのコンパイル結果と前記
システムサブルーチンのコンパイル結果とをリンクする
リンク手段とを有することを特徴とする。
級プログラム言語で作成されたソースプログラムを修正
する修正プログラムを格納するパッチ領域を確保するた
めのシステムサブルーチンと、前記ソースプログラム内
に設けられ、前記システムサブルーチンを読出す読出し
命令と、前記ソースプログラムのコンパイル結果と前記
システムサブルーチンのコンパイル結果とをリンクする
リンク手段とを有することを特徴とする。
【0008】
【実施例】次に、本発明の一実施例について図面を参照
して説明する。
して説明する。
【0009】図1は本発明の一実施例の構成を示すブロ
ック図である。図において、システムサブルーチン1は
COBOL言語で作成されたプログラムの実行可能形式
のロードモジュールのコード部の中にパッチ領域を確保
するために作成されたものである。
ック図である。図において、システムサブルーチン1は
COBOL言語で作成されたプログラムの実行可能形式
のロードモジュールのコード部の中にパッチ領域を確保
するために作成されたものである。
【0010】すなわち、システムサブルーチン1はコー
ド部からなっており、パッチ領域として利用するのに十
分な大きさが確保されている。また、システムサブルー
チン1の内容としては、実行しても何も動作を起こさな
いノーオペレーション命令で埋められている。
ド部からなっており、パッチ領域として利用するのに十
分な大きさが確保されている。また、システムサブルー
チン1の内容としては、実行しても何も動作を起こさな
いノーオペレーション命令で埋められている。
【0011】但し、COBOL言語ではこのような命令
が存在しないため、本実施例のシステムサブルーチン1
はアセンブラ命令で組まれたソースプログラムとする。
つまり、システムサブルーチン1はアセンブラ言語のノ
ーオペレーション命令で埋め尽くされたソースプログラ
ムとする。
が存在しないため、本実施例のシステムサブルーチン1
はアセンブラ命令で組まれたソースプログラムとする。
つまり、システムサブルーチン1はアセンブラ言語のノ
ーオペレーション命令で埋め尽くされたソースプログラ
ムとする。
【0012】システムサブルーチン1は予めコンパイル
されたものであり、そのコンパイル結果がコンパイルユ
ニット4である。したがって、コンパイルユニット4に
はオブジェクトコードのみが存在している。ここで、通
常、アセンブラで組まれたプログラムはアセンブルと表
現するが、本実施例では便宜上コンパイルと表現してい
る。
されたものであり、そのコンパイル結果がコンパイルユ
ニット4である。したがって、コンパイルユニット4に
はオブジェクトコードのみが存在している。ここで、通
常、アセンブラで組まれたプログラムはアセンブルと表
現するが、本実施例では便宜上コンパイルと表現してい
る。
【0013】COBOL言語ソースプログラム2はCO
BOL言語で作成されたソースプログラムであり、シス
テムサブルーチン1を読出すCALL文が含まれてい
る。スキップフラグ3はCOBOL言語ソースプログラ
ム2内に設けられており、COBOL言語ソースプログ
ラム2内の上記のCALL文が通常のプログラムの流れ
の中で実行されることがないよう制御するために設けら
れている。
BOL言語で作成されたソースプログラムであり、シス
テムサブルーチン1を読出すCALL文が含まれてい
る。スキップフラグ3はCOBOL言語ソースプログラ
ム2内に設けられており、COBOL言語ソースプログ
ラム2内の上記のCALL文が通常のプログラムの流れ
の中で実行されることがないよう制御するために設けら
れている。
【0014】すなわち、COBOL言語ソースプログラ
ム2はそのコード部にシステムサブルーチン1を読出す
コール命令をいれておくが、実際にはシステムサブルー
チン1が実行されることがないような条件式の中にいれ
ておく。
ム2はそのコード部にシステムサブルーチン1を読出す
コール命令をいれておくが、実際にはシステムサブルー
チン1が実行されることがないような条件式の中にいれ
ておく。
【0015】本実施例では、スキップフラグ3の値を条
件の真理値に使い、条件式が真となって満たされたとき
にコール命令でシステムサブルーチン1が読み出される
ようにプログラムする。つまり、スキップフラグ3に条
件式が真とならないような値をセットすることによっ
て、このシステムサブルーチン1が実際には呼び出され
ないようにしておく。
件の真理値に使い、条件式が真となって満たされたとき
にコール命令でシステムサブルーチン1が読み出される
ようにプログラムする。つまり、スキップフラグ3に条
件式が真とならないような値をセットすることによっ
て、このシステムサブルーチン1が実際には呼び出され
ないようにしておく。
【0016】COBOLコンパイルユニット5はCOB
OL言語ソースプログラム2のコンパイル結果であり、
通常オブジェクトデータ部51とオブジェクトコード部
52とからなっている。
OL言語ソースプログラム2のコンパイル結果であり、
通常オブジェクトデータ部51とオブジェクトコード部
52とからなっている。
【0017】リンカ7はコンパイルユニット4とCOB
OLコンパイルユニット5とをリンクして最終的なロー
ドモジュール6を作成する。すなわち、リンカ7がCO
BOLコンパイルユニット5のオブジェクトコード部5
2とアセンブラソースモジュールのオブジェクトコード
部のみからなるコンパイルユニット4とをリンクするこ
とで、ロードモジュール6にはシステムサブルーチン1
で確保された領域の分だけコード部のパッチ領域61が
確保される。
OLコンパイルユニット5とをリンクして最終的なロー
ドモジュール6を作成する。すなわち、リンカ7がCO
BOLコンパイルユニット5のオブジェクトコード部5
2とアセンブラソースモジュールのオブジェクトコード
部のみからなるコンパイルユニット4とをリンクするこ
とで、ロードモジュール6にはシステムサブルーチン1
で確保された領域の分だけコード部のパッチ領域61が
確保される。
【0018】図2は図1のパッチ領域61にパッチデー
タが存在するときの動作を示すフローチャートである。
これら図1および図2を用いて本発明の一実施例によっ
て確保されたパッチ領域61にパッチデータが存在する
ときの動作について以下説明する。
タが存在するときの動作を示すフローチャートである。
これら図1および図2を用いて本発明の一実施例によっ
て確保されたパッチ領域61にパッチデータが存在する
ときの動作について以下説明する。
【0019】COBOL言語ソースプログラム2に書か
れた命令が実行されていくときに(図2ステップ2
0)、通常の動作、つまりパッチ領域61のパッチデー
タを使用する必要のない命令であれば、システムサブル
ーチン1を含む条件式を実行する前の適当なところでス
キップフラグ3に‘YES’をセットする(図2ステッ
プ21)。
れた命令が実行されていくときに(図2ステップ2
0)、通常の動作、つまりパッチ領域61のパッチデー
タを使用する必要のない命令であれば、システムサブル
ーチン1を含む条件式を実行する前の適当なところでス
キップフラグ3に‘YES’をセットする(図2ステッ
プ21)。
【0020】システムサブルーチン1を読出すコール命
令を含む条件判断分の命令が実行されると(図2ステッ
プ22)、スキップフラグ3の値=‘NO’の条件式が
真となるか否かの判断が行われる。
令を含む条件判断分の命令が実行されると(図2ステッ
プ22)、スキップフラグ3の値=‘NO’の条件式が
真となるか否かの判断が行われる。
【0021】この場合、スキップフラグ3には‘YE
S’がセットされているので、スキップフラグ3の値=
‘NO’の条件式が真とはならない(図2ステップ2
3)。よって、システムサブルーチン1を読出すコール
命令が実行されることなく、次のCOBOL言語命令の
実行が行われる(図2ステップ24)。
S’がセットされているので、スキップフラグ3の値=
‘NO’の条件式が真とはならない(図2ステップ2
3)。よって、システムサブルーチン1を読出すコール
命令が実行されることなく、次のCOBOL言語命令の
実行が行われる(図2ステップ24)。
【0022】COBOL言語命令が実行されていってパ
ッチがあたった箇所にくると、その箇所にはシステムサ
ブルーチン1が展開されているアドレス、つまりパッチ
領域61のアドレスに飛ぶようなアセンブラ命令が書か
れているので、該アセンブラ命令が実行される(図2ス
テップ25)。
ッチがあたった箇所にくると、その箇所にはシステムサ
ブルーチン1が展開されているアドレス、つまりパッチ
領域61のアドレスに飛ぶようなアセンブラ命令が書か
れているので、該アセンブラ命令が実行される(図2ス
テップ25)。
【0023】該アセンブラ命令の実行によってパッチ領
域61のアドレスに飛ぶと、パッチ領域61に書かれて
いるアセンブラ命令が実行され(図2ステップ26)、
パッチ領域61で必要な処理が行われる。このパッチ領
域61で必要な処理を行った後に、元のCOBOL言語
で書かれた命令を実行できるような後処理を行い、パッ
チ領域61のアセンブラ命令からCOBOL言語の命令
の実行に戻る(図2ステップ27)。
域61のアドレスに飛ぶと、パッチ領域61に書かれて
いるアセンブラ命令が実行され(図2ステップ26)、
パッチ領域61で必要な処理が行われる。このパッチ領
域61で必要な処理を行った後に、元のCOBOL言語
で書かれた命令を実行できるような後処理を行い、パッ
チ領域61のアセンブラ命令からCOBOL言語の命令
の実行に戻る(図2ステップ27)。
【0024】このように、アセンブラ言語などでパッチ
領域を確保するように組まれたシステムサブルーチン1
を提供し、このシステムサブルーチン1をコールするよ
うCOBOL言語ソースプログラム2を作成することに
よって、COBOLコンパイルユニット5のリンクを行
うときにCOBOLコンパイルユニット5のオブジェク
トコード部51にコンパイルユニット4をリンクするこ
とで、コード部にパッチ領域を確保することができる。
よって、プログラムをCOBOL言語ソースプログラム
2から修正できないような場合にも、上記パッチ領域を
使用することで、プログラムの修正を行うことができ
る。
領域を確保するように組まれたシステムサブルーチン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】 高級プログラム言語で作成されたソース
プログラムを修正する修正プログラムを格納するパッチ
領域を確保するためのシステムサブルーチンと、前記ソ
ースプログラム内に設けられ、前記システムサブルーチ
ンを読出す読出し命令と、前記ソースプログラムのコン
パイル結果と前記システムサブルーチンのコンパイル結
果とをリンクするリンク手段とを有することを特徴とす
るパッチ領域確保装置。 - 【請求項2】 前記ソースプログラム内に予め設けられ
たスキップフラグと、前記スキップフラグの内容に応じ
て前記読出し命令の実行を制御する手段とを設けたこと
を特徴とする請求項1記載のパッチ領域確保装置。 - 【請求項3】 前記システムサブルーチンを、実行時に
何も動作を起こさないノーオペレーション命令で構成し
たことを特徴とする請求項1または請求項2記載のパッ
チ領域確保装置。
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000293207A (ja) * | 1999-03-15 | 2000-10-20 | Fisher Rosemount Syst Inc | 機能ブロックエンティティ、プロセス制御システム、修正子機能ブロック、および基本機能ブロックの動作を修正する方法。 |
-
1992
- 1992-06-11 JP JP17751092A patent/JPH05341981A/ja active Pending
Cited By (1)
| 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) | コンパイルドコードオブジェクトのパッチ処理方式 |