JPH04336327A - オブジェクト・プログラムのリンク方式 - Google Patents
オブジェクト・プログラムのリンク方式Info
- Publication number
- JPH04336327A JPH04336327A JP3107736A JP10773691A JPH04336327A JP H04336327 A JPH04336327 A JP H04336327A JP 3107736 A JP3107736 A JP 3107736A JP 10773691 A JP10773691 A JP 10773691A JP H04336327 A JPH04336327 A JP H04336327A
- Authority
- JP
- Japan
- Prior art keywords
- procedure
- parameter list
- calling
- called
- call
- 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
- 238000000034 method Methods 0.000 claims abstract description 71
- 238000006243 chemical reaction Methods 0.000 claims abstract description 16
- 238000010586 diagram Methods 0.000 description 6
- 238000007796 conventional method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、同じ言語又は異なる言
語のコンパイラによって生成された、パラメータ・リス
トの形式が異なるオブジェクト・プログラムのリンクに
関するものである。
語のコンパイラによって生成された、パラメータ・リス
トの形式が異なるオブジェクト・プログラムのリンクに
関するものである。
【0002】
【従来の技術】同じ言語又は異なる言語のコンパイラに
よって生成され、パラメータ・リストの形式が異なる手
続きを呼び出す場合、利用者が呼び出す側か呼び出され
る側か、あるいはその両者のソース中にパラメータ・リ
ストの形式が異なる手続き呼び出しが存在することを記
述したり、コンパイラにオプションを指定することによ
り、コンパイラがパラメータ・リストの形式が同じであ
るようなオブジェクト・プログラムを生成することによ
って実現していた。
よって生成され、パラメータ・リストの形式が異なる手
続きを呼び出す場合、利用者が呼び出す側か呼び出され
る側か、あるいはその両者のソース中にパラメータ・リ
ストの形式が異なる手続き呼び出しが存在することを記
述したり、コンパイラにオプションを指定することによ
り、コンパイラがパラメータ・リストの形式が同じであ
るようなオブジェクト・プログラムを生成することによ
って実現していた。
【0003】
【発明が解決しようとする課題】パラメータ・リストの
形式の異なる手段を呼び出す場合、従来の方式だと利用
者は、呼び出す側や呼び出される側のオブジェクト・プ
ログラムを変更しなけれらず、そのためオブジェクト・
プログラムの汎用性が失われていた。
形式の異なる手段を呼び出す場合、従来の方式だと利用
者は、呼び出す側や呼び出される側のオブジェクト・プ
ログラムを変更しなけれらず、そのためオブジェクト・
プログラムの汎用性が失われていた。
【0004】本発明を処理系が用意することにより、利
用者はパラメータ・リストの形式の異なる手続きを意識
することなくリンクでき、また呼び出す側も呼び出され
る側もオブジェクトを変更する必要がなくなる。
用者はパラメータ・リストの形式の異なる手続きを意識
することなくリンクでき、また呼び出す側も呼び出され
る側もオブジェクトを変更する必要がなくなる。
【0005】
【課題を解決するための手段】本発明のオブジェクトプ
ログラムのリンク方式は、手続き呼び出しに関して、パ
ラメータ・リストの形式が複数個あるような計算機シス
テムにおいて、あるコンパイラによって生成されたパラ
メータ・リストの形式を持つ手続き呼び出しと、別のコ
ンパイラによって生成された別のパラメータ・リストの
形式を持つ手続き呼び出しとをリンクする際に、パラメ
ータ・リストの形式が異なる呼び出す側と呼び出される
側との組合わせに対し、変換が必要と認識される場合に
、呼び出す側の手続きのパラメータ・リスト形式を、呼
び出される側の手続きのパラメータ・リストの形式に変
換するパラメータ・リスト形式変換手段と、利用者がオ
プションで指定することにより、呼び出し側と呼び出さ
れる側とのパラメータ・リスト形式の組合せを認識する
オプション解析手段と、呼び出す側の手続きから、上記
の認識した組合せに応じたパラメータ・リスト形式を変
換する手段を呼び出し、その変換手段でパラメータ・リ
ストを変換した後、呼び出される側の手続きを呼び出す
ようにリンクを張り替える間接手続き呼び出しリンク手
段とを備えて構成される。
ログラムのリンク方式は、手続き呼び出しに関して、パ
ラメータ・リストの形式が複数個あるような計算機シス
テムにおいて、あるコンパイラによって生成されたパラ
メータ・リストの形式を持つ手続き呼び出しと、別のコ
ンパイラによって生成された別のパラメータ・リストの
形式を持つ手続き呼び出しとをリンクする際に、パラメ
ータ・リストの形式が異なる呼び出す側と呼び出される
側との組合わせに対し、変換が必要と認識される場合に
、呼び出す側の手続きのパラメータ・リスト形式を、呼
び出される側の手続きのパラメータ・リストの形式に変
換するパラメータ・リスト形式変換手段と、利用者がオ
プションで指定することにより、呼び出し側と呼び出さ
れる側とのパラメータ・リスト形式の組合せを認識する
オプション解析手段と、呼び出す側の手続きから、上記
の認識した組合せに応じたパラメータ・リスト形式を変
換する手段を呼び出し、その変換手段でパラメータ・リ
ストを変換した後、呼び出される側の手続きを呼び出す
ようにリンクを張り替える間接手続き呼び出しリンク手
段とを備えて構成される。
【0006】
【実施例】以下、本発明をその実施例を示す図面に基づ
き詳細に説明する。
き詳細に説明する。
【0007】図1は、本発明の一実施例の構成を示すブ
ロック図である。図1を参照すると、本実施例は、手続
き1及び手続き2と、パラメータ・リスト形式変換手段
3と、間接手続き呼び出しリンク手段4と、入力部5と
、オプション解析手段6と、実行可能プログラム7とか
ら構成される。手続き1と手続き2とは、異なるコンパ
イラによって作られた、異なるパラメータ形式を持つオ
ブジェクト・プログラムである。パラメータ・リスト形
式変換手段73は手続き71から手続き72を呼び出す
為のパラメータ・リスト形式変換手段である。
ロック図である。図1を参照すると、本実施例は、手続
き1及び手続き2と、パラメータ・リスト形式変換手段
3と、間接手続き呼び出しリンク手段4と、入力部5と
、オプション解析手段6と、実行可能プログラム7とか
ら構成される。手続き1と手続き2とは、異なるコンパ
イラによって作られた、異なるパラメータ形式を持つオ
ブジェクト・プログラムである。パラメータ・リスト形
式変換手段73は手続き71から手続き72を呼び出す
為のパラメータ・リスト形式変換手段である。
【0008】間接手続き呼び出しリンク手段4は、従来
方式のリンク機能を含むものとする。
方式のリンク機能を含むものとする。
【0009】入力部5は本方式でリンクを行う際に指定
するオプションを入力するための入力装置である。
するオプションを入力するための入力装置である。
【0010】オプション解析手段6は、上記入力部5か
ら入力されたオプションにより、呼び出す側の手続きと
呼び出される側の手続きを認識するオプション解析手段
である。
ら入力されたオプションにより、呼び出す側の手続きと
呼び出される側の手続きを認識するオプション解析手段
である。
【0011】実行可能プログラム7は、本方式によって
生成される実行可能なプログラムである。
生成される実行可能なプログラムである。
【0012】次に、本発明の図1に示す実施例を、図1
を用いて説明する。
を用いて説明する。
【0013】間接手続き呼び出しリンク手段4は、オプ
ション解析手段6によって手続き1から手続き2をその
まま呼び出すことができないということを認識すると、
そのオプションに応じ手続き1のパラメータ形式を手続
き2のパラメータ形式に変換するパラメータ・リスト形
式変換手段3を用いて、手続き71からパラメータ・リ
スト形式変換手段73を呼び出し、パラメータ・リスト
形式変換手段73から手続き72を呼び出すようにリン
クを張り替える。従来の実行時の呼び出し順は図2のよ
うに手続き81から直接手続き82を呼び出すが、本方
式を適用したものは、図3のよう手続き71からパラメ
ータ・リスト形式変換手段73を呼び出し、そこから手
続き72を呼び出す。
ション解析手段6によって手続き1から手続き2をその
まま呼び出すことができないということを認識すると、
そのオプションに応じ手続き1のパラメータ形式を手続
き2のパラメータ形式に変換するパラメータ・リスト形
式変換手段3を用いて、手続き71からパラメータ・リ
スト形式変換手段73を呼び出し、パラメータ・リスト
形式変換手段73から手続き72を呼び出すようにリン
クを張り替える。従来の実行時の呼び出し順は図2のよ
うに手続き81から直接手続き82を呼び出すが、本方
式を適用したものは、図3のよう手続き71からパラメ
ータ・リスト形式変換手段73を呼び出し、そこから手
続き72を呼び出す。
【0014】最後に、パラメータ・リスト形式変換手段
3の実行時の変換方法について、手続き1及び手続き2
がそれぞれ図4、図5のような形式のパラメータ・リス
トを持つ場合を仮定して説明する。
3の実行時の変換方法について、手続き1及び手続き2
がそれぞれ図4、図5のような形式のパラメータ・リス
トを持つ場合を仮定して説明する。
【0015】図4を見ると手続き1のパラメータ・リス
トの形式は、パラメータの個数、パラメータ・リストの
語数、パラメータのポインタ、パラメータの大きさを示
す語へのポインタの順になっている。手続き1は手続き
呼び出しをするとき、実引数のリストをこの図4の形式
で持ち、このリストの先頭のアドレスを呼び出される手
続きに渡すことにより、引数を渡しているものとする。
トの形式は、パラメータの個数、パラメータ・リストの
語数、パラメータのポインタ、パラメータの大きさを示
す語へのポインタの順になっている。手続き1は手続き
呼び出しをするとき、実引数のリストをこの図4の形式
で持ち、このリストの先頭のアドレスを呼び出される手
続きに渡すことにより、引数を渡しているものとする。
【0016】図5を見ると手続き2のパラメータ・リス
トの形式は、パラメータの値が直接入っているもので、
手続き2は呼び出されたとき、渡された引数リストのア
ドレスに図5の形式のパラメータ・リストがあるものと
解釈して、そのパラメータリストの領域の値を直接使う
ものとする。
トの形式は、パラメータの値が直接入っているもので、
手続き2は呼び出されたとき、渡された引数リストのア
ドレスに図5の形式のパラメータ・リストがあるものと
解釈して、そのパラメータリストの領域の値を直接使う
ものとする。
【0017】従って、手続き1と手続き2とは、このま
までは正しくリンクできない。このときパラメータ・リ
スト形式変換手段3の動作は、次のようになる。まず手
続き1のパラメータ・リストから、実引数の個数を読み
込む。次に各々のパラメータのサイズを読み込み、その
合計を計算し、そのサイズ分の領域を確保する。次にパ
ラメータのポインタが指すパラメータの値を読み込み、
先程確保した領域にコピーする。最後に、確保した領域
の先頭のポインタをパラメータ・リストの先頭であるも
のとして、手続き2に制御を渡す。
までは正しくリンクできない。このときパラメータ・リ
スト形式変換手段3の動作は、次のようになる。まず手
続き1のパラメータ・リストから、実引数の個数を読み
込む。次に各々のパラメータのサイズを読み込み、その
合計を計算し、そのサイズ分の領域を確保する。次にパ
ラメータのポインタが指すパラメータの値を読み込み、
先程確保した領域にコピーする。最後に、確保した領域
の先頭のポインタをパラメータ・リストの先頭であるも
のとして、手続き2に制御を渡す。
【0018】
【発明の効果】本発明により、利用者は呼び出す側のオ
ブジェクト・プログラムも呼び出される側のオブジェク
ト・プログラムも変更することなしに、パラメータ・リ
ストの形式の異なる手続きを呼び出すことができるよう
になる。
ブジェクト・プログラムも呼び出される側のオブジェク
ト・プログラムも変更することなしに、パラメータ・リ
ストの形式の異なる手続きを呼び出すことができるよう
になる。
【図1】本発明の一実施例の構成を示すブロック図
【図
2】本実施例の手続き呼び出しインタフェースの一例を
示すブロック図
2】本実施例の手続き呼び出しインタフェースの一例を
示すブロック図
【図3】本実施例の手続き読み出しインタフェースの一
例を示すブロック図
例を示すブロック図
【図4】本実施例のパラメータリストの一例を示すブロ
ック図
ック図
【図5】本実施例のパラメータリストの一例を示すブロ
ック図
ック図
【符号の説明】
1 手続き
2 手続き
3 パラメータ・リスト形式変換手段4
間接手続き呼び出しリンク手段5 入力部 6 オプション解析手段 7 実行可能プログラム
間接手続き呼び出しリンク手段5 入力部 6 オプション解析手段 7 実行可能プログラム
Claims (1)
- 【請求項1】 手続き呼び出しに関して、パラメータ
・リストの形式が複数個あるような計算機システムにお
いて、あるコンパイラによって生成されたパラメータ・
リストの形式を持つ手続き呼び出しと、別のコンパイラ
によって生成された別のパラメータ・リストの形式を持
つ手続き呼び出しとをリンクする際に、パラメータ・リ
ストの形式が異なる呼び出す側と呼び出される側との組
合わせに対し、変換が必要と認識される場合に、呼び出
す側の手続きのパラメータ・リスト形式を、呼び出され
る側の手続きのパラメータ・リストの形式に変換するパ
ラメータ・リスト形式変換手段と、利用者がオプション
で指定することにより、呼び出し側と呼び出される側と
のパラメータ・リスト形式の組合せを認識するオプショ
ン解析手段と、呼び出す側の手続きから、上記の認識し
た組合せに応じたパラメータ・リスト形式を変換する手
段を呼び出し、その変換手段でパラメータ・リストを変
換した後、呼び出される側の手続きを呼び出すようにリ
ンクを張り替える間接手続き呼び出しリンク手段とを備
えて成ることを特徴とするオブジェクト・プログラムの
リンク方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3107736A JPH04336327A (ja) | 1991-05-14 | 1991-05-14 | オブジェクト・プログラムのリンク方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3107736A JPH04336327A (ja) | 1991-05-14 | 1991-05-14 | オブジェクト・プログラムのリンク方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04336327A true JPH04336327A (ja) | 1992-11-24 |
Family
ID=14466650
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3107736A Pending JPH04336327A (ja) | 1991-05-14 | 1991-05-14 | オブジェクト・プログラムのリンク方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04336327A (ja) |
-
1991
- 1991-05-14 JP JP3107736A patent/JPH04336327A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6253371B1 (en) | Method for supporting parallelization of source program | |
| JPH08263299A (ja) | プログラム変換方法 | |
| JPS62216040A (ja) | プリコンパイラ・コンパイラ呼出し制御方式 | |
| JP2768073B2 (ja) | プログラム間相互呼出し方式 | |
| JPH0430239A (ja) | コマンドオプション指定処理装置 | |
| JPH025136A (ja) | 言語処理プログラムのエラー処理方式 | |
| JPH01121939A (ja) | プログラム変換方式 | |
| JP2601541B2 (ja) | Fortran入出力並び処理方式 | |
| JPH0223428A (ja) | コマンド型エンドユーザ言語の翻訳型実行方式 | |
| JPH0580998A (ja) | 翻訳処理方式 | |
| JPS62216041A (ja) | コマンドによるコンパイラ起動処理方式 | |
| JPH0340033A (ja) | 呼び出し元のコード系認識処理方式 | |
| JPH03235135A (ja) | プログラムの自動検査方式 | |
| JPH0358232A (ja) | プリプロセッサ呼び出し方式 | |
| JPH0588876A (ja) | 編集プログラム実行時における表示変更方法 | |
| JPH044434A (ja) | プログラムのトレース方法 | |
| JPH0580992A (ja) | 手続き・関数関連図出力方式 | |
| JPH0314039A (ja) | 命令変換単体テスト支援方式 | |
| JPH05181652A (ja) | プログラムリバース装置 | |
| JPH06110702A (ja) | 手続き呼出し翻訳装置 | |
| JPH05127945A (ja) | プログラム実行状況解析方式 | |
| JPH036624A (ja) | 複数コード系に対応する翻訳リスト出力処理方式 | |
| JPH0193826A (ja) | 高級言語プログラムのダイナミックステップカウント方式 | |
| JPH04209029A (ja) | 並列処理プログラム翻訳処理装置 | |
| JPH04338841A (ja) | デバッガ装置 |