JP3149422B2 - リンク処理方式 - Google Patents
リンク処理方式Info
- Publication number
- JP3149422B2 JP3149422B2 JP03525794A JP3525794A JP3149422B2 JP 3149422 B2 JP3149422 B2 JP 3149422B2 JP 03525794 A JP03525794 A JP 03525794A JP 3525794 A JP3525794 A JP 3525794A JP 3149422 B2 JP3149422 B2 JP 3149422B2
- Authority
- JP
- Japan
- Prior art keywords
- common block
- common
- name
- block
- correction
- 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.)
- Expired - Fee Related
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
【0001】
【産業上の利用分野】本発明は、タイムシェアリングシ
ステム(TSS)を有するコンピュータシステムにおい
て、複数のオブジェクトモジュールを結合させて1個の
ロードモジュールを生成するリンク処理方式に関する。
ステム(TSS)を有するコンピュータシステムにおい
て、複数のオブジェクトモジュールを結合させて1個の
ロードモジュールを生成するリンク処理方式に関する。
【0002】
【従来の技術】複数のオブジェクトモジュールを結合さ
せて1個のロードモジュールを生成するリンク処理にお
いては、コンパイラが出力したオブジェクトモジュール
を結合する際、オブジェクトモジュールに含まれている
共通ブロック関しては、各々のオブジェクトモジュール
で定義されている同一名の共通ブロックの間に矛盾や不
正が無いか否かをチェックして、リンク処理を行なって
いる。
せて1個のロードモジュールを生成するリンク処理にお
いては、コンパイラが出力したオブジェクトモジュール
を結合する際、オブジェクトモジュールに含まれている
共通ブロック関しては、各々のオブジェクトモジュール
で定義されている同一名の共通ブロックの間に矛盾や不
正が無いか否かをチェックして、リンク処理を行なって
いる。
【0003】従来、この同一名の共通ブロックの間に何
等かの矛盾や不正があった場合には、リンク処理を行な
うリンカ(リンケージエディタ)によって対応するか、
あるいはロードモジュールを生成せずにリンク処理を終
了していた。
等かの矛盾や不正があった場合には、リンク処理を行な
うリンカ(リンケージエディタ)によって対応するか、
あるいはロードモジュールを生成せずにリンク処理を終
了していた。
【0004】すなわち、同一名の共通ブロックの間の矛
盾や不正がリンカによって対処可能なものであれば、リ
ンカが自動的にリカバリ処理を施してロードモジュール
を生成し、一方、同一名の共通ブロックの間の矛盾や不
正がリンカによって対処できないものであれば、何等リ
カバリ処理を行なわず、エラーを出力して、ロードモジ
ュールを生成することなくリンク処理を終了していた。
盾や不正がリンカによって対処可能なものであれば、リ
ンカが自動的にリカバリ処理を施してロードモジュール
を生成し、一方、同一名の共通ブロックの間の矛盾や不
正がリンカによって対処できないものであれば、何等リ
カバリ処理を行なわず、エラーを出力して、ロードモジ
ュールを生成することなくリンク処理を終了していた。
【0005】そして、ロードモジュールを生成すること
なくリンク処理を終了した場合等、必要があるときは、
共通ブロックの矛盾や不正の内容に応じてソースプログ
ラムを修正し、コンパイル処理及びリンク処理を再度行
なっていた。
なくリンク処理を終了した場合等、必要があるときは、
共通ブロックの矛盾や不正の内容に応じてソースプログ
ラムを修正し、コンパイル処理及びリンク処理を再度行
なっていた。
【0006】
【発明が解決しようとする課題】しかしながら、上述し
た従来のリンク処理方式では、共通ブロックの矛盾や不
正があった場合に、その矛盾や不正がリンカで対処可能
なものでなければ、リカバリ処理を行なうことができな
いため、リカバリすることができる矛盾や不正が狭い範
囲に制限されていた。このため、共通ブロックの矛盾や
不正が利用者のミス(例えば、同一名の共通ブロックに
対して異なる初期化要求を出している場合、同一名の共
通ブロックの属性が異なる場合、共通ブロックの名前の
記述ミス等)による場合であっても、ソースプログラム
を修正し、コンパイル処理及びリンク処理をやり直さな
ければならず、手間がかかるという欠点があった。
た従来のリンク処理方式では、共通ブロックの矛盾や不
正があった場合に、その矛盾や不正がリンカで対処可能
なものでなければ、リカバリ処理を行なうことができな
いため、リカバリすることができる矛盾や不正が狭い範
囲に制限されていた。このため、共通ブロックの矛盾や
不正が利用者のミス(例えば、同一名の共通ブロックに
対して異なる初期化要求を出している場合、同一名の共
通ブロックの属性が異なる場合、共通ブロックの名前の
記述ミス等)による場合であっても、ソースプログラム
を修正し、コンパイル処理及びリンク処理をやり直さな
ければならず、手間がかかるという欠点があった。
【0007】また、共通ブロックの矛盾や不正がリンカ
で対処可能な場合であっても、リンカが自動的にリカバ
リ処理を行なうため、利用者の意図が反映されず、不適
切なリカバリ処理がなされてしまうおそれがあった(例
えば、共通ブロックの属性が異なっている場合に、初め
にリンカへ入力されてきた共通ブロックの属性に、他の
共通ブロックの属性を強制的に合わせてしまう等)。こ
のため、生成されるロードモジュールが不確かなものと
なってしまうという欠点があった。
で対処可能な場合であっても、リンカが自動的にリカバ
リ処理を行なうため、利用者の意図が反映されず、不適
切なリカバリ処理がなされてしまうおそれがあった(例
えば、共通ブロックの属性が異なっている場合に、初め
にリンカへ入力されてきた共通ブロックの属性に、他の
共通ブロックの属性を強制的に合わせてしまう等)。こ
のため、生成されるロードモジュールが不確かなものと
なってしまうという欠点があった。
【0008】本発明は、上記従来のリンク処理方式の欠
点を解決し、共通ブロックの矛盾や不正に対して利用者
の意図が反映したリカバリ処理を可能とすることを目的
とする。
点を解決し、共通ブロックの矛盾や不正に対して利用者
の意図が反映したリカバリ処理を可能とすることを目的
とする。
【0009】
【課題を解決するための手段】上記の目的を達成するた
め、本発明は、複数のオブジェクトモジュールを入力し
リンカによって結合させて1個のロードモジュールを生
成し、前記オブジェクトモジュールの結合の際に、前記
各オブジェクトモジュールに含まれる共通ブロックに関
し、各オブジェクトモジュールで定義されている同一名
の前記共通ブロックの間で矛盾や不正がないかをチェッ
クしてリンクするリンク処理方式において、入力された
オブジェクトモジュールに含まれる共通ブロックの中
で、同一名の共通ブロック同士の間に矛盾や不正がある
か否かを判定する矛盾/不正判定手段と、前記矛盾/不
正判定手段が共通ブロックに矛盾または不正があると判
定した場合に、該矛盾や不正が見つかった共通ブロック
及び該矛盾や不正に関する情報を利用者に通知し、該利
用者の選択にしたがって、前記共通ブロックの矛盾や不
正に対するリカバリ処理を行なうリカバリ処理手段とを
備え、前記リカバリ処理手段が、前記矛盾/不正判定手
段が共通ブロックに矛盾または不正があると判定した場
合に、該矛盾や不正が見つかった共通ブロック及び該矛
盾や不正に関する情報を出力する情報出力手段と、前記
共通ブロックの矛盾や不正がブロック名の記述ミスによ
るものである場合に、リカバリ処理を行なう共通ブロッ
ク名修正処理手段と、前記共通ブロック名修正処理手段
による処理の後に選択的に起動し、ブロック名の記述ミ
スがあった共通ブロックについて前記共通ブロック名修
正処理手段によってなされたリカバリ処理を反映させた
新たなオブジェクトモジュールを生成し、該生成したオ
ブジェクトモジュールを利用者が指定したファイルへ格
納するオブジェクトモジュール修正処理手段と、前記共
通ブロックの矛盾や不正が同一名の共通ブロックに対し
て異なる初期化要求を出したことによるものである場合
に、リカバリ処理を行なう初期化補正処理手段と、前記
共通ブロックの矛盾や不正が同一名の共通ブロックの属
性が異なることによるものである場合に、リカバリ処理
を行なう属性補正処理手段と、利用者からの入力にした
がって、前記共通ブロック名修正処理手段、オブジェク
トモジュール修正処理手段、初期化補正処理手段、及び
属性補正処理手段のうち何れによってリカバリ処理を行
なうかを選択するリカバリ処理選択手段とを備えること
を特徴とする。
め、本発明は、複数のオブジェクトモジュールを入力し
リンカによって結合させて1個のロードモジュールを生
成し、前記オブジェクトモジュールの結合の際に、前記
各オブジェクトモジュールに含まれる共通ブロックに関
し、各オブジェクトモジュールで定義されている同一名
の前記共通ブロックの間で矛盾や不正がないかをチェッ
クしてリンクするリンク処理方式において、入力された
オブジェクトモジュールに含まれる共通ブロックの中
で、同一名の共通ブロック同士の間に矛盾や不正がある
か否かを判定する矛盾/不正判定手段と、前記矛盾/不
正判定手段が共通ブロックに矛盾または不正があると判
定した場合に、該矛盾や不正が見つかった共通ブロック
及び該矛盾や不正に関する情報を利用者に通知し、該利
用者の選択にしたがって、前記共通ブロックの矛盾や不
正に対するリカバリ処理を行なうリカバリ処理手段とを
備え、前記リカバリ処理手段が、前記矛盾/不正判定手
段が共通ブロックに矛盾または不正があると判定した場
合に、該矛盾や不正が見つかった共通ブロック及び該矛
盾や不正に関する情報を出力する情報出力手段と、前記
共通ブロックの矛盾や不正がブロック名の記述ミスによ
るものである場合に、リカバリ処理を行なう共通ブロッ
ク名修正処理手段と、前記共通ブロック名修正処理手段
による処理の後に選択的に起動し、ブロック名の記述ミ
スがあった共通ブロックについて前記共通ブロック名修
正処理手段によってなされたリカバリ処理を反映させた
新たなオブジェクトモジュールを生成し、該生成したオ
ブジェクトモジュールを利用者が指定したファイルへ格
納するオブジェクトモジュール修正処理手段と、前記共
通ブロックの矛盾や不正が同一名の共通ブロックに対し
て異なる初期化要求を出したことによるものである場合
に、リカバリ処理を行なう初期化補正処理手段と、前記
共通ブロックの矛盾や不正が同一名の共通ブロックの属
性が異なることによるものである場合に、リカバリ処理
を行なう属性補正処理手段と、利用者からの入力にした
がって、前記共通ブロック名修正処理手段、オブジェク
トモジュール修正処理手段、初期化補正処理手段、及び
属性補正処理手段のうち何れによってリカバリ処理を行
なうかを選択するリカバリ処理選択手段とを備えること
を特徴とする。
【0010】他の態様では、前記共通ブロック名修正処
理手段が、共通ブロック名の修正の対象となる共通ブロ
ックを入力する修正共通ブロック入力手段と、前記修正
共通ブロック入力手段によって入力された修正対象の共
通ブロックに対する新しい共通ブロック名(新共通ブロ
ック名)を入力する新共通ブロック名入力手段と、前記
修正対象の共通ブロックの修正前の共通ブロック名(修
正共通ブロック名)と該共通ブロックに対する新共通ブ
ロック名とを一組にして内部テーブルにスタックするス
タック・テーブル生成手段と、修正対象となる共通ブロ
ックが他にもあるか否かを判定する修正共通ブロック選
択終了判定手段と、前記スタック・テーブル生成手段が
生成したスタック・テーブルを参照しながら修正対象の
共通ブロックの共通ブロック名に関する情報及び文字列
を修正する共通ブロック名情報/文字列修正手段とを備
える構成としている。
理手段が、共通ブロック名の修正の対象となる共通ブロ
ックを入力する修正共通ブロック入力手段と、前記修正
共通ブロック入力手段によって入力された修正対象の共
通ブロックに対する新しい共通ブロック名(新共通ブロ
ック名)を入力する新共通ブロック名入力手段と、前記
修正対象の共通ブロックの修正前の共通ブロック名(修
正共通ブロック名)と該共通ブロックに対する新共通ブ
ロック名とを一組にして内部テーブルにスタックするス
タック・テーブル生成手段と、修正対象となる共通ブロ
ックが他にもあるか否かを判定する修正共通ブロック選
択終了判定手段と、前記スタック・テーブル生成手段が
生成したスタック・テーブルを参照しながら修正対象の
共通ブロックの共通ブロック名に関する情報及び文字列
を修正する共通ブロック名情報/文字列修正手段とを備
える構成としている。
【0011】また、他の態様では、前記オブジェクトモ
ジュール修正処理手段が、前記共通ブロック名修正処理
手段によって共通ブロックの共通ブロック名を修正され
たオブジェクトモジュールが出力されるファイルを予め
指定する新オブジェクト出力ファイル名入力手段と、修
正対象となるオブジェクトモジュールをオブジェクトフ
ァイルから入力する修正オブジェクトモジュール入力手
段と、前記共通ブロック名修正処理手段による処理の結
果、同一オブジェクトモジュール内に同じ名前の共通ブ
ロックが混在することとなっていないかどうかを検査す
る共通ブロック名検査手段と、前記共通ブロック名検査
手段の検査結果により、同一オブジェクトモジュール内
に同じ名前の共通ブロックが混在する場合、該同一名の
共通ブロック同士の間に矛盾や不正があるか否かを検査
する矛盾検査手段と、前記矛盾検査手段の検査結果によ
り、同一名の共通ブロック同士の間に矛盾が見つかった
場合に、その旨を利用者に通知するエラー表示手段と、
前記共通ブロック名検査手段の検査結果により、同一オ
ブジェクトモジュール内に同じ名前の共通ブロックが混
在しない場合、前記修正オブジェクトモジュール入力手
段が入力したオブジェクトモジュールにおける修正対象
となる共通ブロックの共通ブロック名に関する情報及び
文字列を修正する共通ブロック名情報/文字列修正手段
と、前記共通ブロック名情報/文字列修正手段により共
通ブロック名に関して修正されたオブジェクトモジュー
ルを、前記新オブジェクト出力ファイル名入力手段によ
り予め指定されているファイルへ出力する新オブジェク
トモジュール出力手段と、修正対象となるオブジェクト
モジュールが他にも在るか否かを判定する修正オブジェ
クト終了判定手段とを備える構成としている。
ジュール修正処理手段が、前記共通ブロック名修正処理
手段によって共通ブロックの共通ブロック名を修正され
たオブジェクトモジュールが出力されるファイルを予め
指定する新オブジェクト出力ファイル名入力手段と、修
正対象となるオブジェクトモジュールをオブジェクトフ
ァイルから入力する修正オブジェクトモジュール入力手
段と、前記共通ブロック名修正処理手段による処理の結
果、同一オブジェクトモジュール内に同じ名前の共通ブ
ロックが混在することとなっていないかどうかを検査す
る共通ブロック名検査手段と、前記共通ブロック名検査
手段の検査結果により、同一オブジェクトモジュール内
に同じ名前の共通ブロックが混在する場合、該同一名の
共通ブロック同士の間に矛盾や不正があるか否かを検査
する矛盾検査手段と、前記矛盾検査手段の検査結果によ
り、同一名の共通ブロック同士の間に矛盾が見つかった
場合に、その旨を利用者に通知するエラー表示手段と、
前記共通ブロック名検査手段の検査結果により、同一オ
ブジェクトモジュール内に同じ名前の共通ブロックが混
在しない場合、前記修正オブジェクトモジュール入力手
段が入力したオブジェクトモジュールにおける修正対象
となる共通ブロックの共通ブロック名に関する情報及び
文字列を修正する共通ブロック名情報/文字列修正手段
と、前記共通ブロック名情報/文字列修正手段により共
通ブロック名に関して修正されたオブジェクトモジュー
ルを、前記新オブジェクト出力ファイル名入力手段によ
り予め指定されているファイルへ出力する新オブジェク
トモジュール出力手段と、修正対象となるオブジェクト
モジュールが他にも在るか否かを判定する修正オブジェ
クト終了判定手段とを備える構成としている。
【0012】また、他の態様では、前記初期化補正処理
手段が、修正対象となる初期化に矛盾のあった共通ブロ
ック(修正初期化共通ブロック)を入力する修正共通ブ
ロック入力手段と、前記修正共通ブロック入力手段によ
って入力された修正初期化共通ブロックと同一名で正し
く初期化されている共通ブロック(正初期化共通ブロッ
ク)を入力する初期化共通ブロック入力手段と、前記修
正初期化共通ブロックと同一名の正初期化共通ブロック
とを1組にして内部テーブルにスタックするスタック・
テーブル生成手段と、修正初期化共通ブロックが他にも
あるか否かを判定する修正初期化共通ブロック終了判定
手段と、前記スタック・テーブル生成手段が生成したス
タック・テーブルを参照しながら修正対象の共通ブロッ
クの初期化に関する情報を修正する共通ブロック初期化
情報修正手段とを備える構成としている。
手段が、修正対象となる初期化に矛盾のあった共通ブロ
ック(修正初期化共通ブロック)を入力する修正共通ブ
ロック入力手段と、前記修正共通ブロック入力手段によ
って入力された修正初期化共通ブロックと同一名で正し
く初期化されている共通ブロック(正初期化共通ブロッ
ク)を入力する初期化共通ブロック入力手段と、前記修
正初期化共通ブロックと同一名の正初期化共通ブロック
とを1組にして内部テーブルにスタックするスタック・
テーブル生成手段と、修正初期化共通ブロックが他にも
あるか否かを判定する修正初期化共通ブロック終了判定
手段と、前記スタック・テーブル生成手段が生成したス
タック・テーブルを参照しながら修正対象の共通ブロッ
クの初期化に関する情報を修正する共通ブロック初期化
情報修正手段とを備える構成としている。
【0013】また、他の態様では、前記属性補正処理手
段が、共通ブロック属性の修正の対象となる共通ブロッ
クを入力する修正共通ブロック入力手段と、前記修正共
通ブロック入力手段によって入力された修正対象の共通
ブロックに対する新しい属性(新共通ブロック属性)を
入力する新共通ブロック属性入力手段と、前記修正対象
の共通ブロックの修正前の共通ブロックの属性(修正共
通ブロック属性)と該共通ブロックに対する新共通ブロ
ック属性とを一組にして内部テーブルにスタックするス
タック・テーブル生成手段と、修正対象となる共通ブロ
ックが他にもあるか否かを判定する修正対象共通ブロッ
ク属性終了判定手段と、前記スタック・テーブル生成手
段が生成したスタック・テーブルを参照しながら修正対
象の共通ブロックの共通ブロック属性に関する情報を修
正する共通ブロック属性情報修正手段とを備える構成と
している。
段が、共通ブロック属性の修正の対象となる共通ブロッ
クを入力する修正共通ブロック入力手段と、前記修正共
通ブロック入力手段によって入力された修正対象の共通
ブロックに対する新しい属性(新共通ブロック属性)を
入力する新共通ブロック属性入力手段と、前記修正対象
の共通ブロックの修正前の共通ブロックの属性(修正共
通ブロック属性)と該共通ブロックに対する新共通ブロ
ック属性とを一組にして内部テーブルにスタックするス
タック・テーブル生成手段と、修正対象となる共通ブロ
ックが他にもあるか否かを判定する修正対象共通ブロッ
ク属性終了判定手段と、前記スタック・テーブル生成手
段が生成したスタック・テーブルを参照しながら修正対
象の共通ブロックの共通ブロック属性に関する情報を修
正する共通ブロック属性情報修正手段とを備える構成と
している。
【0014】
【0015】
【実施例】以下、本発明の実施例について図面を参照し
て説明する。図1は、本発明の一実施例に係るリンク処
理方式の構成を示すブロック図である。
て説明する。図1は、本発明の一実施例に係るリンク処
理方式の構成を示すブロック図である。
【0016】図示のように、本実施例のリンク処理方式
は、オブジェクトファイル21から複数のオブジェクト
モジュールを入力し、かかるオブジェクトモジュールを
結合させて1個のロードモジュールを生成し、ロードモ
ジュールファイル24に格納するリンカ10によって実
現される。
は、オブジェクトファイル21から複数のオブジェクト
モジュールを入力し、かかるオブジェクトモジュールを
結合させて1個のロードモジュールを生成し、ロードモ
ジュールファイル24に格納するリンカ10によって実
現される。
【0017】かかる機能を実現するリンカ10は、オブ
ジェクトファイル21からオブジェクトモジュールを入
力するオブジェクトモジュール入力手段11と、入力さ
れた外部名の参照と定義とを関連付けて解決を行う外部
名定義参照解決手段12と、外部名定義参照解決手段1
2において未解決として残った参照に対し、システム/
ユーザライブラリ内にその解決となる定義が存在するか
否かを検索するライブラリ検索手段13と、入力された
オブジェクトモジュールに含まれる共通ブロックに矛盾
や不正があるか否かを判定する矛盾/不正判定手段14
と、共通ブロックに何等かの矛盾や不正があった場合に
リカバリ処理を行なうかどうかを確認するリンカオプシ
ョン有無判定手段15と、共通ブロックの矛盾や不正に
対するリカバリ処理を行なうリカバリ処理手段16と、
共通ブロックのリンク処理を行う共通ブロックリンク手
段17と、共通ブロックリンク手段の処理結果を用いて
ロードモジュールを生成するロードモジュール生成手段
18とを備える。
ジェクトファイル21からオブジェクトモジュールを入
力するオブジェクトモジュール入力手段11と、入力さ
れた外部名の参照と定義とを関連付けて解決を行う外部
名定義参照解決手段12と、外部名定義参照解決手段1
2において未解決として残った参照に対し、システム/
ユーザライブラリ内にその解決となる定義が存在するか
否かを検索するライブラリ検索手段13と、入力された
オブジェクトモジュールに含まれる共通ブロックに矛盾
や不正があるか否かを判定する矛盾/不正判定手段14
と、共通ブロックに何等かの矛盾や不正があった場合に
リカバリ処理を行なうかどうかを確認するリンカオプシ
ョン有無判定手段15と、共通ブロックの矛盾や不正に
対するリカバリ処理を行なうリカバリ処理手段16と、
共通ブロックのリンク処理を行う共通ブロックリンク手
段17と、共通ブロックリンク手段の処理結果を用いて
ロードモジュールを生成するロードモジュール生成手段
18とを備える。
【0018】オブジェクトモジュール入力手段11、外
部名定義参照解決手段12、及びライブラリ検索手段1
3は、従来のリンカにおける同種の機能と何等変わるも
のではない。
部名定義参照解決手段12、及びライブラリ検索手段1
3は、従来のリンカにおける同種の機能と何等変わるも
のではない。
【0019】矛盾/不正判定手段14は、入力されたオ
ブジェクトモジュールに含まれる共通ブロックの中で、
同一名の共通ブロック同士の間に、矛盾や不正があるか
否かを判定する。そして、矛盾や不正がないときは、当
該共通ブロックを共通ブロックリンク手段17に渡す。
一方、同一名の共通ブロック間に矛盾や不正があったと
きは、リンカオプション有無判定手段15による処理に
移る。
ブジェクトモジュールに含まれる共通ブロックの中で、
同一名の共通ブロック同士の間に、矛盾や不正があるか
否かを判定する。そして、矛盾や不正がないときは、当
該共通ブロックを共通ブロックリンク手段17に渡す。
一方、同一名の共通ブロック間に矛盾や不正があったと
きは、リンカオプション有無判定手段15による処理に
移る。
【0020】リンカオプション有無判定手段15は、共
通ブロックの矛盾や不正に対するリカバリ処理を行なう
ことを指示するリンカオプションが指定されているかど
うか判定する。そして、リンカオプションが指定されて
いれば、矛盾や不正のあった共通ブロックをリカバリ処
理手段16に渡す。一方、リンカオプションが指定され
ていないときは、共通ブロックを共通ブロックリンク手
段17に渡す。なお、リンカオプション有無判定手段1
5は、必須の構成要素ではなく、同一名の共通ブロック
間に矛盾や不正があったときは必ずリカバリ処理手段1
6によるリカバリ処理を行なうようにしても良い。
通ブロックの矛盾や不正に対するリカバリ処理を行なう
ことを指示するリンカオプションが指定されているかど
うか判定する。そして、リンカオプションが指定されて
いれば、矛盾や不正のあった共通ブロックをリカバリ処
理手段16に渡す。一方、リンカオプションが指定され
ていないときは、共通ブロックを共通ブロックリンク手
段17に渡す。なお、リンカオプション有無判定手段1
5は、必須の構成要素ではなく、同一名の共通ブロック
間に矛盾や不正があったときは必ずリカバリ処理手段1
6によるリカバリ処理を行なうようにしても良い。
【0021】リカバリ処理手段16の構成を図2に示
す。図示のように、リカバリ処理手段16は、矛盾や不
正があった共通ブロック及び当該矛盾や不正に関する情
報の一覧を出力する情報一覧表示手段19と、利用者か
らの入力にしたがってリカバリ処理の内容を選択するリ
カバリ処理選択手段20と、共通ブロックの矛盾や不正
がブロック名の記述ミスによるものである場合にリカバ
リ処理を行なう共通ブロック名修正処理手段30と、共
通ブロック名修正処理手段30による処理の後、当該処
理で修正された共通ブロック名を反映させてオブジェク
トモジュールを修正するオブジェクトモジュール修正処
理手段40と、共通ブロックの矛盾や不正が同一名の共
通ブロックに対して異なる初期化要求を出したことによ
るものである場合にリカバリ処理を行なう初期化補正処
理手段50と、共通ブロックの矛盾や不正が同一名の共
通ブロックの属性が異なることによるものである場合に
リカバリ処理を行なう属性補正処理手段60とを備え
る。
す。図示のように、リカバリ処理手段16は、矛盾や不
正があった共通ブロック及び当該矛盾や不正に関する情
報の一覧を出力する情報一覧表示手段19と、利用者か
らの入力にしたがってリカバリ処理の内容を選択するリ
カバリ処理選択手段20と、共通ブロックの矛盾や不正
がブロック名の記述ミスによるものである場合にリカバ
リ処理を行なう共通ブロック名修正処理手段30と、共
通ブロック名修正処理手段30による処理の後、当該処
理で修正された共通ブロック名を反映させてオブジェク
トモジュールを修正するオブジェクトモジュール修正処
理手段40と、共通ブロックの矛盾や不正が同一名の共
通ブロックに対して異なる初期化要求を出したことによ
るものである場合にリカバリ処理を行なう初期化補正処
理手段50と、共通ブロックの矛盾や不正が同一名の共
通ブロックの属性が異なることによるものである場合に
リカバリ処理を行なう属性補正処理手段60とを備え
る。
【0022】情報一覧表示手段19とリカバリ処理選択
手段20とは、利用者の端末装置に接続している。そし
て、情報一覧表示手段19は、共通ブロック及び矛盾や
不正に関する情報の一覧を出力し、利用者が、当該矛盾
や不正が利用者のミスによるものかどうか判断し、適切
なリカバリ処理を決定する上で参照できるように端末装
置の表示装置に表示する。
手段20とは、利用者の端末装置に接続している。そし
て、情報一覧表示手段19は、共通ブロック及び矛盾や
不正に関する情報の一覧を出力し、利用者が、当該矛盾
や不正が利用者のミスによるものかどうか判断し、適切
なリカバリ処理を決定する上で参照できるように端末装
置の表示装置に表示する。
【0023】また、リカバリ処理選択手段20は、利用
者が、決定したリカバリ処理を行なうべく端末装置の入
力装置から入力した指示にしたがってリカバリ処理を選
択し、起動させる。これによって、利用者は、共通ブロ
ック間にある矛盾や不正の原因に応じて、共通ブロック
名修正処理手段30、共通ブロック名修正処理手段30
とオブジェクトモジュール修正処理手段40との組み合
わせ、初期化補正処理手段50、及び属性補正処理手段
60のうちから適切なリカバリ処理を選択して行なうこ
とができる。なお、利用者は、共通ブロックの矛盾や不
正の内容によっては、何等のリカバリ処理も行なわない
ことを選択することもできる。
者が、決定したリカバリ処理を行なうべく端末装置の入
力装置から入力した指示にしたがってリカバリ処理を選
択し、起動させる。これによって、利用者は、共通ブロ
ック間にある矛盾や不正の原因に応じて、共通ブロック
名修正処理手段30、共通ブロック名修正処理手段30
とオブジェクトモジュール修正処理手段40との組み合
わせ、初期化補正処理手段50、及び属性補正処理手段
60のうちから適切なリカバリ処理を選択して行なうこ
とができる。なお、利用者は、共通ブロックの矛盾や不
正の内容によっては、何等のリカバリ処理も行なわない
ことを選択することもできる。
【0024】共通ブロック名修正処理手段30の構成を
図3に示す。図示のように、共通ブロック名修正処理手
段30は、修正の対象となる共通ブロックを入力する修
正共通ブロック入力手段31と、入力された修正対象の
共通ブロックに対する新しい共通ブロック名(新共通ブ
ロック名)を入力する新共通ブロック名入力手段32
と、修正対象の共通ブロックの修正前の共通ブロック名
(修正共通ブロック名)と当該共通ブロックに対する新
共通ブロック名とを一組にして内部テーブルにスタック
するスタック・テーブル生成手段33と、修正対象とな
る共通ブロックが他にもあるか否かを判定する修正共通
ブロック選択終了判定手段34と、スタック・テーブル
生成手段33が生成したスタック・テーブルを参照しな
がら修正対象の共通ブロックの共通ブロック名に関する
情報及び文字列を修正する共通ブロック名情報/文字列
修正手段35とを備える。
図3に示す。図示のように、共通ブロック名修正処理手
段30は、修正の対象となる共通ブロックを入力する修
正共通ブロック入力手段31と、入力された修正対象の
共通ブロックに対する新しい共通ブロック名(新共通ブ
ロック名)を入力する新共通ブロック名入力手段32
と、修正対象の共通ブロックの修正前の共通ブロック名
(修正共通ブロック名)と当該共通ブロックに対する新
共通ブロック名とを一組にして内部テーブルにスタック
するスタック・テーブル生成手段33と、修正対象とな
る共通ブロックが他にもあるか否かを判定する修正共通
ブロック選択終了判定手段34と、スタック・テーブル
生成手段33が生成したスタック・テーブルを参照しな
がら修正対象の共通ブロックの共通ブロック名に関する
情報及び文字列を修正する共通ブロック名情報/文字列
修正手段35とを備える。
【0025】オブジェクトモジュール修正処理手段40
の構成を図4に示す。本処理手段40は、共通ブロック
名修正処理手段30と対になっており、共通ブロック名
処理手段30による処理がされた直後に起動する。本処
理手段40による処理の要求は、リカバリ処理選択手段
20におけるリカバリ処理の選択において、利用者が共
通ブロック名修正処理手段30と共に本処理手段40を
選択することによって行なう。
の構成を図4に示す。本処理手段40は、共通ブロック
名修正処理手段30と対になっており、共通ブロック名
処理手段30による処理がされた直後に起動する。本処
理手段40による処理の要求は、リカバリ処理選択手段
20におけるリカバリ処理の選択において、利用者が共
通ブロック名修正処理手段30と共に本処理手段40を
選択することによって行なう。
【0026】図示のように、オブジェクトモジュール修
正処理手段40は、共通ブロックの共通ブロック名を修
正されたオブジェクトモジュールが出力されるファイル
を修正オブジェクト保管ファイル23として予め指定す
る新オブジェクト出力ファイル名入力手段41と、修正
対象となるオブジェクトモジュールをオブジェクトファ
イル21から入力する修正オブジェクトモジュール入力
手段42と、共通ブロック名修正処理手段30による処
理の結果、同一オブジェクトモジュール内に同じ名前の
共通ブロックが混在することとなっていないかどうかを
検査する共通ブロック名検査手段43と、同一オブジェ
クトモジュール内に同じ名前の共通ブロックが混在する
場合、当該同一名の共通ブロック同士の間に矛盾や不正
があるか否かを検査する矛盾検査手段44と、同一名の
共通ブロック同士の間に矛盾が見つかった場合に、その
旨を利用者に通知するエラー表示手段45と、同一オブ
ジェクトモジュール内に同じ名前の共通ブロックが混在
しない場合、修正オブジェクトモジュール入力手段42
が入力したオブジェクトモジュールにおける修正対象と
なる共通ブロックの共通ブロック名に関する情報及び文
字列を修正する共通ブロック名情報/文字列修正手段4
6と、共通ブロック名に関して修正されたオブジェクト
モジュールを新オブジェクト出力ファイル名入力手段4
1により指定されている修正オブジェクト保管ファイル
23へ出力する新オブジェクトモジュール出力手段47
と、修正対象となるオブジェクトモジュールが他にも在
るか否かを判定する修正オブジェクト終了判定手段48
とを備える。
正処理手段40は、共通ブロックの共通ブロック名を修
正されたオブジェクトモジュールが出力されるファイル
を修正オブジェクト保管ファイル23として予め指定す
る新オブジェクト出力ファイル名入力手段41と、修正
対象となるオブジェクトモジュールをオブジェクトファ
イル21から入力する修正オブジェクトモジュール入力
手段42と、共通ブロック名修正処理手段30による処
理の結果、同一オブジェクトモジュール内に同じ名前の
共通ブロックが混在することとなっていないかどうかを
検査する共通ブロック名検査手段43と、同一オブジェ
クトモジュール内に同じ名前の共通ブロックが混在する
場合、当該同一名の共通ブロック同士の間に矛盾や不正
があるか否かを検査する矛盾検査手段44と、同一名の
共通ブロック同士の間に矛盾が見つかった場合に、その
旨を利用者に通知するエラー表示手段45と、同一オブ
ジェクトモジュール内に同じ名前の共通ブロックが混在
しない場合、修正オブジェクトモジュール入力手段42
が入力したオブジェクトモジュールにおける修正対象と
なる共通ブロックの共通ブロック名に関する情報及び文
字列を修正する共通ブロック名情報/文字列修正手段4
6と、共通ブロック名に関して修正されたオブジェクト
モジュールを新オブジェクト出力ファイル名入力手段4
1により指定されている修正オブジェクト保管ファイル
23へ出力する新オブジェクトモジュール出力手段47
と、修正対象となるオブジェクトモジュールが他にも在
るか否かを判定する修正オブジェクト終了判定手段48
とを備える。
【0027】初期化補正処理手段50の構成を図5に示
す。図示のように、初期化補正処理手段50は、修正対
象となる共通ブロック(修正初期化共通ブロック)を入
力する修正共通ブロック入力手段51と、入力された修
正初期化共通ブロックと同一名で正しく初期化されてい
る共通ブロック(正初期化共通ブロック)を入力する初
期化共通ブロック入力手段52と、修正初期化共通ブロ
ックと同一名の正初期化共通ブロックとを1組にして内
部テーブルにスタックするスタック・テーブル生成手段
53と、修正初期化共通ブロックが他にもあるか否かを
判定する修正初期化共通ブロック終了判定手段54と、
スタック・テーブル生成手段53が生成したスタック・
テーブルを参照しながら修正対象の共通ブロックの初期
化に関する情報を修正する共通ブロック初期化情報修正
手段55とを備える。
す。図示のように、初期化補正処理手段50は、修正対
象となる共通ブロック(修正初期化共通ブロック)を入
力する修正共通ブロック入力手段51と、入力された修
正初期化共通ブロックと同一名で正しく初期化されてい
る共通ブロック(正初期化共通ブロック)を入力する初
期化共通ブロック入力手段52と、修正初期化共通ブロ
ックと同一名の正初期化共通ブロックとを1組にして内
部テーブルにスタックするスタック・テーブル生成手段
53と、修正初期化共通ブロックが他にもあるか否かを
判定する修正初期化共通ブロック終了判定手段54と、
スタック・テーブル生成手段53が生成したスタック・
テーブルを参照しながら修正対象の共通ブロックの初期
化に関する情報を修正する共通ブロック初期化情報修正
手段55とを備える。
【0028】属性補正処理手段60の構成を図6に示
す。図示のように、属性補正処理手段60は、修正の対
象となる共通ブロックを入力する修正共通ブロック入力
手段61と、入力された修正対象の共通ブロックに対す
る新しい属性(新共通ブロック属性)を入力する新共通
ブロック属性入力手段62と、修正対象の共通ブロック
の修正前の共通ブロックの属性(修正共通ブロック属
性)と該共通ブロックに対する新共通ブロック属性とを
一組にして内部テーブルにスタックするスタック・テー
ブル生成手段63と、修正対象となる共通ブロックが他
にもあるか否かを判定する修正対象共通ブロック属性終
了判定手段64と、スタック・テーブル生成手段63が
生成したスタック・テーブルを参照しながら修正対象の
共通ブロックの共通ブロック属性に関する情報を修正す
る共通ブロック属性情報修正手段65とを備える。
す。図示のように、属性補正処理手段60は、修正の対
象となる共通ブロックを入力する修正共通ブロック入力
手段61と、入力された修正対象の共通ブロックに対す
る新しい属性(新共通ブロック属性)を入力する新共通
ブロック属性入力手段62と、修正対象の共通ブロック
の修正前の共通ブロックの属性(修正共通ブロック属
性)と該共通ブロックに対する新共通ブロック属性とを
一組にして内部テーブルにスタックするスタック・テー
ブル生成手段63と、修正対象となる共通ブロックが他
にもあるか否かを判定する修正対象共通ブロック属性終
了判定手段64と、スタック・テーブル生成手段63が
生成したスタック・テーブルを参照しながら修正対象の
共通ブロックの共通ブロック属性に関する情報を修正す
る共通ブロック属性情報修正手段65とを備える。
【0029】共通ブロックリンク手段17は、矛盾/不
正判定手段14から受け取った共通ブロック、リンカオ
プションの指定がなかったためにリンカオプション有無
判定手段15から受け取った共通ブロック、及びリカバ
リ処理手段16から受け取った所定の修正がなされた共
通ブロックのリンク処理を行なう。このとき、リンク処
理によって何等かの矛盾や不正が発生した場合には、再
びリンカオプション有無判定手段15の処理から繰り返
す。
正判定手段14から受け取った共通ブロック、リンカオ
プションの指定がなかったためにリンカオプション有無
判定手段15から受け取った共通ブロック、及びリカバ
リ処理手段16から受け取った所定の修正がなされた共
通ブロックのリンク処理を行なう。このとき、リンク処
理によって何等かの矛盾や不正が発生した場合には、再
びリンカオプション有無判定手段15の処理から繰り返
す。
【0030】ロードモジュール生成手段18は、共通ブ
ロックリンク手段17の処理結果を用いて一個のロード
モジュールを生成し、ロードモジュールファイル24に
格納する。
ロックリンク手段17の処理結果を用いて一個のロード
モジュールを生成し、ロードモジュールファイル24に
格納する。
【0031】次に、本実施例の動作を図7及び図8に示
すフローチャートを参照して説明する。本実施例におけ
るリンカ10は、コンパイラがオブジェクトモジュール
を出力してオブジェクトファイル21に格納すると、オ
ブジェクトモジュール入力手段11によって、オブジェ
クトファイル21から格納されているオブジェクトモジ
ュールを入力する(ステップ701)。
すフローチャートを参照して説明する。本実施例におけ
るリンカ10は、コンパイラがオブジェクトモジュール
を出力してオブジェクトファイル21に格納すると、オ
ブジェクトモジュール入力手段11によって、オブジェ
クトファイル21から格納されているオブジェクトモジ
ュールを入力する(ステップ701)。
【0032】次に、外部名定義参照解決手段12によ
り、外部名の参照と定義の解決処理を行なう(ステップ
702)。ここで、未解決の参照が発生したときは、ラ
イブラリ検索手段13によって、システム/ユーザライ
ブラリ22を参照し(ステップ704)、外部名の解決
を行なう(ステップ705)。
り、外部名の参照と定義の解決処理を行なう(ステップ
702)。ここで、未解決の参照が発生したときは、ラ
イブラリ検索手段13によって、システム/ユーザライ
ブラリ22を参照し(ステップ704)、外部名の解決
を行なう(ステップ705)。
【0033】次に、矛盾/不正判定手段14によって、
同一名の共通ブロックに矛盾や不正があるか否か判定
し、なければ共通ブロックリンク手段17による処理に
移り、何等かの矛盾または不正があればリンカオプショ
ン有無判定手段15による処理に移る(ステップ70
6)。
同一名の共通ブロックに矛盾や不正があるか否か判定
し、なければ共通ブロックリンク手段17による処理に
移り、何等かの矛盾または不正があればリンカオプショ
ン有無判定手段15による処理に移る(ステップ70
6)。
【0034】次に、リンカオプション有無判定手段15
によって、リンカオプションの指定有無を判定し、指定
がなければ共通ブロックリンク処理手段17による処理
に移り、指定があればリカバリ処理手段16によるリカ
バリ処理に移る(ステップ707)。
によって、リンカオプションの指定有無を判定し、指定
がなければ共通ブロックリンク処理手段17による処理
に移り、指定があればリカバリ処理手段16によるリカ
バリ処理に移る(ステップ707)。
【0035】リカバリ処理手段16に処理が移ると、ま
ず情報一覧表示手段19によって、矛盾や不正のあった
共通ブロックに関する情報一覧を出力し、利用者の端末
装置の表示画面に表示する(ステップ708)。利用者
は、表示された情報一覧を参照して共通ブロックの矛盾
や不正の原因を検討し、かかる矛盾や不正の原因が利用
者のミスでなければ、共通ブロックリンク手段17によ
る処理に移る。矛盾や不正の原因が利用者のミスである
ときは、引き続いてリカバリ処理の選択を行なう(ステ
ップ709、710)。
ず情報一覧表示手段19によって、矛盾や不正のあった
共通ブロックに関する情報一覧を出力し、利用者の端末
装置の表示画面に表示する(ステップ708)。利用者
は、表示された情報一覧を参照して共通ブロックの矛盾
や不正の原因を検討し、かかる矛盾や不正の原因が利用
者のミスでなければ、共通ブロックリンク手段17によ
る処理に移る。矛盾や不正の原因が利用者のミスである
ときは、引き続いてリカバリ処理の選択を行なう(ステ
ップ709、710)。
【0036】そして、利用者の選択にしたがって、各リ
カバリ処理の中から、共通ブロック名修正処理(ステッ
プ711)、共通ブロック名修正処理及びオブジェクト
モジュール修正処理(ステップ712、713)、初期
化補正処理(ステップ714)、属性補正処理(ステッ
プ715)の何れかの処理を行なう。各処理の内容につ
いては後述する。
カバリ処理の中から、共通ブロック名修正処理(ステッ
プ711)、共通ブロック名修正処理及びオブジェクト
モジュール修正処理(ステップ712、713)、初期
化補正処理(ステップ714)、属性補正処理(ステッ
プ715)の何れかの処理を行なう。各処理の内容につ
いては後述する。
【0037】この後、共通ブロックリンク手段17によ
って、必要に応じてリカバリ処理の施された共通ブロッ
クのリンク処理を行なう(ステップ716)。そして、
このリンク処理の結果を用いて、ロードモジュール生成
手段18によって、一個のロードモジュールを生成し、
ロードモジュールファイル24に格納する(ステップ7
17)。
って、必要に応じてリカバリ処理の施された共通ブロッ
クのリンク処理を行なう(ステップ716)。そして、
このリンク処理の結果を用いて、ロードモジュール生成
手段18によって、一個のロードモジュールを生成し、
ロードモジュールファイル24に格納する(ステップ7
17)。
【0038】次に、上述したリカバリ処理の中の共通ブ
ロック名修正処理について、図9に示すフローチャート
を参照して説明する。共通ブロック名修正処理手段30
による処理が選択されると、まず、利用者が修正対象と
なる共通ブロックを選択し、修正共通ブロック入力手段
31によって該当する共通ブロックを入力する(ステッ
プ901)。また、利用者は、当該共通ブロックの正し
い共通ブロック名を決定して、新共通ブロック入力手段
22によって入力する(ステップ902)。この共通ブ
ロック名が新共通ブロック名である。
ロック名修正処理について、図9に示すフローチャート
を参照して説明する。共通ブロック名修正処理手段30
による処理が選択されると、まず、利用者が修正対象と
なる共通ブロックを選択し、修正共通ブロック入力手段
31によって該当する共通ブロックを入力する(ステッ
プ901)。また、利用者は、当該共通ブロックの正し
い共通ブロック名を決定して、新共通ブロック入力手段
22によって入力する(ステップ902)。この共通ブ
ロック名が新共通ブロック名である。
【0039】次に、スタックテーブル生成手段33によ
って、修正対象である当該共通ブロックの修正共通ブロ
ック名と新共通ブロック名とを組にしてスタックテーブ
ルへ追加する(ステップ903)。
って、修正対象である当該共通ブロックの修正共通ブロ
ック名と新共通ブロック名とを組にしてスタックテーブ
ルへ追加する(ステップ903)。
【0040】そして、修正を要する全ての共通ブロック
名について、修正共通ブロック名と新共通ブロック名と
の組をスタックテーブルへ追加した後、共通ブロック名
情報/文字列修正手段35によって、当該共通ブロック
名についての情報と文字列とを修正する(ステップ90
4、905)。
名について、修正共通ブロック名と新共通ブロック名と
の組をスタックテーブルへ追加した後、共通ブロック名
情報/文字列修正手段35によって、当該共通ブロック
名についての情報と文字列とを修正する(ステップ90
4、905)。
【0041】次に、オブジェクトモジュール修正処理に
ついて、図10に示すフローチャートを参照して説明す
る。本処理は、利用者が、リカバリ処理選択手段15に
おいて、共通オブジェクト名修正処理と共に選択してい
た場合に、同処理の終了後に開始する。
ついて、図10に示すフローチャートを参照して説明す
る。本処理は、利用者が、リカバリ処理選択手段15に
おいて、共通オブジェクト名修正処理と共に選択してい
た場合に、同処理の終了後に開始する。
【0042】オブジェクトモジュール修正処理手段40
の処理に移ると、まず、利用者が本処理によって修正さ
れたオブジェクトモジュールを格納する修正オブジェク
ト保管ファイル23のファイル名を決定し、新オブジェ
クト出力ファイル名入力手段によって入力する(ステッ
プ1001)。
の処理に移ると、まず、利用者が本処理によって修正さ
れたオブジェクトモジュールを格納する修正オブジェク
ト保管ファイル23のファイル名を決定し、新オブジェ
クト出力ファイル名入力手段によって入力する(ステッ
プ1001)。
【0043】そして、修正オブジェクトモジュール入力
手段42によって、オブジェクトファイル21から修正
対象となるオブジェクトモジュールを入力する(ステッ
プ1001)。
手段42によって、オブジェクトファイル21から修正
対象となるオブジェクトモジュールを入力する(ステッ
プ1001)。
【0044】次に、共通ブロック名検査手段43によっ
て、共通ブロック名修正処理によって修正した共通ブロ
ック名と同一名の共通ブロックがオブジェクトモジュー
ル中に存在するか否か検査する(ステップ1003)。
同一名の共通ブロックが存在しないときは、共通ブロッ
ク名情報/文字列修正手段46による処理に移る。
て、共通ブロック名修正処理によって修正した共通ブロ
ック名と同一名の共通ブロックがオブジェクトモジュー
ル中に存在するか否か検査する(ステップ1003)。
同一名の共通ブロックが存在しないときは、共通ブロッ
ク名情報/文字列修正手段46による処理に移る。
【0045】一方、同一名の共通ブロックが存在すると
きは、矛盾検査手段44によって当該共通ブロック間に
矛盾があるか否か検査する(ステップ1004)。そし
て、何等矛盾がなければ、共通ブロック名情報/文字列
修正手段46による処理に移り、矛盾が見つかったとき
は、エラー表示手段45によって利用者の端末装置の表
示画面にエラーを表示して修正オブジェクト終了判定手
段48による処理に移る(ステップ1005)。
きは、矛盾検査手段44によって当該共通ブロック間に
矛盾があるか否か検査する(ステップ1004)。そし
て、何等矛盾がなければ、共通ブロック名情報/文字列
修正手段46による処理に移り、矛盾が見つかったとき
は、エラー表示手段45によって利用者の端末装置の表
示画面にエラーを表示して修正オブジェクト終了判定手
段48による処理に移る(ステップ1005)。
【0046】次に、共通ブロック名情報/文字列修正手
段46によって、修正オブジェクトモジュール入力手段
42によって入力したオブジェクトモジュールにおける
共通ブロック名の情報と文字列を修正する(ステップ1
006)。これによって、共通ブロック名修正処理の結
果が、その共通ブロックを含むオブジェクトモジュール
に反映されることとなる。
段46によって、修正オブジェクトモジュール入力手段
42によって入力したオブジェクトモジュールにおける
共通ブロック名の情報と文字列を修正する(ステップ1
006)。これによって、共通ブロック名修正処理の結
果が、その共通ブロックを含むオブジェクトモジュール
に反映されることとなる。
【0047】次に、このようにして修正されたオブジェ
クトモジュールを、新オブジェクトモジュール出力手段
47によって修正オブジェクト保管ファイル23に格納
する(ステップ1007)。修正オブジェクト保管ファ
イル23は、この後オブジェクトファイル21と同様に
扱われる。すなわち、他のリンク処理において、オブジ
ェクトモジュールを入力するためのアクセス先の一つと
なる。
クトモジュールを、新オブジェクトモジュール出力手段
47によって修正オブジェクト保管ファイル23に格納
する(ステップ1007)。修正オブジェクト保管ファ
イル23は、この後オブジェクトファイル21と同様に
扱われる。すなわち、他のリンク処理において、オブジ
ェクトモジュールを入力するためのアクセス先の一つと
なる。
【0048】以上の処理を修正対象となるオブジェクト
モジュールがなくなるまで繰り返す(ステップ100
9)。このオブジェクトモジュール修正処理は、リカバ
リ処理を行なう上で必ずしも必須ではなく、共通ブロッ
ク名修正処理の後に本処理を行なわなくてもロードモジ
ュールを生成することはできる。しかし、本処理を行な
うことで、あたかも、従来ソースプログラムに遡って修
正を行なっていた場合と同様に、リカバリ処理の内容を
反映したオブジェクトモジュールを生成することがで
き、この後の他のリンク処理の際に同様のリカバリ処理
を行なうことを回避することができる。
モジュールがなくなるまで繰り返す(ステップ100
9)。このオブジェクトモジュール修正処理は、リカバ
リ処理を行なう上で必ずしも必須ではなく、共通ブロッ
ク名修正処理の後に本処理を行なわなくてもロードモジ
ュールを生成することはできる。しかし、本処理を行な
うことで、あたかも、従来ソースプログラムに遡って修
正を行なっていた場合と同様に、リカバリ処理の内容を
反映したオブジェクトモジュールを生成することがで
き、この後の他のリンク処理の際に同様のリカバリ処理
を行なうことを回避することができる。
【0049】次に、初期化補正処理について、図11に
示すフローチャートを参照して説明する。初期化補正処
理手段50による処理が選択されると、まず、利用者が
修正対象となる共通ブロックを選択し、修正共通ブロッ
ク入力手段51によって該当する共通ブロックを入力す
る(ステップ1101)。この共通ブロックが修正初期
化共通ブロックである。また、利用者は、修正共通ブロ
ック入力手段によって入力された修正初期化共通ブロッ
クと同一名で正しく初期化されている共通ブロックを選
択し、初期化共通ブロック入力手段22によって入力す
る(ステップ1102)。この共通ブロックが正初期化
共通ブロックである。
示すフローチャートを参照して説明する。初期化補正処
理手段50による処理が選択されると、まず、利用者が
修正対象となる共通ブロックを選択し、修正共通ブロッ
ク入力手段51によって該当する共通ブロックを入力す
る(ステップ1101)。この共通ブロックが修正初期
化共通ブロックである。また、利用者は、修正共通ブロ
ック入力手段によって入力された修正初期化共通ブロッ
クと同一名で正しく初期化されている共通ブロックを選
択し、初期化共通ブロック入力手段22によって入力す
る(ステップ1102)。この共通ブロックが正初期化
共通ブロックである。
【0050】次に、スタックテーブル生成手段53によ
って、修正初期化共通ブロックと正初期化共通ブロック
とを組にしてスタックテーブルへ追加する(ステップ1
103)。
って、修正初期化共通ブロックと正初期化共通ブロック
とを組にしてスタックテーブルへ追加する(ステップ1
103)。
【0051】そして、修正を要する全ての共通ブロック
について、修正初期化共通ブロックと正初期化共通ブロ
ック名との組をスタックテーブルへ追加した後、共通ブ
ロック初期化情報修正手段55によって、当該共通ブロ
ックについての初期化情報を修正する(ステップ110
4、1105)。
について、修正初期化共通ブロックと正初期化共通ブロ
ック名との組をスタックテーブルへ追加した後、共通ブ
ロック初期化情報修正手段55によって、当該共通ブロ
ックについての初期化情報を修正する(ステップ110
4、1105)。
【0052】次に、属性補正処理について、図12に示
すフローチャートを参照して説明する。共通ブロック名
修正処理手段60による処理が選択されると、まず、利
用者が修正対象となる共通ブロックを選択し、修正共通
ブロック入力手段61によって該当する共通ブロックを
入力する(ステップ1201)。また、利用者は、当該
共通ブロックの正しい共通ブロックの属性を決定して、
新共通ブロック属性入力手段62によって入力する(ス
テップ1202)。この共通ブロック属性が新共通ブロ
ック属性である。
すフローチャートを参照して説明する。共通ブロック名
修正処理手段60による処理が選択されると、まず、利
用者が修正対象となる共通ブロックを選択し、修正共通
ブロック入力手段61によって該当する共通ブロックを
入力する(ステップ1201)。また、利用者は、当該
共通ブロックの正しい共通ブロックの属性を決定して、
新共通ブロック属性入力手段62によって入力する(ス
テップ1202)。この共通ブロック属性が新共通ブロ
ック属性である。
【0053】次に、スタックテーブル生成手段63によ
って、修正対象である当該共通ブロックの修正共通ブロ
ック属性と新共通ブロック属性名とを組にしてスタック
テーブルへ追加する(ステップ1203)。
って、修正対象である当該共通ブロックの修正共通ブロ
ック属性と新共通ブロック属性名とを組にしてスタック
テーブルへ追加する(ステップ1203)。
【0054】そして、修正を要する全ての共通ブロック
について、修正共通ブロック属性と新共通ブロック属性
との組をスタックテーブルへ追加した後、共通ブロック
属性情報修正手段65によって、当該共通ブロックの属
性についての情報を修正する(ステップ1204、12
05)。
について、修正共通ブロック属性と新共通ブロック属性
との組をスタックテーブルへ追加した後、共通ブロック
属性情報修正手段65によって、当該共通ブロックの属
性についての情報を修正する(ステップ1204、12
05)。
【0055】
【発明の効果】以上説明したように、本発明のリンク処
理方式は、共通ブロックの矛盾や不正に対して利用者の
意図が反映したリカバリ処理を行なうことを可能とした
ため、共通ブロックの矛盾や不正の内容に応じて適切な
リカバリ処理を選択して行なうことができるという効果
がある。
理方式は、共通ブロックの矛盾や不正に対して利用者の
意図が反映したリカバリ処理を行なうことを可能とした
ため、共通ブロックの矛盾や不正の内容に応じて適切な
リカバリ処理を選択して行なうことができるという効果
がある。
【0056】また、共通ブロックの矛盾や不正に対する
リカバリ処理の内容を反映させて当該共通ブロックを含
むオブジェクトモジュールを修正することとしたため、
共通ブロックの矛盾や不正が利用者のミスを原因とする
ものである場合、ソースプログラムにまで遡って修正す
る必要がなく、コンパイル処理やリンク処理をやり直す
手間を削減することができるという効果がある。
リカバリ処理の内容を反映させて当該共通ブロックを含
むオブジェクトモジュールを修正することとしたため、
共通ブロックの矛盾や不正が利用者のミスを原因とする
ものである場合、ソースプログラムにまで遡って修正す
る必要がなく、コンパイル処理やリンク処理をやり直す
手間を削減することができるという効果がある。
【図1】本発明の一実施例に係るリンク処理方式を示す
ブロック図である。
ブロック図である。
【図2】図1のリカバリ処理手段を示すプロック図であ
る。
る。
【図3】図2の共通ブロック名修正処理手段を示すプロ
ック図である。
ック図である。
【図4】図2のオブジェクトモジュール修正処理手段を
示すプロック図である。
示すプロック図である。
【図5】図2の初期化補正処理手段を示すプロック図で
ある。
ある。
【図6】図2の属性補正処理手段を示すプロック図であ
る。
る。
【図7】図1のリンク処理方式の動作を示すフローチャ
ートである。
ートである。
【図8】図1のリンク処理方式の動作を示すフローチャ
ートである。
ートである。
【図9】図3の共通ブロック名修正処理手段の動作を示
すフローチャートである。
すフローチャートである。
【図10】図4のオブジェクトモジュール修正処理手段
の動作を示すフローチャートである。
の動作を示すフローチャートである。
【図11】図5の初期化補正処理手段の動作を示すフロ
ーチャートである。
ーチャートである。
【図12】図6の属性補正処理手段の動作を示すフロー
チャートである。
チャートである。
10 リンカ 14 矛盾/不正判定手段 16 リカバリ処理手段 19 情報一覧表示手段(出力手段) 20 リカバリ処理選択手段 30 共通ブロック名修正処理手段 31 修正共通ブロック入力手段 32 新共通ブロック名入力手段 33 スタックテーブル生成手段 34 修正共通ブロック選択終了判定手段 35 共通ブロック名情報/文字列修正手段 40 オブジェクトモジュール修正処理手段 41 新オブジェクト出力ファイル名入力手段 42 修正オブジェクトモジュール入力手段 43 共通ブロック名検査手段 44 矛盾検査手段 45 エラー表示手段 46 共通ブロック名情報/文字列修正手段 47 新オブジェクトモジュール出力手段 48 修正オブジェクト終了判定手段 50 初期化補正処理手段 51 修正共通ブロック入力手段 52 初期化共通ブロックン入力手段 53 スタックテーブル生成手段 54 修正初期化共通ブロック終了判定手段 55 共通ブロック初期化情報修正手段 60 属性共通ブロック入力手段 61 修正共通ブロック入力手段 62 新共通ブロック属性入力手段 63 スタックテーブル生成手段 64 修正対象共通ブロック属性終了判定手段 65 共通ブロック属性情報修正手段
フロントページの続き (56)参考文献 特開 平4−242426(JP,A) 特開 平5−119977(JP,A) 特開 平7−13748(JP,A) 特開 平6−83593(JP,A) 特開 平4−317135(JP,A) 特開 平5−11983(JP,A) 特開 平5−282134(JP,A) 特開 平5−241798(JP,A) 特開 平4−312121(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/06 - 9/45
Claims (5)
- 【請求項1】 複数のオブジェクトモジュールを入力し
リンカによって結合させて1個のロードモジュールを生
成し、前記オブジェクトモジュールの結合の際に、前記
各オブジェクトモジュールに含まれる共通ブロックに関
し、各オブジェクトモジュールで定義されている同一名
の前記共通ブロックの間で矛盾や不正がないかをチェッ
クしてリンクするリンク処理方式において、 入力されたオブジェクトモジュールに含まれる共通ブロ
ックの中で、同一名の共通ブロック同士の間に矛盾や不
正があるか否かを判定する矛盾/不正判定手段と、 前記矛盾/不正判定手段が共通ブロックに矛盾または不
正があると判定した場合に、該矛盾や不正が見つかった
共通ブロック及び該矛盾や不正に関する情報を利用者に
通知し、該利用者の選択にしたがって、前記共通ブロッ
クの矛盾や不正に対するリカバリ処理を行なうリカバリ
処理手段とを備え、 前記リカバリ処理手段が、 前記矛盾/不正判定手段が共通ブロックに矛盾または不
正があると判定した場合に、該矛盾や不正が見つかった
共通ブロック及び該矛盾や不正に関する情報を出力する
情報出力手段と、 前記共通ブロックの矛盾や不正がブロック名の記述ミス
によるものである場合に、リカバリ処理を行なう共通ブ
ロック名修正処理手段と、 前記共通ブロック名修正処理手段による処理の後に選択
的に起動し、ブロック名の記述ミスがあった共通ブロッ
クについて前記共通ブロック名修正処理手段によってな
されたリカバリ処理を反映させた新たなオブジェクトモ
ジュールを生成し、該生成したオブジェクトモジュール
を利用者が指定したファイルへ格納するオブジェクトモ
ジュール修正処理手段と、 前記共通ブロックの矛盾や不正が同一名の共通ブロック
に対して異なる初期化要求を出したことによるものであ
る場合に、リカバリ処理を行なう初期化補正処理手段
と、 前記共通ブロックの矛盾や不正が同一名の共通ブロック
の属性が異なることによるものである場合に、リカバリ
処理を行なう属性補正処理手段と、 利用者からの入力にしたがって、前記共通ブロック名修
正処理手段、オブジェクトモジュール修正処理手段、初
期化補正処理手段、及び属性補正処理手段のうち何れに
よってリカバリ処理を行なうかを選択するリカバリ処理
選択手段と を備えることを特徴とするリンク処理方式。 - 【請求項2】 前記共通ブロック名修正処理手段が、 共通ブロック名の修正の対象となる共通ブロックを入力
する修正共通ブロック入力手段と、 前記修正共通ブロック入力手段によって入力された修正
対象の共通ブロックに対する新しい共通ブロック名(新
共通ブロック名)を入力する新共通ブロック名入力手段
と、 前記修正対象の共通ブロックの修正前の共通ブロック名
(修正共通ブロック名)と該共通ブロックに対する新共
通ブロック名とを一組にして内部テーブルにスタックす
るスタック・テーブル生成手段と、 修正対象となる共通ブロックが他にもあるか否かを判定
する修正共通ブロック選択終了判定手段と、 前記スタック・テーブル生成手段が生成したスタック・
テーブルを参照しながら修正対象の共通ブロックの共通
ブロック名に関する情報及び文字列を修正する共通ブロ
ック名情報/文字列修正手段とを備えることを特徴とす
る請求項1に記載のリンク処理方式。 - 【請求項3】 前記オブジェクトモジュール修正処理手
段が、 前記共通ブロック名修正処理手段によって共通ブロック
の共通ブロック名を修正されたオブジェクトモジュール
が出力されるファイルを予め指定する新オブジェクト出
力ファイル名入力手段と、 修正対象となるオブジェクトモジュールをオブジェクト
ファイルから入力する修正オブジェクトモジュール入力
手段と、 前記共通ブロック名修正処理手段による処理の結果、同
一オブジェクトモジュール内に同じ名前の共通ブロック
が混在することとなっていないかどうかを検査する共通
ブロック名検査手段と、 前記共通ブロック名検査手段の検査結果により、同一オ
ブジェクトモジュール 内に同じ名前の共通ブロックが混
在する場合、該同一名の共通ブロック同士の間に矛盾や
不正があるか否かを検査する矛盾検査手段と、 前記矛盾検査手段の検査結果により、同一名の共通ブロ
ック同士の間に矛盾が見つかった場合に、その旨を利用
者に通知するエラー表示手段と、 前記共通ブロック名検査手段の検査結果により、同一オ
ブジェクトモジュール内に同じ名前の共通ブロックが混
在しない場合、前記修正オブジェクトモジュール入力手
段が入力したオブジェクトモジュールにおける修正対象
となる共通ブロックの共通ブロック名に関する情報及び
文字列を修正する共通ブロック名情報/文字列修正手段
と、 前記共通ブロック名情報/文字列修正手段により共通ブ
ロック名に関して修正されたオブジェクトモジュール
を、前記新オブジェクト出力ファイル名入力手段により
予め指定されているファイルへ出力する新オブジェクト
モジュール出力手段と、 修正対象となるオブジェクトモジュールが他にも在るか
否かを判定する修正オブジェクト終了判定手段とを備え
ることを特徴とする請求項1に記載のリンク処理方式。 - 【請求項4】 前記初期化補正処理手段が、 修正対象となる初期化に矛盾のあった共通ブロック(修
正初期化共通ブロック)を入力する修正共通ブロック入
力手段と、 前記修正共通ブロック入力手段によって入力された修正
初期化共通ブロックと同一名で正しく初期化されている
共通ブロック(正初期化共通ブロック)を入力する初期
化共通ブロック入力手段と、 前記修正初期化共通ブロックと同一名の正初期化共通ブ
ロックとを1組にして内部テーブルにスタックするスタ
ック・テーブル生成手段と、 修正初期化共通ブロックが他にもあるか否かを判定する
修正初期化共通ブロック終了判定手段と、 前記スタック・テーブル生成手段が生成したスタック・
テーブルを参照しながら修正対象の共通ブロックの初期
化に関する情報を修正する共通ブロック初期化情報修正
手段とを備えることを特徴とする請求項1に記載のリン
ク処理方式。 - 【請求項5】 前記属性補正処理手段が、 共通ブロック属性の修正の対象となる共通ブロックを入
力する修正共通ブロック入力手段と、 前記修正共通ブロック入力手段によって入力された修正
対象の共通ブロックに対する新しい属性(新共通ブロッ
ク属性)を入力する新共通ブロック属性入力手段と、 前記修正対象の共通ブロックの修正前の共通ブロックの
属性(修正共通ブロック属性)と該共通ブロックに対す
る新共通ブロック属性とを一組にして内部テーブルにス
タックするスタック・テーブル生成手段と、 修正対象となる共通ブロックが他にもあるか否かを判定
する修正対象共通ブロック属性終了判定手段と、 前記スタック・テーブル生成手段が生成したスタック・
テーブルを参照しながら修正対象の共通ブロックの共通
ブロック属性に関する情報を修正する共通ブロック属性
情報修正手段とを備えることを特徴とする請求項1に記
載のリンク処理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03525794A JP3149422B2 (ja) | 1994-02-07 | 1994-02-07 | リンク処理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03525794A JP3149422B2 (ja) | 1994-02-07 | 1994-02-07 | リンク処理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07219751A JPH07219751A (ja) | 1995-08-18 |
JP3149422B2 true JP3149422B2 (ja) | 2001-03-26 |
Family
ID=12436769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03525794A Expired - Fee Related JP3149422B2 (ja) | 1994-02-07 | 1994-02-07 | リンク処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3149422B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101915268B1 (ko) * | 2017-08-01 | 2018-11-05 | 유온법 | 드렁허리의 보호와 성장장치 |
-
1994
- 1994-02-07 JP JP03525794A patent/JP3149422B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101915268B1 (ko) * | 2017-08-01 | 2018-11-05 | 유온법 | 드렁허리의 보호와 성장장치 |
Also Published As
Publication number | Publication date |
---|---|
JPH07219751A (ja) | 1995-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050235260A1 (en) | User interface application development device and development method | |
US20020059561A1 (en) | Software package verification | |
JP2001511557A (ja) | 2000年テストケースを生成するためのシステムおよび方法 | |
KR20190095099A (ko) | 거래 시스템 에러 검출 방법, 장치, 저장 매체 및 컴퓨터 장치 | |
JP3149422B2 (ja) | リンク処理方式 | |
JPH08212106A (ja) | システム試験支援装置及びシステム試験支援方法 | |
US20050289525A1 (en) | Extensible command line parsing | |
JP2003330710A (ja) | プログラム生成装置、及びプログラム生成方法、並びにプログラム生成用プログラム | |
CN114924978B (zh) | 基于人工智能的多分支增量检查方法及相关设备 | |
JP2009009212A (ja) | 仕様書作成支援装置および支援方法 | |
JPH05119896A (ja) | 文字列入力方式 | |
JPH1185536A (ja) | 原始プログラムのエラー自動修正装置及び方法 | |
JP3008807B2 (ja) | データ処理装置 | |
JPH03161844A (ja) | スペリング訂正方式 | |
JP2616451B2 (ja) | データチェック装置 | |
JP3037129B2 (ja) | コマンドデータベース作成装置 | |
CN116301897A (zh) | 一种通过vs2008一键验证demo与链接库的方法及系统 | |
JP3248433B2 (ja) | プログラムリンケージ検証方式 | |
JP2917870B2 (ja) | マシン構成決定支援システム | |
CN113778512A (zh) | 谈判数据处理方法及设备 | |
JP3063297B2 (ja) | 言語処理プログラム作成装置 | |
JP2003150763A (ja) | 会計処理方法、及びその方法を実施するためのプログラムを記憶した記録媒体 | |
CN112347176A (zh) | 基于人机交互行为的数据对接方法及装置 | |
JP3087699B2 (ja) | 定型情報簡易入力システム及び定型情報簡易入力方法 | |
JP2877879B2 (ja) | ソフト開発実行計画チエツクシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |