JPS63630A - プログラム呼出し方式 - Google Patents
プログラム呼出し方式Info
- Publication number
- JPS63630A JPS63630A JP61143482A JP14348286A JPS63630A JP S63630 A JPS63630 A JP S63630A JP 61143482 A JP61143482 A JP 61143482A JP 14348286 A JP14348286 A JP 14348286A JP S63630 A JPS63630 A JP S63630A
- Authority
- JP
- Japan
- Prior art keywords
- module
- calling
- control routine
- call
- called
- 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
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
モジュールを呼出すとき、モジュール制?ff1lルー
チンから呼出し先モジュールを呼出すのではなく、一度
、呼出し元に戻し、そこから呼出すことにより、モジュ
ール制御ルーチンの領域を削減できる ゛ように
したものである。
チンから呼出し先モジュールを呼出すのではなく、一度
、呼出し元に戻し、そこから呼出すことにより、モジュ
ール制御ルーチンの領域を削減できる ゛ように
したものである。
本発明は、成るモジュールAが他のモジュールCを呼出
す際、モジュール呼出し制御ルーチンBに制御を渡し、
モジュール呼出し制御ルーチンBが他のモジュールCを
ロードし1.そのロード・アドレスを所定のレジスタR
15にセットし、しかる後に制御をモジュールAに戻し
、制御が返されると、モジュールAが上記レジスタR1
5で示されるアドレスに分岐するようになったプログラ
ム呼出し方式に関するものである。
す際、モジュール呼出し制御ルーチンBに制御を渡し、
モジュール呼出し制御ルーチンBが他のモジュールCを
ロードし1.そのロード・アドレスを所定のレジスタR
15にセットし、しかる後に制御をモジュールAに戻し
、制御が返されると、モジュールAが上記レジスタR1
5で示されるアドレスに分岐するようになったプログラ
ム呼出し方式に関するものである。
第6図は従来のプロゲラl、呼出し方式を説明する図で
ある。第6図において、Aは呼出し元モジュール、Bは
モジュール呼出し制御ルーチン、Cは呼出し先モジュー
ルをそれぞれ示している。従来のプログラム呼出し方式
では、モジュールAがモジュールCを呼出す場合、モジ
ュール呼出し制御ルーチン已に制御を渡し、モジュール
呼出し制御ルーチンBが呼出し先モジュールCに制御を
渡している。また呼出し先モジュールCから呼出し元モ
ジュールAに制御を戻す場合には、呼出し先モジュール
Cがモジュール呼出し制御ルーチンBに制御を戻し、モ
ジュール呼出し制御ルーチンBが制御を呼出し元モジュ
ールへに戻している。
ある。第6図において、Aは呼出し元モジュール、Bは
モジュール呼出し制御ルーチン、Cは呼出し先モジュー
ルをそれぞれ示している。従来のプログラム呼出し方式
では、モジュールAがモジュールCを呼出す場合、モジ
ュール呼出し制御ルーチン已に制御を渡し、モジュール
呼出し制御ルーチンBが呼出し先モジュールCに制御を
渡している。また呼出し先モジュールCから呼出し元モ
ジュールAに制御を戻す場合には、呼出し先モジュール
Cがモジュール呼出し制御ルーチンBに制御を戻し、モ
ジュール呼出し制御ルーチンBが制御を呼出し元モジュ
ールへに戻している。
第6図に示したような従来の技術では、一つのモジュー
ルから他のモジュールを呼出し、ネストが段々と大きく
なって行くと、モジュール呼出し制御ルーチンBのオー
トマチック領域が増大し、ユーザ領域を圧迫する。
ルから他のモジュールを呼出し、ネストが段々と大きく
なって行くと、モジュール呼出し制御ルーチンBのオー
トマチック領域が増大し、ユーザ領域を圧迫する。
本発明は、この点に鑑みて創作されたものであって、呼
出しのネストが深くなってもモジュール呼出し制御ルー
チンBによって使用される領域が増大しないようになっ
たプログラム呼出し方式を提供することを目的としてい
る。
出しのネストが深くなってもモジュール呼出し制御ルー
チンBによって使用される領域が増大しないようになっ
たプログラム呼出し方式を提供することを目的としてい
る。
C問題点を解決するための手段〕
第1図は本発明の原理図である。モジュールAからモジ
ュールCを呼出す時、一度、モジュール呼出し制御ルー
チンBを呼出す。呼出されたモジュール制御ルーチンF
3は、モジュールCが主記憶にロードされているか否か
を調べ、ロードされていない場合にはモジュールCを主
記憶にロードし、そのロード・アドレスをレジスタR1
5にセットし、しかる後に制御をモジュールAに戻す。
ュールCを呼出す時、一度、モジュール呼出し制御ルー
チンBを呼出す。呼出されたモジュール制御ルーチンF
3は、モジュールCが主記憶にロードされているか否か
を調べ、ロードされていない場合にはモジュールCを主
記憶にロードし、そのロード・アドレスをレジスタR1
5にセットし、しかる後に制御をモジュールAに戻す。
モジュールAは、BALRR14,R15を実行し、レ
ジスタR15で示されているアドレスに分岐する。
ジスタR15で示されているアドレスに分岐する。
第2図はコンパイラの機器構成を示す。第2図において
、1はソース・プログラム、2はコンパイラ、3はオブ
ジェクト・モジュール、4はマクロ・ライブラリをそれ
ぞれ示している。?JSN9 CA L L、は本発明
を実施するために新設されたマクロ命令であり、このマ
クロ命令に対応する命令列はマクロ・ライブラリ4に格
納されている。
、1はソース・プログラム、2はコンパイラ、3はオブ
ジェクト・モジュール、4はマクロ・ライブラリをそれ
ぞれ示している。?JSN9 CA L L、は本発明
を実施するために新設されたマクロ命令であり、このマ
クロ命令に対応する命令列はマクロ・ライブラリ4に格
納されている。
コンパイラ2は、ソース・プログラム1をオブジェクト
・モジュールにコンパイルする際、?JSN9CALL
を対応する命令列に差し換える。
・モジュールにコンパイルする際、?JSN9CALL
を対応する命令列に差し換える。
第3図は? J S N 9 CA L Lの概要を示
す図である。?JSN9CALL Module
(A)は常駐モジュールAの呼出しを表し、?JSN9
CALL Module (C)は常駐モジュールC
の呼出しを表している。また、?JSN9CALL
Module (F) Delete (0)は、非
常駐モジュールFを呼出し、且つモジュールFを実行終
了後に削除しないことを意味している。エントリ・テー
ブルには、モジュールA、B。
す図である。?JSN9CALL Module
(A)は常駐モジュールAの呼出しを表し、?JSN9
CALL Module (C)は常駐モジュールC
の呼出しを表している。また、?JSN9CALL
Module (F) Delete (0)は、非
常駐モジュールFを呼出し、且つモジュールFを実行終
了後に削除しないことを意味している。エントリ・テー
ブルには、モジュールA、B。
C9・・・のオフセントが記入される。常駐モジュール
の呼出しは、コンパイル時にそのモジュール内のオフセ
ットを決定する。セション初期処理時にLOADマクロ
命令を発行し、先頭アドレスを獲得後、BALRのみで
制御を渡すことが出来る。
の呼出しは、コンパイル時にそのモジュール内のオフセ
ットを決定する。セション初期処理時にLOADマクロ
命令を発行し、先頭アドレスを獲得後、BALRのみで
制御を渡すことが出来る。
セション終了時に、常駐モジュールに対してDELET
Eマクロを発行する。非常駐化モジュールの呼出しは、
OAPセション内で必要になった時点でモジュールを呼
出す。
Eマクロを発行する。非常駐化モジュールの呼出しは、
OAPセション内で必要になった時点でモジュールを呼
出す。
第4図は非常駐モジュールの呼出しの流れを説明する図
である。非常駐モジュールの呼出しは第3図のモジュー
ル管理モジュールによって行われる。モジュール管理モ
ジュールはモジュールEとして常駐化されている。なお
、上述のモジュール呼出し制御ルーチンとは、モジュー
ル管理モジュ−/Iz(7)ことである。起動されると
、モジュール管理モジュールは下記のような処理を行う
。
である。非常駐モジュールの呼出しは第3図のモジュー
ル管理モジュールによって行われる。モジュール管理モ
ジュールはモジュールEとして常駐化されている。なお
、上述のモジュール呼出し制御ルーチンとは、モジュー
ル管理モジュ−/Iz(7)ことである。起動されると
、モジュール管理モジュールは下記のような処理を行う
。
■ エイトリー・テーブルをサーチする。
■ 該当モジュールがあるか否かを調べる。YESのと
きは■の処理を行い、NOのときは■の処理を行う。
きは■の処理を行い、NOのときは■の処理を行う。
■ LOADマクロを発行する。
■ エントリ・テーブルに、エントリ化及びエントリ・
アドレス(ロード・アドレスと同義)をセットする。
アドレス(ロード・アドレスと同義)をセットする。
■ 言亥当モジュールのエントリ・アドレスをレジスタ
R15にセットする。
R15にセットする。
■ 呼出し元にリターンする。
第5図は非常駐モジュールの削除の流れを説明する図で
ある。
ある。
■ エントリ・テーブルをサーチする。
■ 言亥当モジ°ニールがあるか否かを調べる。YES
のときは■の処理を行い、NOのときは■の処理を行う
。
のときは■の処理を行い、NOのときは■の処理を行う
。
■ DELETEマクロを発行する。
■ エントリ・テーブルの中の1亥当するエントリ名及
びエントリ・アドレスを削除する。
びエントリ・アドレスを削除する。
■ 呼出し元にリターンする。
以」二の説明から明らかなように、本発明によれば、呼
出しのネストが深くなっても、モジュール呼出し制御ル
ーチンによるリージヨンの増大を防ぐことが出来る。
出しのネストが深くなっても、モジュール呼出し制御ル
ーチンによるリージヨンの増大を防ぐことが出来る。
第1図は本発明の原理図、第2図はコンパイラの機器構
成を示す図、第3図は?JSN9CALLの概要を示す
図、第4図は非常駐モジュールの呼出しの流れを説明す
る図、第5図は非常駐モジュールの削除の流れを示す図
、第6図は従来のプログラム呼出し方式を説明する図で
ある。 A・・・呼出し元モジュール、B・・・モジュール呼出
し制御ルーチン、C・・・呼出し先モジュール、1・・
・ソース・プログラム、2・・・コンパイラ、3・・・
オブジェクト・モジュール、4・・・マクロ・ライブラ
リ。
成を示す図、第3図は?JSN9CALLの概要を示す
図、第4図は非常駐モジュールの呼出しの流れを説明す
る図、第5図は非常駐モジュールの削除の流れを示す図
、第6図は従来のプログラム呼出し方式を説明する図で
ある。 A・・・呼出し元モジュール、B・・・モジュール呼出
し制御ルーチン、C・・・呼出し先モジュール、1・・
・ソース・プログラム、2・・・コンパイラ、3・・・
オブジェクト・モジュール、4・・・マクロ・ライブラ
リ。
Claims (1)
- モジュールAからモジュールCを呼出すとき、一度、モ
ジュール呼出し制御ルーチンBを呼出し、呼出されたモ
ジュール呼出し制御ルーチンBがモジュールCを呼出し
た後、制御をモジュールAに返し、制御が返されたモジ
ュールAが、モジュール呼出し制御ルーチンBから返却
されたモジュールCのロード・アドレスに制御を渡すこ
とを特徴とするプログラム呼出し方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61143482A JPS63630A (ja) | 1986-06-19 | 1986-06-19 | プログラム呼出し方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61143482A JPS63630A (ja) | 1986-06-19 | 1986-06-19 | プログラム呼出し方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS63630A true JPS63630A (ja) | 1988-01-05 |
Family
ID=15339728
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61143482A Pending JPS63630A (ja) | 1986-06-19 | 1986-06-19 | プログラム呼出し方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS63630A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02137029A (ja) * | 1988-11-18 | 1990-05-25 | Fujitsu Ltd | プログラム制御方式 |
| JPH04147337A (ja) * | 1990-10-10 | 1992-05-20 | Fujitsu Ltd | モジュール結合装置 |
-
1986
- 1986-06-19 JP JP61143482A patent/JPS63630A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02137029A (ja) * | 1988-11-18 | 1990-05-25 | Fujitsu Ltd | プログラム制御方式 |
| JPH04147337A (ja) * | 1990-10-10 | 1992-05-20 | Fujitsu Ltd | モジュール結合装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| BR0014042A (pt) | Método e sistema para uso de preferências da pessoa que telefona para direcionar tratamento especial da chamada | |
| US6101326A (en) | Method and apparatus for frame elimination for simple procedures with tail calls | |
| WO1989001203A1 (en) | Mimd computer system | |
| JPS63630A (ja) | プログラム呼出し方式 | |
| JPH04155443A (ja) | 実行時獲得領域のアドレス取得方法 | |
| JPS6156815B2 (ja) | ||
| JP3018359B2 (ja) | オンライン呼情報トレース方式 | |
| JPH0465717A (ja) | プログラム呼び出し方法 | |
| JPS63311439A (ja) | コ−ル・リタ−ン方式 | |
| JPS63106047A (ja) | 動的サブル−チン呼び出し方式 | |
| JPH0573325A (ja) | プログラムロード方式 | |
| JPH0264756A (ja) | システム立上げ方式 | |
| JPH05216649A (ja) | システムプログラム動的変更方式 | |
| JPH01112447A (ja) | 内部ファイル名の付加方式 | |
| JPH04147337A (ja) | モジュール結合装置 | |
| JPH04363721A (ja) | プログラム入替え方式 | |
| JPH06266539A (ja) | デバッグ用ロードモジュールの再作成に好適なリンク装置およびリンク方法 | |
| JPH0452491B2 (ja) | ||
| JPH0353319A (ja) | 動的機能着脱形プログラム編集方式 | |
| JPH0343829A (ja) | 追加ロジック挿入方式 | |
| KR970068410A (ko) | 우선 순위 가입자의 중계선 호 처리 방법 | |
| JPH0743652B2 (ja) | 並列実行プログラム翻訳処理方式 | |
| JP2000330768A (ja) | 実行可能プログラムの入口設定方法 | |
| JPH083792B2 (ja) | 関数呼び出し処理方法 | |
| JPH03177930A (ja) | コンパイルコード生成処理方法 |