JPH0764773A - プログラムローディング方法及び情報処理装置 - Google Patents
プログラムローディング方法及び情報処理装置Info
- Publication number
- JPH0764773A JPH0764773A JP21150893A JP21150893A JPH0764773A JP H0764773 A JPH0764773 A JP H0764773A JP 21150893 A JP21150893 A JP 21150893A JP 21150893 A JP21150893 A JP 21150893A JP H0764773 A JPH0764773 A JP H0764773A
- Authority
- JP
- Japan
- Prior art keywords
- symbol
- program
- detected
- address information
- address
- 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.)
- Withdrawn
Links
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】
【構成】 プログラムローダ14は、アプリケーション
プログラム等の他を参照するジャンプ元オブジェクトコ
ード13をローディングする際に、リロケーション情報
13aから1つの未解決シンボル#jを抽出し、シンボ
ルテーブル11を参照して、未解決シンボル#jと同じ
名前のシンボル#iを検出し、それに対応するジャンプ
用領域#iのアドレスを得、このアドレスを、先頭番地
にオフセット#jを加えたアドレスに格納する。 【効果】 ジャンプ先オブジェクトコード12i の変更
等が自動的にジャンプ元オブジェクトコード13に反映
され、アプリケーションプログラム等のジャンプ元オブ
ジェクトコード13の変更や修正、又は再ローディング
を行う必要がなく、アプリケーションプログラムを実行
することができる。
プログラム等の他を参照するジャンプ元オブジェクトコ
ード13をローディングする際に、リロケーション情報
13aから1つの未解決シンボル#jを抽出し、シンボ
ルテーブル11を参照して、未解決シンボル#jと同じ
名前のシンボル#iを検出し、それに対応するジャンプ
用領域#iのアドレスを得、このアドレスを、先頭番地
にオフセット#jを加えたアドレスに格納する。 【効果】 ジャンプ先オブジェクトコード12i の変更
等が自動的にジャンプ元オブジェクトコード13に反映
され、アプリケーションプログラム等のジャンプ元オブ
ジェクトコード13の変更や修正、又は再ローディング
を行う必要がなく、アプリケーションプログラムを実行
することができる。
Description
【0001】
【産業上の利用分野】本発明は、プログラムローディン
グ方法及び情報処理装置に関する。
グ方法及び情報処理装置に関する。
【0002】
【従来の技術】例えばアプリケーション等のプログラム
を作成し、情報処理装置において実行するには、作成し
たプログラム(所謂ソースコード)をコンパイルして得
られるオブジェクトコードを情報処理装置内のランダム
・アクセス・メモリ(以下RAMという)等からなる主
記憶装置に読み込んだ(ローディングした)後、実行す
るようになっている。
を作成し、情報処理装置において実行するには、作成し
たプログラム(所謂ソースコード)をコンパイルして得
られるオブジェクトコードを情報処理装置内のランダム
・アクセス・メモリ(以下RAMという)等からなる主
記憶装置に読み込んだ(ローディングした)後、実行す
るようになっている。
【0003】ところで、例えば頻繁に使用したり、複数
のアプリケーションプログラムにおいて共用するプログ
ラムやデータ等の情報(参照情報)を、所謂ライブラリ
として予めローディングしておくと、これらのオブジェ
クトコードを参照するオブジェクトコード(例えばアプ
リケーションプログラム)をローディングする際に、所
謂リンケージにより他に参照されるオブジェクトコード
(例えばライブラリ)がリンクされて、実行される。す
なわち例えばライブラリ、データ、分割されてコンパイ
ルされたオブジェクトコード等を共用することができ、
アプリケーションプログラムの作成やメモリの使用を効
率的に行うことができる。そして、このリンクに必要な
シンボルのアドレス情報は、シンボルテーブルと呼ばれ
る領域に格納されている。
のアプリケーションプログラムにおいて共用するプログ
ラムやデータ等の情報(参照情報)を、所謂ライブラリ
として予めローディングしておくと、これらのオブジェ
クトコードを参照するオブジェクトコード(例えばアプ
リケーションプログラム)をローディングする際に、所
謂リンケージにより他に参照されるオブジェクトコード
(例えばライブラリ)がリンクされて、実行される。す
なわち例えばライブラリ、データ、分割されてコンパイ
ルされたオブジェクトコード等を共用することができ、
アプリケーションプログラムの作成やメモリの使用を効
率的に行うことができる。そして、このリンクに必要な
シンボルのアドレス情報は、シンボルテーブルと呼ばれ
る領域に格納されている。
【0004】
【発明が解決しようとする課題】一方、ライブラリ等の
他に参照されるオブジェクトコードを変更したり、修正
する場合は、オブジェクトコードを変更してローディン
グしても、シンボルテーブル内内のアドレス情報のみが
変更(更新)され、アプリケーションプログラム等の他
を参照しているオブジェクトコードは変更されず、この
他を参照しているオブジェクトコードは正しくないアド
レスを参照していることになる。したがって、従来のプ
ログラムローディング方法や情報処理装置では、他に参
照されているオブジェクトコードの変更等を他を参照し
ているオブジェクトコードに反映させるために、再度他
を参照しているオブジェクトコードをローディングする
必要があり、甚だ不便であり、また再ローディングのた
めに時間がかかるという問題があった。
他に参照されるオブジェクトコードを変更したり、修正
する場合は、オブジェクトコードを変更してローディン
グしても、シンボルテーブル内内のアドレス情報のみが
変更(更新)され、アプリケーションプログラム等の他
を参照しているオブジェクトコードは変更されず、この
他を参照しているオブジェクトコードは正しくないアド
レスを参照していることになる。したがって、従来のプ
ログラムローディング方法や情報処理装置では、他に参
照されているオブジェクトコードの変更等を他を参照し
ているオブジェクトコードに反映させるために、再度他
を参照しているオブジェクトコードをローディングする
必要があり、甚だ不便であり、また再ローディングのた
めに時間がかかるという問題があった。
【0005】本発明は、このような実情に鑑みてなされ
たものであり、他に参照されているオブジェクトコード
を変更したり、修正しても、これらを参照しているオブ
ジェクトコードを変更したり、修正する必要がなく、ま
た、他を参照しているオブジェクトコードを再ローディ
ングする必要がないプログラムローディング方法及び情
報処理装置の提供を目的とする。
たものであり、他に参照されているオブジェクトコード
を変更したり、修正しても、これらを参照しているオブ
ジェクトコードを変更したり、修正する必要がなく、ま
た、他を参照しているオブジェクトコードを再ローディ
ングする必要がないプログラムローディング方法及び情
報処理装置の提供を目的とする。
【0006】
【課題を解決するための手段】上記課題を解決するため
に、本発明に係る第1のプログラムローディング方法
は、参照情報を表すシンボルで定義されるプログラムを
ローディングする際に、シンボルと番地情報からなるシ
ンボルテーブル内のシンボルからローディングされるプ
ログラムのシンボルと同一シンボルを検出し、検出され
たシンボルに対応するシンボルテーブル内の番地情報
を、プログラムがローディングされた後の番地情報に書
き換えることを特徴とする。
に、本発明に係る第1のプログラムローディング方法
は、参照情報を表すシンボルで定義されるプログラムを
ローディングする際に、シンボルと番地情報からなるシ
ンボルテーブル内のシンボルからローディングされるプ
ログラムのシンボルと同一シンボルを検出し、検出され
たシンボルに対応するシンボルテーブル内の番地情報
を、プログラムがローディングされた後の番地情報に書
き換えることを特徴とする。
【0007】また、本発明に係る第2のプログラムロー
ディング方法は、参照情報を表すシンボルを含むプログ
ラムをローディングする際に、プログラムに含まれる解
決されていない未解決シンボルを検出し、シンボルと番
地情報からなるシンボルテーブルを参照して、検出され
た未解決シンボルを、未解決シンボルと同一のシンボル
に対応する番地情報に分岐する分岐番地とすることを特
徴とする。
ディング方法は、参照情報を表すシンボルを含むプログ
ラムをローディングする際に、プログラムに含まれる解
決されていない未解決シンボルを検出し、シンボルと番
地情報からなるシンボルテーブルを参照して、検出され
た未解決シンボルを、未解決シンボルと同一のシンボル
に対応する番地情報に分岐する分岐番地とすることを特
徴とする。
【0008】また、本発明に係る第3のプログラムロー
ディング方法は、上記第1のプログラムローディング方
法において、シンボルテーブル内の番地情報を実行番地
変更命令とすることを特徴とする。
ディング方法は、上記第1のプログラムローディング方
法において、シンボルテーブル内の番地情報を実行番地
変更命令とすることを特徴とする。
【0009】また、本発明に係る第4のプログラムロー
ディング方法は、上記第2のプログラムローディング方
法において、シンボルテーブル内の番地情報を実行番地
変更命令とすることを特徴とする。
ディング方法は、上記第2のプログラムローディング方
法において、シンボルテーブル内の番地情報を実行番地
変更命令とすることを特徴とする。
【0010】また、本発明に係る第5のプログラムロー
ディング方法は、参照情報を表すシンボルで定義される
プログラムをローディングする際に、シンボルと番地情
報からなるシンボルテーブル内のシンボルからローディ
ングされるプログラムのシンボルと同一シンボルを検出
し、検出されたシンボルに対応するシンボルテーブル内
の番地情報を、プログラムがローディングされた後の番
地情報に書き換えると共に、参照情報を表すシンボルを
含むプログラムをローディングする際に、プログラムに
含まれる解決されていない未解決シンボルを検出し、検
出された未解決シンボルを、未解決シンボルと同一のシ
ンボルテーブル内のシンボルに対応する番地情報に分岐
する分岐番地とすることを特徴とする。
ディング方法は、参照情報を表すシンボルで定義される
プログラムをローディングする際に、シンボルと番地情
報からなるシンボルテーブル内のシンボルからローディ
ングされるプログラムのシンボルと同一シンボルを検出
し、検出されたシンボルに対応するシンボルテーブル内
の番地情報を、プログラムがローディングされた後の番
地情報に書き換えると共に、参照情報を表すシンボルを
含むプログラムをローディングする際に、プログラムに
含まれる解決されていない未解決シンボルを検出し、検
出された未解決シンボルを、未解決シンボルと同一のシ
ンボルテーブル内のシンボルに対応する番地情報に分岐
する分岐番地とすることを特徴とする。
【0011】また、本発明に係る情報処理装置は、シン
ボルと番地情報からなるシンボルテーブルと、参照情報
を表すシンボルで定義されるプログラムと、参照情報を
表すシンボルを含むプログラムとを記憶する記憶手段を
有し、記憶手段にシンボルで定義されるプログラムをロ
ーディングする際に、シンボルテーブル内のシンボルか
らローディングされるプログラムのシンボルと同一シン
ボルを検出し、検出されたシンボルに対応するシンボル
テーブル内の番地情報を、プログラムがローディングさ
れた後の番地情報に書き換えると共に、記憶手段にシン
ボルを含むプログラムをローディングする際に、プログ
ラムに含まれる解決されていない未解決シンボルを検出
し、検出された未解決シンボルを、未解決シンボルと同
一のシンボルテーブル内のシンボルに対応する番地情報
に分岐する分岐番地とすることを特徴とする。
ボルと番地情報からなるシンボルテーブルと、参照情報
を表すシンボルで定義されるプログラムと、参照情報を
表すシンボルを含むプログラムとを記憶する記憶手段を
有し、記憶手段にシンボルで定義されるプログラムをロ
ーディングする際に、シンボルテーブル内のシンボルか
らローディングされるプログラムのシンボルと同一シン
ボルを検出し、検出されたシンボルに対応するシンボル
テーブル内の番地情報を、プログラムがローディングさ
れた後の番地情報に書き換えると共に、記憶手段にシン
ボルを含むプログラムをローディングする際に、プログ
ラムに含まれる解決されていない未解決シンボルを検出
し、検出された未解決シンボルを、未解決シンボルと同
一のシンボルテーブル内のシンボルに対応する番地情報
に分岐する分岐番地とすることを特徴とする。
【0012】
【作用】本発明に係る第1のプログラムローディング方
法では、例えばライブラリ等のシンボルで定義されるプ
ログラムをローディングする際に、シンボルテーブル内
のシンボルからプログラムのシンボルと同一シンボルを
検出し、このシンボルに対応するシンボルテーブル内の
番地情報を、プログラムがローディングされた後の番地
情報に書き換える。
法では、例えばライブラリ等のシンボルで定義されるプ
ログラムをローディングする際に、シンボルテーブル内
のシンボルからプログラムのシンボルと同一シンボルを
検出し、このシンボルに対応するシンボルテーブル内の
番地情報を、プログラムがローディングされた後の番地
情報に書き換える。
【0013】また、本発明に係る第2のプログラムロー
ディング方法では、例えばアプリケーションプログラム
等のシンボルを含むプログラムをローディングする際
に、未解決シンボルを検出し、シンボルテーブルを参照
して、検出された未解決シンボルを、この未解決シンボ
ルと同一のシンボルに対応する番地情報に分岐する分岐
番地とする。
ディング方法では、例えばアプリケーションプログラム
等のシンボルを含むプログラムをローディングする際
に、未解決シンボルを検出し、シンボルテーブルを参照
して、検出された未解決シンボルを、この未解決シンボ
ルと同一のシンボルに対応する番地情報に分岐する分岐
番地とする。
【0014】また、本発明に係る第3のプログラムロー
ディング方法では、上記第1のプログラムローディング
方法において、シンボルテーブル内の番地情報を実行番
地変更命令とする。
ディング方法では、上記第1のプログラムローディング
方法において、シンボルテーブル内の番地情報を実行番
地変更命令とする。
【0015】また、本発明に係る第4のプログラムロー
ディング方法では、上記第2のプログラムローディング
方法において、シンボルテーブル内の番地情報を実行番
地変更命令とする。
ディング方法では、上記第2のプログラムローディング
方法において、シンボルテーブル内の番地情報を実行番
地変更命令とする。
【0016】また、本発明に係る第5のプログラムロー
ディング方法では、例えばライブラリ等のシンボルで定
義されるプログラムをローディングする際に、シンボル
テーブル内のシンボルからプログラムのシンボルと同一
シンボルを検出し、このシンボルに対応するシンボルテ
ーブル内の番地情報を、プログラムがローディングされ
た後の番地情報に書き換えると共に、例えばアプリケー
ションプログラム等のシンボルを含むプログラムをロー
ディングする際に、未解決シンボルを検出し、検出され
た未解決シンボルを、この未解決シンボルと同一のシン
ボルテーブル内のシンボルに対応する番地情報に分岐す
る分岐番地とする。
ディング方法では、例えばライブラリ等のシンボルで定
義されるプログラムをローディングする際に、シンボル
テーブル内のシンボルからプログラムのシンボルと同一
シンボルを検出し、このシンボルに対応するシンボルテ
ーブル内の番地情報を、プログラムがローディングされ
た後の番地情報に書き換えると共に、例えばアプリケー
ションプログラム等のシンボルを含むプログラムをロー
ディングする際に、未解決シンボルを検出し、検出され
た未解決シンボルを、この未解決シンボルと同一のシン
ボルテーブル内のシンボルに対応する番地情報に分岐す
る分岐番地とする。
【0017】また、本発明に係る情報処理装置では、例
えばライブラリ等のシンボルで定義されるプログラムを
記憶手段にローディングする際に、シンボルテーブル内
のシンボルからプログラムのシンボルと同一シンボルを
検出し、このシンボルに対応するシンボルテーブル内の
番地情報を、プログラムがローディングされた後の番地
情報に書き換えると共に、例えばアプリケーションプロ
グラム等のシンボルを含むプログラムを記憶手段にロー
ディングする際に、未解決シンボルを検出し、検出され
た未解決シンボルを、この未解決シンボルと同一のシン
ボルテーブル内のシンボルに対応する番地情報に分岐す
る分岐番地とする。
えばライブラリ等のシンボルで定義されるプログラムを
記憶手段にローディングする際に、シンボルテーブル内
のシンボルからプログラムのシンボルと同一シンボルを
検出し、このシンボルに対応するシンボルテーブル内の
番地情報を、プログラムがローディングされた後の番地
情報に書き換えると共に、例えばアプリケーションプロ
グラム等のシンボルを含むプログラムを記憶手段にロー
ディングする際に、未解決シンボルを検出し、検出され
た未解決シンボルを、この未解決シンボルと同一のシン
ボルテーブル内のシンボルに対応する番地情報に分岐す
る分岐番地とする。
【0018】
【実施例】以下、本発明に係るプログラムローディング
方法及び情報処理装置の一実施例を図面を参照しながら
説明する。この実施例は、一般的な情報処理装置に本発
明を適用したものであり、図1は、この情報処理装置の
構成を示すブロック図である。
方法及び情報処理装置の一実施例を図面を参照しながら
説明する。この実施例は、一般的な情報処理装置に本発
明を適用したものであり、図1は、この情報処理装置の
構成を示すブロック図である。
【0019】この情報処理装置は、アプリケーションプ
ログラム等を実行する中央演算装置(以下CPUとい
う)1と、ユーザが入力を行うキーボード2と、アプリ
ケーションプログラムを実行した結果等を表示するディ
スプレイ装置(以下CRTという)3と、アプリケーシ
ョンプログラム、ライブラリ、データ等が記録されてい
るディスク装置4と、該ディスク装置4に記録されてい
るアプリケーションプログラム等がローディングされて
記憶される主記憶装置5とから構成される。
ログラム等を実行する中央演算装置(以下CPUとい
う)1と、ユーザが入力を行うキーボード2と、アプリ
ケーションプログラムを実行した結果等を表示するディ
スプレイ装置(以下CRTという)3と、アプリケーシ
ョンプログラム、ライブラリ、データ等が記録されてい
るディスク装置4と、該ディスク装置4に記録されてい
るアプリケーションプログラム等がローディングされて
記憶される主記憶装置5とから構成される。
【0020】ディスク装置4には、アプリケーションプ
ログラムや、頻繁に使用したり、複数のアプリケーショ
ンプログラムが共用するライブラリ、データ、複数に分
割されたプログラム等が、これらの所謂ソースコードを
コンパイルして得られるオブジェクトコードファイルと
して記録されている。主記憶装置5は、例えばランダム
・アクセス・メモリ(以下RAM5という)からなり、
CPU1は、ディスク装置4からオブジェクトコードフ
ァイルをRAM5にローディングする際に、プログラム
ローダのリンケージによりアプリケーションとライブラ
リとのオブジェクトコードをリンクしたり、分割されて
いるプログラムの各オブジェクトコードをリンクした
後、アプリケーションプログラム等を実行するようにな
っている。
ログラムや、頻繁に使用したり、複数のアプリケーショ
ンプログラムが共用するライブラリ、データ、複数に分
割されたプログラム等が、これらの所謂ソースコードを
コンパイルして得られるオブジェクトコードファイルと
して記録されている。主記憶装置5は、例えばランダム
・アクセス・メモリ(以下RAM5という)からなり、
CPU1は、ディスク装置4からオブジェクトコードフ
ァイルをRAM5にローディングする際に、プログラム
ローダのリンケージによりアプリケーションとライブラ
リとのオブジェクトコードをリンクしたり、分割されて
いるプログラムの各オブジェクトコードをリンクした
後、アプリケーションプログラム等を実行するようにな
っている。
【0021】具体的には、RAM5には、例えば図2に
示すように、シンボル名と番地情報からなるシンボルテ
ーブル11と、例えばライブラリ等の参照情報を表すシ
ンボルで定義されるプログラムのオブジェクトコード
(以下ジャンプ先オブジェクトコードという)12と、
例えばアプリケーションプログラム等の参照情報を表す
シンボルを含むプログラムのオブジェクトコード(以下
ジャンプ元オブジェクトコードという)13と、上記デ
ィスク装置4からオブジェクトコードを読み込むプログ
ラムローダ14とが記憶されるようになっている。
示すように、シンボル名と番地情報からなるシンボルテ
ーブル11と、例えばライブラリ等の参照情報を表すシ
ンボルで定義されるプログラムのオブジェクトコード
(以下ジャンプ先オブジェクトコードという)12と、
例えばアプリケーションプログラム等の参照情報を表す
シンボルを含むプログラムのオブジェクトコード(以下
ジャンプ元オブジェクトコードという)13と、上記デ
ィスク装置4からオブジェクトコードを読み込むプログ
ラムローダ14とが記憶されるようになっている。
【0022】そして、例えば最初にライブラリ、データ
等の参照情報をディスク装置4からローディングする場
合、CPU1はRAM5に既に記憶されているプログラ
ムローダ14を実行して(以下単にプログラムローダ1
4という)、シンボル#i(i=1〜m)のジャンプ先
オブジェクトコード12i をRAM5に記憶すると共
に、シンボルテーブル11のシンボル名欄にシンボル#
iを登録し、また、このシンボル#iに対応する番地情
報の欄に、シンボル#iのオブジェクトコード12i が
ローディングされた領域にジャンプする命令を登録す
る。
等の参照情報をディスク装置4からローディングする場
合、CPU1はRAM5に既に記憶されているプログラ
ムローダ14を実行して(以下単にプログラムローダ1
4という)、シンボル#i(i=1〜m)のジャンプ先
オブジェクトコード12i をRAM5に記憶すると共
に、シンボルテーブル11のシンボル名欄にシンボル#
iを登録し、また、このシンボル#iに対応する番地情
報の欄に、シンボル#iのオブジェクトコード12i が
ローディングされた領域にジャンプする命令を登録す
る。
【0023】つぎに、例えばアプリケーションプログラ
ム等の参照情報を表すシンボルを含むプログラムをロー
ディングする場合、プログラムローダ14は、例えば図
3に示すフローチャートに従って動作する。
ム等の参照情報を表すシンボルを含むプログラムをロー
ディングする場合、プログラムローダ14は、例えば図
3に示すフローチャートに従って動作する。
【0024】すなわち、ステップST1において、プロ
グラムローダ14は、ディスク装置4に記録されている
所謂リロケーション情報を含むオブジェクトコードファ
イルをRAM5にジャンプ元オブジェクトコード13と
して転送し、ステップST2に進む。ところで、ジャン
プ元オブジェクトコード13の所謂リロケーション情報
13aは、上述の図2に示すように、未解決シンボル#
j(j=1〜n)とそのジャンプ元オブジェクトコード
13内のオフセット#jからなる。
グラムローダ14は、ディスク装置4に記録されている
所謂リロケーション情報を含むオブジェクトコードファ
イルをRAM5にジャンプ元オブジェクトコード13と
して転送し、ステップST2に進む。ところで、ジャン
プ元オブジェクトコード13の所謂リロケーション情報
13aは、上述の図2に示すように、未解決シンボル#
j(j=1〜n)とそのジャンプ元オブジェクトコード
13内のオフセット#jからなる。
【0025】ステップST2において、プログラムロー
ダ14は、リロケーション情報13aから1つの未解決
シンボル#jを抽出し、ステップST3に進む。
ダ14は、リロケーション情報13aから1つの未解決
シンボル#jを抽出し、ステップST3に進む。
【0026】ステップST3において、プログラムロー
ダ14は、シンボルテーブル11を参照して、未解決シ
ンボル#jと同じ名前のシンボル#iを検出し、それに
対応するジャンプ用領域#iのアドレスを得、ステップ
ST4に進む。
ダ14は、シンボルテーブル11を参照して、未解決シ
ンボル#jと同じ名前のシンボル#iを検出し、それに
対応するジャンプ用領域#iのアドレスを得、ステップ
ST4に進む。
【0027】ステップST4において、プログラムロー
ダ14は、ジャンプ用領域#iのアドレスを、このジャ
ンプ元オブジェクトコード13が記憶された先頭番地に
リロケーション情報13a内のオフセット#jを加えた
アドレスに格納し、すなわち未解決シンボル#jをジャ
ンプ用領域#iにジャンプする命令とし、ステップST
5に進む。換言すると、プログラムローダ14は、未解
決シンボル#jと同一のシンボル#iに対応する番地情
報に分岐する分岐番地として、未解決シンボル#jを解
決する。
ダ14は、ジャンプ用領域#iのアドレスを、このジャ
ンプ元オブジェクトコード13が記憶された先頭番地に
リロケーション情報13a内のオフセット#jを加えた
アドレスに格納し、すなわち未解決シンボル#jをジャ
ンプ用領域#iにジャンプする命令とし、ステップST
5に進む。換言すると、プログラムローダ14は、未解
決シンボル#jと同一のシンボル#iに対応する番地情
報に分岐する分岐番地として、未解決シンボル#jを解
決する。
【0028】ステップST5において、プログラムロー
ダ14は、全ての未解決シンボル#1〜#mを解決した
かを判断し、該当するときは終了し、該当しないときは
ステップST2に戻る。
ダ14は、全ての未解決シンボル#1〜#mを解決した
かを判断し、該当するときは終了し、該当しないときは
ステップST2に戻る。
【0029】かくして、アプリケーションプログラムの
未解決シンボル#1〜#mが解決され、CPU9は、ア
プリケーションプログラムを実行する。
未解決シンボル#1〜#mが解決され、CPU9は、ア
プリケーションプログラムを実行する。
【0030】ところで、ジャンプ元オブジェクトコード
13、すなわちがアプリケーションプログラム等の参照
情報を表すシンボルを含むプログラムをローディングし
た後に、ジャンプ先オブジェクトコード12、すなわち
ライブラリ等の参照情報を表すシンボルで定義されるプ
ログラムに変更や修正が生じた場合、この情報処理装置
では、変更されたジャンプ先オブジェクトコード12の
みをローディングし、このローディングされたジャンプ
先オブジェクトコード12、例えばジャンプ先オブジェ
クトコード12i のシンボル#iと同一のシンボル#i
をシンボルテーブル11から検出し、この検出されたシ
ンボル#iに対応するジャンプ用領域#iに、このジャ
ンプ先オブジェクトコード12i がローディングされた
後のアドレスへジャンプする命令を登録する。換言する
と、同一シンボルの番地情報を、変更されたジャンプ先
オブジェクトコードがローディングされた後の番地情報
に書き換える。この結果、ジャンプ先オブジェクトコー
ド12i の変更等が自動的にジャンプ元オブジェクトコ
ード13に反映され、アプリケーションプログラム等の
ジャンプ元オブジェクトコード13の変更や修正、又は
再ローディングを行う必要がなく、アプリケーションプ
ログラムを実行することができる。
13、すなわちがアプリケーションプログラム等の参照
情報を表すシンボルを含むプログラムをローディングし
た後に、ジャンプ先オブジェクトコード12、すなわち
ライブラリ等の参照情報を表すシンボルで定義されるプ
ログラムに変更や修正が生じた場合、この情報処理装置
では、変更されたジャンプ先オブジェクトコード12の
みをローディングし、このローディングされたジャンプ
先オブジェクトコード12、例えばジャンプ先オブジェ
クトコード12i のシンボル#iと同一のシンボル#i
をシンボルテーブル11から検出し、この検出されたシ
ンボル#iに対応するジャンプ用領域#iに、このジャ
ンプ先オブジェクトコード12i がローディングされた
後のアドレスへジャンプする命令を登録する。換言する
と、同一シンボルの番地情報を、変更されたジャンプ先
オブジェクトコードがローディングされた後の番地情報
に書き換える。この結果、ジャンプ先オブジェクトコー
ド12i の変更等が自動的にジャンプ元オブジェクトコ
ード13に反映され、アプリケーションプログラム等の
ジャンプ元オブジェクトコード13の変更や修正、又は
再ローディングを行う必要がなく、アプリケーションプ
ログラムを実行することができる。
【0031】換言すると、アプリケーションプログラム
等の他を参照するプログラムのジャンプ元オブジェクト
コード13のローディングと、ライブラリ等の他に参照
されるプログラムのジャンプ先オブジェクトコード12
のローディングとの順番を順不同とすることができ、ロ
ーディングプログラム14を簡素化することができる。
等の他を参照するプログラムのジャンプ元オブジェクト
コード13のローディングと、ライブラリ等の他に参照
されるプログラムのジャンプ先オブジェクトコード12
のローディングとの順番を順不同とすることができ、ロ
ーディングプログラム14を簡素化することができる。
【0032】ここで、ジャンプ元オブジェクトコード1
3を先にローディングする際の未解決シンボルの解決方
法について、図4に示すフローチャートを用いて説明す
る。
3を先にローディングする際の未解決シンボルの解決方
法について、図4に示すフローチャートを用いて説明す
る。
【0033】ステップST1において、未解決シンボル
#jをシンボルテーブル11内の空き領域、例えばシン
ボル#iに登録し、ステップST2に進む。
#jをシンボルテーブル11内の空き領域、例えばシン
ボル#iに登録し、ステップST2に進む。
【0034】ステップST2において、この登録したシ
ンボル#iに対応するジャンプ用領域#iのアドレス
を、このジャンプ元オブジェクトコード13が記憶され
た先頭番地にリロケーション情報13a内のオフセット
#jを加えたアドレスに格納し、すなわち未解決シンボ
ル#jをジャンプ用領域#iにジャンプする命令とし、
ステップST3に進む。換言すると、プログラムローダ
14は、未解決シンボル#jと同一のシンボル#iに対
応する番地情報に分岐する分岐番地として、未解決シン
ボル#jを解決する。
ンボル#iに対応するジャンプ用領域#iのアドレス
を、このジャンプ元オブジェクトコード13が記憶され
た先頭番地にリロケーション情報13a内のオフセット
#jを加えたアドレスに格納し、すなわち未解決シンボ
ル#jをジャンプ用領域#iにジャンプする命令とし、
ステップST3に進む。換言すると、プログラムローダ
14は、未解決シンボル#jと同一のシンボル#iに対
応する番地情報に分岐する分岐番地として、未解決シン
ボル#jを解決する。
【0035】ステップST3において、プログラムロー
ダ14は、全ての未解決シンボル#1〜#mを解決した
かを判断し、該当するときは終了し、該当しないときは
ステップST1に戻る。
ダ14は、全ての未解決シンボル#1〜#mを解決した
かを判断し、該当するときは終了し、該当しないときは
ステップST1に戻る。
【0036】かくして、ジャンプ元オブジェクトコード
13のローディングが終了する。そして、ジャンプ先オ
ブジェクトコード12i を、上述のライブラリ等の変更
や修正と同様にローディングする。この結果、シンボル
テーブル11には、シンボル#iと、そのシンボル#i
に対応したジャンプ用領域#iにこのジャンプ先オブジ
ェクトコード12i がローディングされた後のアドレス
へジャンプする命令とが登録される。
13のローディングが終了する。そして、ジャンプ先オ
ブジェクトコード12i を、上述のライブラリ等の変更
や修正と同様にローディングする。この結果、シンボル
テーブル11には、シンボル#iと、そのシンボル#i
に対応したジャンプ用領域#iにこのジャンプ先オブジ
ェクトコード12i がローディングされた後のアドレス
へジャンプする命令とが登録される。
【0037】
【発明の効果】以上の説明で明かなように、本発明に係
るプログラムローディング方法又は情報処理装置では、
例えばライブラリ等のシンボルで定義されるプログラム
をローディングする際に、シンボルテーブル内のシンボ
ルからプログラムのシンボルと同一シンボルを検出し、
このシンボルに対応するシンボルテーブル内の番地情報
を、プログラムがローディングされた後の番地情報に書
き換え、また、例えばアプリケーションプログラム等の
シンボルを含むプログラムをローディングする際に、未
解決シンボルを検出し、シンボルテーブルを参照して、
検出された未解決シンボルを、この未解決シンボルと同
一のシンボルに対応する番地情報に分岐する分岐番地と
することにより、ライブラリ等の他に参照されるプログ
ラムを変更したり、修正しても、これらの変更等がアプ
リケーションプログラム等の他を参照するプログラムに
自動的に反映され、他を参照するプログラムの再ローデ
ィングなしに、このプログラムを実行することができ
る。また、他に参照されるプログラムのローディング
と、他を参照するプログラムのローディングとの順番を
順不同とすることができ、ローディングプログラムを簡
素化することができる。
るプログラムローディング方法又は情報処理装置では、
例えばライブラリ等のシンボルで定義されるプログラム
をローディングする際に、シンボルテーブル内のシンボ
ルからプログラムのシンボルと同一シンボルを検出し、
このシンボルに対応するシンボルテーブル内の番地情報
を、プログラムがローディングされた後の番地情報に書
き換え、また、例えばアプリケーションプログラム等の
シンボルを含むプログラムをローディングする際に、未
解決シンボルを検出し、シンボルテーブルを参照して、
検出された未解決シンボルを、この未解決シンボルと同
一のシンボルに対応する番地情報に分岐する分岐番地と
することにより、ライブラリ等の他に参照されるプログ
ラムを変更したり、修正しても、これらの変更等がアプ
リケーションプログラム等の他を参照するプログラムに
自動的に反映され、他を参照するプログラムの再ローデ
ィングなしに、このプログラムを実行することができ
る。また、他に参照されるプログラムのローディング
と、他を参照するプログラムのローディングとの順番を
順不同とすることができ、ローディングプログラムを簡
素化することができる。
【図1】本発明を適用した情報処理装置の具体的な構成
を示すブロック図である。
を示すブロック図である。
【図2】上記情報処理装置を構成するRAMにローディ
ングされるオブジェクトコードを具体的に示す図であ
る。
ングされるオブジェクトコードを具体的に示す図であ
る。
【図3】上記情報処理装置のローディング方法を説明す
るためのフローチャートである。
るためのフローチャートである。
【図4】上記情報処理装置のローディング方法を説明す
るためのフローチャートである。
るためのフローチャートである。
5・・・RAM 11・・・シンボルテーブル 12・・・ジャンプ先オブジェクトコード 13・・・ジャンプ元オブジェクトコード 14・・・プログラムローダ
Claims (6)
- 【請求項1】 参照情報を表すシンボルで定義されるプ
ログラムをローディングする際に、 シンボルと番地情報からなるシンボルテーブル内のシン
ボルから上記ローディングされるプログラムのシンボル
と同一シンボルを検出し、 該検出されたシンボルに対応する上記シンボルテーブル
内の番地情報を、上記プログラムがローディングされた
後の番地情報に書き換えることを特徴とするプログラム
ローディング方法。 - 【請求項2】 参照情報を表すシンボルを含むプログラ
ムをローディングする際に、 上記プログラムに含まれる解決されていない未解決シン
ボルを検出し、 シンボルと番地情報からなるシンボルテーブルを参照し
て、上記検出された未解決シンボルを、該未解決シンボ
ルと同一のシンボルに対応する番地情報に分岐する分岐
番地とすることを特徴とするプログラムローディング方
法。 - 【請求項3】 前記シンボルテーブル内の番地情報を実
行番地変更命令とすることを特徴とする請求項1記載の
プログラムローディング方法。 - 【請求項4】 前記シンボルテーブル内の番地情報を実
行番地変更命令とすることを特徴とする請求項2記載の
プログラムローディング方法。 - 【請求項5】 参照情報を表すシンボルで定義されるプ
ログラムをローディングする際に、シンボルと番地情報
からなるシンボルテーブル内のシンボルから上記ローデ
ィングされるプログラムのシンボルと同一シンボルを検
出し、該検出されたシンボルに対応する上記シンボルテ
ーブル内の番地情報を、上記プログラムがローディング
された後の番地情報に書き換えると共に、 参照情報を表すシンボルを含むプログラムをローディン
グする際に、上記プログラムに含まれる解決されていな
い未解決シンボルを検出し、上記検出された未解決シン
ボルを、該未解決シンボルと同一の上記シンボルテーブ
ル内のシンボルに対応する番地情報に分岐する分岐番地
とすることを特徴とするプログラムローディング方法。 - 【請求項6】 シンボルと番地情報からなるシンボルテ
ーブルと、 参照情報を表すシンボルで定義されるプログラムと、 参照情報を表すシンボルを含むプログラムとを記憶する
記憶手段を有し、 該記憶手段に上記シンボルで定義されるプログラムをロ
ーディングする際に、上記シンボルテーブル内のシンボ
ルから上記ローディングされるプログラムのシンボルと
同一シンボルを検出し、該検出されたシンボルに対応す
る上記シンボルテーブル内の番地情報を、上記プログラ
ムがローディングされた後の番地情報に書き換えると共
に、 上記記憶手段にシンボルを含むプログラムをローディン
グする際に、上記プログラムに含まれる解決されていな
い未解決シンボルを検出し、上記検出された未解決シン
ボルを、該未解決シンボルと同一の上記シンボルテーブ
ル内のシンボルに対応する番地情報に分岐する分岐番地
とすることを特徴とする情報処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21150893A JPH0764773A (ja) | 1993-08-26 | 1993-08-26 | プログラムローディング方法及び情報処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21150893A JPH0764773A (ja) | 1993-08-26 | 1993-08-26 | プログラムローディング方法及び情報処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0764773A true JPH0764773A (ja) | 1995-03-10 |
Family
ID=16607093
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP21150893A Withdrawn JPH0764773A (ja) | 1993-08-26 | 1993-08-26 | プログラムローディング方法及び情報処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0764773A (ja) |
-
1993
- 1993-08-26 JP JP21150893A patent/JPH0764773A/ja not_active Withdrawn
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3004013B2 (ja) | サブル―チン呼び出しおよび復帰動作を実行するための装置および方法 | |
| US6112025A (en) | System and method for dynamic program linking | |
| US7107579B2 (en) | Preserving program context when adding probe routine calls for program instrumentation | |
| EP0679273B1 (en) | Shared library locating system and method | |
| US7392527B2 (en) | Driver-specific context for kernel-mode shimming | |
| US9563446B2 (en) | Binary file generation | |
| US5418954A (en) | Method for preparing and dynamically loading context files | |
| JPH0254337A (ja) | 実行可能イメージの生成を容易とするデータ処理システム | |
| JPH0836488A (ja) | ダイナミック・パッチングを使用するランタイム・エラー・チェック方法と装置 | |
| US6907597B1 (en) | Method and apparatus for constructing an executable program in memory | |
| US6810519B1 (en) | Achieving tight binding for dynamically loaded software modules via intermodule copying | |
| US20030079210A1 (en) | Integrated register allocator in a compiler | |
| US7735076B2 (en) | Faster loading of extension-based applications using caching | |
| US20110167415A1 (en) | Language processing apparatus, language processing method, and computer program product | |
| JP2850808B2 (ja) | データ処理装置およびデータ処理方法 | |
| US6012140A (en) | Processing system, processing unit, memory and compiling method | |
| US10552135B1 (en) | Reducing a size of an application package | |
| JP3233686B2 (ja) | 命令の系列を含んでいるコンピュータプログラムを実行するためのデータ処理装置 | |
| JPH0764773A (ja) | プログラムローディング方法及び情報処理装置 | |
| KR101036675B1 (ko) | Efi 기반 펌웨어에서의 프리 efi 초기화 모듈의 전역변수 사용법 | |
| JP6691294B2 (ja) | 情報処理装置、ダイナミックリンクプログラムおよびプログラム再開方法 | |
| JP3461185B2 (ja) | ロードモジュールへのソースコード行番号登録方法および装置 | |
| CN106897588B (zh) | 一种标签函数的处理方法及装置 | |
| US6954926B1 (en) | Label address translating device | |
| US11334627B2 (en) | Data processing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20001031 |