JPH04243424A - 動的リンク方式 - Google Patents

動的リンク方式

Info

Publication number
JPH04243424A
JPH04243424A JP1705191A JP1705191A JPH04243424A JP H04243424 A JPH04243424 A JP H04243424A JP 1705191 A JP1705191 A JP 1705191A JP 1705191 A JP1705191 A JP 1705191A JP H04243424 A JPH04243424 A JP H04243424A
Authority
JP
Japan
Prior art keywords
external reference
reference name
unresolved
module
name
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
JP1705191A
Other languages
English (en)
Inventor
Shukuyu Kudo
工藤 淑裕
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 JP1705191A priority Critical patent/JPH04243424A/ja
Publication of JPH04243424A publication Critical patent/JPH04243424A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラムのロードおよ
び実行を行うローダに関し、特に動的リンク時に外部参
照の変更を行う動的リンク方式に関する。
【0002】
【従来の技術】プログラムでは、動的リンク主プログラ
ムのロードモジュール(以下、MAIN−LMと略記す
る)中に未解決の外部参照を残しておき、プログラムの
実行時に例えばトランザクション処理プログラムである
未解決外部参照名のモジュールが必要になったときに、
そのモジュールの動的リンク要求を発生させ、ローダが
その未解決外部参照名でファイルを検索し、目的のモジ
ュールが発見できた場合には、そのモジュールをMAI
N−LMに動的にリンクし、プログラムの処理を行って
いる。
【0003】従来の動的リンク方式では、業務内容の変
更などによりモジュールの拡張または機能変更を行った
ために動的にリンクされるモジュールを変更したい場合
、MAIN−LM中の未解決外部参照名を変更しなくて
はならないため、MAIN−LMのソースプログラム中
の未解決外部参照名と同じ外部名を変更したいモジュー
ルの外部名にすべて書き換えて、そのソースプログラム
を再コンパイルおよび再リンクしてMAIN−LMを作
成し直していた。
【0004】また、MAIN−LMのソースプログラム
を作成する際に変更する可能性のある未解決外部参照名
をあらかじめ変数にしておき、プログラムの実行時にそ
の変数の値を変更したい外部名にして目的のモジュール
を動的にリンクさせていた。
【0005】
【発明が解決しようとする課題】上述した従来の動的リ
ンク方式では、業務内容の変更などによりモジュールの
拡張または機能変更を行ったために動的にリンクされる
モジュールを変更したい場合、MAIN−LM中の未解
決外部参照名を変更しなくてならなかったので、MAI
N−LMのソースプログラム中の未解決外部参照名と同
じ外部名を変更したいモジュールの外部名にすべて書き
換えて、そのソースプログラムを再コンパイルおよび再
リンクしてMAIN−LMを作成し直すか、MAIN−
LMのソースプログラムを作成する際に変更する可能性
のある未解決外部参照名をあらかじめ変数にしておき、
プログラムの実行時にその変数の値を変更したい外部名
にして目的のモジュールを動的にリンクさせなければな
らず、動的リンクの対象となるモジュールの変更が面倒
であるという欠点がある。
【0006】本発明の目的は、上述の点に鑑み、MAI
N−LMを作成し直したり、プログラムの実行時に未解
決外部参照名に対応する変数の値を変更したりすること
なしに、きわめて容易にMAIN−LMに目的のモジュ
ールを動的にリンクさせることができるようにした動的
リンク方式を提供することにある。
【0007】
【課題を解決するための手段】本発明の動的リンク方式
は、プログラムのロードおよび実行を行うローダにおい
て、ローダの入力デック中にロードモジュール中の未解
決外部参照を別の外部参照に変更するステートメントが
記述されている場合に該ステートメントから未解決外部
参照名と変更後の外部参照名とを得て外部参照名変換テ
ーブルに登録する未解決外部参照名・変更外部参照名登
録手段と、前記プログラムが実行され前記ステートメン
トで指定された未解決外部参照名のモジュールの動的リ
ンク要求が発生した場合に前記外部参照名変換テーブル
を参照してその未解決外部参照名を変更後の外部参照名
に変換する未解決外部参照名変換手段とを有する。
【0008】
【作用】本発明の動的リンク方式では、未解決外部参照
名・変更外部参照名登録手段がローダの入力デック中に
ロードモジュール中の未解決外部参照を別の外部参照に
変更するステートメントが記述されている場合に該ステ
ートメントから未解決外部参照名と変更後の外部参照名
とを得て外部参照名変換テーブルに登録し、未解決外部
参照名変換手段がプログラムが実行され前記ステートメ
ントで指定された未解決外部参照名のモジュールの動的
リンク要求が発生した場合に外部参照名変換テーブルを
参照してその未解決外部参照名を変更後の外部参照名に
変換する。
【0009】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
【0010】図1は、本発明の一実施例に係る動的リン
ク方式の構成を示すブロック図である。本実施例の動的
リンク方式は、ファイル1−1と、入力デック1−4と
、ローダ1−6と、外部参照名変換テーブル1−9と、
MAIN−LM1−12とから、その主要部が構成され
ている。
【0011】ファイル1−1には、外部名Aのモジュー
ルA1−2,外部名BのモジュールB1−3等が格納さ
れている。
【0012】入力デック1−4には、未解決外部参照名
を別の外部参照名に変更するステートメント(以下、R
EPLACEステートメントという)1−5が記述され
る。
【0013】図2を参照すると、REPLACEステー
トメント1−5は、“//REPLACE”が未解決外
部参照名を別の外部参照名に変更する要求を表す。第1
パラメータとして変更したい未解決外部参照名、第2パ
ラメータとして変更後の外部参照名を記述する。“//
REPLACE”と第1パラメータとは“△”(空白)
によって区切られる。次のステートメントとは“;”に
よって区切られる。
【0014】ローダ1−6は、未解決外部参照名・変更
外部参照名登録手段1−7と、未解決外部参照名変換手
段1−8とを含んで構成されている。
【0015】外部参照名変換テーブル1−9は、入力デ
ック1−4に記述された未解決外部参照名を別の外部参
照名に変更するREPLACEステートメント1−5中
の未解決外部参照名(この場合はAおよびC)と、変更
後の外部参照名(この場合はBおよびD)とが未解決外
部参照名・変更外部参照名登録手段1−7によって登録
されるテーブルである。外部参照名変換テーブル1−9
の左欄1−10および右欄1−11は、それぞれ登録さ
れた未解決外部参照名および変更後の外部参照名を登録
する欄である。
【0016】MAIN−LM1−12は、仮想記憶空間
にロードされているモジュールである。
【0017】図3を参照すると、ローダ1−6の未解決
外部参照名・変更外部参照名登録手段1−7に関連する
処理は、REPLACEステートメント有無判定ステッ
プ3−1と、未解決外部参照名・変更外部参照名登録手
段起動ステップ3−2と、第1パラメータ外部参照名変
換テーブル左欄登録ステップ3−3と、第2パラメータ
外部参照名変換テーブル右欄登録ステップ3−4と、未
解決外部参照名・変更外部参照名登録手段処理終了ステ
ップ3−5とからなる。
【0018】図4を参照すると、ローダ1−6の未解決
外部参照名変換手段1−8に関連する処理は、動的リン
ク要求検出ステップ4−1と、REPLACEステート
メント有無判定ステップ4−2と、未解決外部参照名変
換手段起動ステップ4−3と、外部参照名変換テーブル
左欄検索ステップ4−4と、外部参照名検出判定ステッ
プ4−5と、外部参照名変換テーブル右欄外部参照名取
得ステップ4−6と、未解決外部参照名変換手段処理終
了ステップ4−7と、外部参照名モジュール動的リンク
ステップ4−8と、未解決外部参照名変換手段処理終了
ステップ4−9と、外部参照名モジュール動的リンクス
テップ4−10とからなる。
【0019】次に、このように構成された本実施例の動
的リンク方式の動作について説明する。
【0020】ローダ1−6は、入力デック1−4中にR
EPLACEステートメント1−5があった場合に(ス
テップ3−1)、未解決外部参照名・変更外部参照名登
録手段1−7を起動する(ステップ3−2)。
【0021】未解決外部参照名・変更外部参照名登録手
段1−7は、REPLACEステートメント1−5の第
1パラメータを外部参照名変換テーブル1−9の左欄1
−10に登録し(ステップ3−3)、第2パラメータを
外部参照名変換テーブル1−9の右欄1−11に登録し
(ステップ3−4)、処理を終了する(ステップ3−5
)。図1中に示すような2つのREPLACEステート
メント1−5を含む入力デック1−4が入力された場合
、図1中に示すような外部参照名変換テーブル1−9が
作成される。
【0022】プログラムの実行中にMAIN−LM1−
12においてモジュールAへの未解決外部参照(CAL
L  A;)1−13が発生すると、未解決のために動
的リンク要求がローダ1−6に対して発生する。
【0023】ローダ1−6は、モジュールAの動的リン
ク要求がきた場合(ステップ4−1)、先に入力され入
力デック1−4中にREPLACEステートメント1−
5があったかどうかを確認する(ステップ4−2)。入
力デック1−4中にREPLACEステートメント1−
5がなかった場合、ローダ1−6は、ファイル1−1の
未解決外部参照名Aを外部名としてもつモジュールA1
−2をMAIN−LM1−12に動的にリンクする(ス
テップ4−10)。入力デック1−4中にREPLAC
Eステートメント1−5があった場合、ローダ1−6は
、未解決外部参照名変換手段1−8を起動する(ステッ
プ4−3)。
【0024】未解決外部参照名変換手段1−8は、外部
参照名変換テーブル1−9の左欄1−10を検索し(ス
テップ4−4)、外部参照名変換テーブル1−9の左欄
1−10に未解決外部参照名Aが発見できなかった場合
には、処理を終了する(ステップ4−9)。この後、ロ
ーダ1−6は、ファイル1−1の未解決外部参照名Aを
外部名としてもつモジュールA1−2をMAIN−LM
1−12に動的にリンクする(ステップ4−10)。
【0025】外部参照名変換テーブル1−9の左欄1−
10に未解決外部参照名Aが発見できた場合、未解決外
部参照名変換手段1−8は、外部参照名変換テーブル1
−9の対応する右欄1−11に登録されている変更外部
参照名Bを得て(ステップ4−6)、処理を終了する(
ステップ4−7)。
【0026】ローダ1−6は、未解決外部参照名変換手
段1−8により得られた変更外部参照名Bを外部名とし
てもつモジュールB1−3をファイル1−1から得て、
MAIN−LM1−12に動的にリンクする(ステップ
4−8)。
【0027】この結果、未解決外部参照1−13は、モ
ジュールA1−2への外部参照の代わりに、仮想記憶空
間にロードされたモジュールB1−14(1−3)への
外部参照として参照解決がなされる。
【0028】
【発明の効果】以上説明したように本発明は、外部参照
名変換テーブル,未解決外部参照名・変更外部参照名登
録手段および未解決外部参照名変換手段を設けたことに
より、MAIN−LMを作成し直したり、プログラムの
実行時に変数の値を変更したりすることなしに、ローダ
の入力デック中にREPLACEステートメントを含ま
せるだけできわめて容易に目的のモジュールを動的にリ
ンクさせることができるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例に係る動的リンク方式の構成
を示すブロック図である。
【図2】図1中の未解決外部参照名を別の外部参照名に
変更するREPLACEステートメントを説明する図で
ある。
【図3】図1中のローダの未解決外部参照名・変更外部
参照名登録手段に関連する処理を示す流れ図である。
【図4】図1中のローダの未解決外部参照名変換手段に
関連する処理を示す流れ図である。
【符号の説明】
1−1  ファイル 1−2  モジュールA 1−3  モジュールB 1−4  入力デック 1−5  REPLACEステートメント1−6  ロ
ーダ 1−7  未解決外部参照名・変更外部参照名登録手段
1−8  未解決外部参照名変換手段 1−9  外部参照名変換テーブル 1−10  左欄 1−11  右欄 1−12  MAIN−LM 1−13  未解決外部参照

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  プログラムのロードおよび実行を行う
    ローダにおいて、ローダの入力デック中にロードモジュ
    ール中の未解決外部参照を別の外部参照に変更するステ
    ートメントが記述されている場合に該ステートメントか
    ら未解決外部参照名と変更後の外部参照名とを得て外部
    参照名変換テーブルに登録する未解決外部参照名・変更
    外部参照名登録手段と、前記プログラムが実行され前記
    ステートメントで指定された未解決外部参照名のモジュ
    ールの動的リンク要求が発生した場合に前記外部参照名
    変換テーブルを参照してその未解決外部参照名を変更後
    の外部参照名に変換する未解決外部参照名変換手段とを
    有することを特徴とする動的リンク方式。
JP1705191A 1991-01-17 1991-01-17 動的リンク方式 Pending JPH04243424A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1705191A JPH04243424A (ja) 1991-01-17 1991-01-17 動的リンク方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1705191A JPH04243424A (ja) 1991-01-17 1991-01-17 動的リンク方式

Publications (1)

Publication Number Publication Date
JPH04243424A true JPH04243424A (ja) 1992-08-31

Family

ID=11933198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1705191A Pending JPH04243424A (ja) 1991-01-17 1991-01-17 動的リンク方式

Country Status (1)

Country Link
JP (1) JPH04243424A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506316B2 (en) 2001-02-01 2009-03-17 International Business Machines Corporation Method and system for managing shared-library executables

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506316B2 (en) 2001-02-01 2009-03-17 International Business Machines Corporation Method and system for managing shared-library executables

Similar Documents

Publication Publication Date Title
JP2666847B2 (ja) 異種言語間連絡方式
JPH04243424A (ja) 動的リンク方式
JPH0411888B2 (ja)
JPH021030A (ja) コンパイル方式
JPS5922143A (ja) 高速インタプリタ方式
JPH04287230A (ja) インライン展開の引数結合方法
JP3167386B2 (ja) プログラム自動並列化方法
JPH10207738A (ja) 言語処理システム
JP2626450B2 (ja) バッキングストア使用量算定装置
JPH03266023A (ja) 変数の動的結合方式
JP3304363B2 (ja) ジョブセパレータの出力方式
JPH02278340A (ja) コンパイル方式
JPH05289919A (ja) データベースアクセスプログラム生成方式
JPH0535491A (ja) Fortran言語からc言語への変換における引数変換方法
JPS6155738A (ja) 演算モ−ドの決定方式
JP2004133827A (ja) core解析装置
JPH02205930A (ja) インタフェースチェック処理方法
JPH05100866A (ja) コンパイル・リンク方式
JPS62119641A (ja) オプシヨン値設定制御方式
JPH0337726A (ja) Case文最適化方式
JPH0223428A (ja) コマンド型エンドユーザ言語の翻訳型実行方式
JPH0357024A (ja) データ多重割付方式
JPH02224129A (ja) メッセージ送信の静的解決方式
JPS62206668A (ja) 目的プログラムの並列化処理方式
JPH02146625A (ja) レジスタ個数の拡張方式