JPS62171034A - Subroutine link system - Google Patents

Subroutine link system

Info

Publication number
JPS62171034A
JPS62171034A JP1194586A JP1194586A JPS62171034A JP S62171034 A JPS62171034 A JP S62171034A JP 1194586 A JP1194586 A JP 1194586A JP 1194586 A JP1194586 A JP 1194586A JP S62171034 A JPS62171034 A JP S62171034A
Authority
JP
Japan
Prior art keywords
subroutine
program
linkage
link
library
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
JP1194586A
Other languages
Japanese (ja)
Inventor
Megumi Kondo
恵 近藤
Kazuhiko Fukuoka
福岡 和彦
Fumiya Murata
村田 文也
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP1194586A priority Critical patent/JPS62171034A/en
Publication of JPS62171034A publication Critical patent/JPS62171034A/en
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

PURPOSE:To obtain a link system which has the short link execution time, less memory capacity and a flexible linkage between a program and a subrou tine by permitting a subroutine number to introduce a linkage subroutine and to link subroutines, instead of a memory address. CONSTITUTION:For calling a system common subroutine sub3, an A program 1 is generated and compiled to generate an object module OM. The generated OM and a linkage subroutine library 6 are specified to link-edit, whereby a load module including the linkage subroutine 4a is generated. The name of the subroutine 4a is the same as that of a subroutine main body 3. The subrou tine 4a knows a subroutine number 9, refers to a jump table 7 with the value (n) as an index, obtains the load address of the subroutine main body 3, and jumps to it.

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明は複数のプログラムからコールされるサブルーチ
ンのリンク方式に関し、特にリンク実行時間が短く、所
要メモリ量の少ないサブルーチンリンク方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a method for linking subroutines called from a plurality of programs, and particularly relates to a method for linking subroutines that takes a short link execution time and requires a small amount of memory.

[従来の技術] サブルーチンのリンクに関する従来方式の一つは、サブ
ルーチンをコールするプログラムをコンパイルし、ロー
ド・モジュールを作成する際にそれらをリンクするスタ
ティック・リンク方式である。この方式の公知例として
は米国UNIX社の言語11 CJ+のコンパイラがあ
る。
[Prior Art] One of the conventional methods for linking subroutines is a static linking method in which a program that calls a subroutine is compiled and the programs are linked when creating a load module. A known example of this method is a compiler for the language 11 CJ+ of UNIX Corporation in the United States.

この方式では、サブルーチンを作成し、オブジェクト・
モジュールに変換したものをライブラリ・ファイルに格
納するようにしている。一方このサブルーチンをコール
するプログラム側では、先ずプログラムをコンパイルし
てオブジェクト・モジュールを作り1次いでこのオブジ
ェクト・モジュールとサブルーチン・ライブラリをリン
クエディツトすることによってロード・モジュールを作
成する。この際、ロード・モジュールにはサブルーチン
の本体も含まれることになる。その結果、該当サブルー
チンをコールするプログラムがn個あるとすれば、n個
の各ロードモジュール内にサブルーチンの本体が存在す
ることになる。即ち上記方式によれば、プログラムのロ
ードモジュールを格納するために大きなディスク容量を
要し、プログラム実行時にロードされるメモリ容量も大
きくなるという問題がある。
In this method, you create a subroutine and
The converted module is stored in a library file. On the other hand, the program that calls this subroutine first compiles the program to create an object module, and then link-edits the object module and the subroutine library to create a load module. In this case, the load module also includes the main body of the subroutine. As a result, if there are n programs that call the corresponding subroutine, the main body of the subroutine will exist in each of the n load modules. That is, according to the above method, there is a problem that a large disk capacity is required to store the load module of the program, and the memory capacity loaded when the program is executed also becomes large.

サブルーチン・リンクに関する他の方式としては、例え
ば日立製作所のHITACシリーズ、VO33スーパバ
イザマイクロ・マニュアル(昭和55年)に論じられて
いるダイナミック・リンク方式がある。
Other methods for subroutine linking include, for example, the dynamic linking method discussed in Hitachi's HITAC series, VO33 Supervisor Micro Manual (1980).

この方式では、プログラム実行中でサブルーチンコール
がまさに行なわれようとする時点で、サブルーチンのロ
ーディングが行なわれる。プログラムの実行シーケンス
は次の様になる。
In this method, a subroutine is loaded at the point during program execution when a subroutine call is about to be made. The program execution sequence is as follows.

(1)サブルーチンのロード(L OA D)(2)サ
ブルーチンのコール (3)サブルーチンのコール(何度繰返してもよい)(
4)サブルーチンの消去(DELETE)この場合、1
つのサブルーチンをコールするプログラムがn個実行中
であれば、ロードと消去はそれぞれ1回発行されなけれ
ばならない。但し、或プログラムからロード指示を出し
た場合に、他のプログラムが該当サブルーチンをロード
済であれば、改めてロードする必要はない。しかし、或
プログラムからサブルーチン消去指示を出した場合に他
プログラムが当該サブルーチンを使用中であれば、実際
に消去動作をしてはならない、これらの制御を行なうた
めにはロード処理と消去処理とをそれぞれ単独で行なう
ことは許されず、ロードまたは消去の指示が出されるた
びにO8(オペレーティングシステム)が動作し、ロー
ドあるいは消去をすべきか否かの判定と、それに付随す
る処理を実行する必要がある。
(1) Loading a subroutine (LOAD) (2) Calling a subroutine (3) Calling a subroutine (can be repeated any number of times) (
4) Delete subroutine (DELETE) In this case, 1
If n programs calling one subroutine are being executed, each load and erase must be issued once. However, when a load instruction is issued from a certain program, if another program has already loaded the corresponding subroutine, there is no need to load it again. However, when a subroutine deletion instruction is issued from a certain program, if another program is using the subroutine, the deletion operation must not actually be performed. It is not allowed to perform each operation independently; each time a loading or erasing instruction is issued, the O8 (operating system) must run to determine whether or not to load or erase and execute the associated processing. .

[発明が解決しようとする問題点] 上述した従来のスタティック・リンク方式を採用すると
、サブルーチンリンクの実行は、実質的に一つの命令(
JSR:ジャンプサブルーチン)を実行すれば良いため
、処理は高速に行なえる。
[Problems to be Solved by the Invention] When the above-described conventional static linking method is adopted, subroutine linking can be executed using virtually one instruction (
Since it is only necessary to execute a jump subroutine (JSR), processing can be performed at high speed.

しかしながら、コールするプログラムの数だけサブルー
チンの実体が複製されるため、これを格納するディスク
容量、プログラム実行時に必要なメモリ量が大きくなる
。また、サブルーチンの内容を変更する場合には、それ
をコールする全てのプログラムで再度リンクディットす
る必要があるため、プログラムとサブルーチンの関係が
非常に″硬い”ものとなってしまう。
However, since the substance of the subroutine is duplicated by the number of called programs, the disk capacity for storing it and the amount of memory required for executing the program increase. Furthermore, when changing the contents of a subroutine, it is necessary to relink it in all programs that call it, so the relationship between programs and subroutines becomes very "rigid."

一方、ダイナミック・リンク方式を採用すると、サブル
ーチンの実体をメモリ上に一個しか必要としないため、
メモリ容量は少なくて済む。また。
On the other hand, when using the dynamic link method, only one subroutine entity is required in memory, so
Only a small amount of memory is required. Also.

プログラムとサブルーチンとのリンクがプログラム実行
時に行なわれるため、サブルーチンの名称さえ同じにし
ておけば、仮にサブルーチンの内容が変った場合でも、
コールするプログラムを変更したりリンクエディツトし
直す必要はない。
Since the link between a program and a subroutine is done when the program is executed, as long as the name of the subroutine remains the same, even if the contents of the subroutine change,
There is no need to change or link-edit the calling program.

しかしながら、各プログラム毎に、コールする荊にロー
ド指示を出し、最後に消去指示を出さねばならず、しか
も、これらの指示を実行するためにはO8の介在を必要
とする。ユーザプログラムからO8に入り、再びユーザ
プログラムに戻るためには、典型的なO8の場合で数百
ステップ程度の命令を実行する必要がある。従って、ダ
イナミック・リンク方式はリンケージが1重い″という
欠点がある。今一つの問題は、ダイナミック・リンク方
式が採用される場合でも、全てのサブルーチンがダイナ
ミック・リンクにできる訳ではなく。
However, for each program, a load instruction must be issued to the calling program, and finally an erase instruction must be issued, and furthermore, the intervention of O8 is required to execute these instructions. In order to enter O8 from a user program and return to the user program again, it is necessary to execute several hundred steps of instructions in a typical O8 case. Therefore, the dynamic link method has the disadvantage that the linkage is 1 heavy. Another problem is that even if the dynamic link method is adopted, not all subroutines can be dynamically linked.

一部にスタティック・リンク方式が混在する点にある。The problem lies in the fact that some static link methods are mixed.

このため、サブルーチンコールする側が、相手がスタテ
ィック・リンクであるかダイナミックリンクであるかを
知って書き分ける必要がある。
For this reason, it is necessary for the subroutine caller to know whether the other party is a static link or a dynamic link and write the subroutine accordingly.

本発明の目的はリンク実行時間が短く、サブルーチン本
体を格納するメモリ容量が少なく、かつプログラムとサ
ブルーチンの結合が“軟らかい”サブルーチンリンク方
式を提供することにある。
SUMMARY OF THE INVENTION An object of the present invention is to provide a subroutine linking method in which link execution time is short, the memory capacity for storing the subroutine body is small, and the connection between a program and a subroutine is "soft."

つまり本発明は、コールするプログラムに影響を及ぼす
ことなくサブルーチンの内容を変更でき。
In other words, the present invention allows the contents of a subroutine to be changed without affecting the calling program.

しかもサブルーチンがダイナミックにリンクされるかス
タティックにリンクされるかをコール側が意識する必要
のないサブルーチン・リンク方式を提供するものである
Moreover, it provides a subroutine linking method in which the caller does not need to be aware of whether a subroutine is dynamically linked or statically linked.

[問題を解決するための手段] 上記問題点を解決するために、本発明では2つの手段を
採用する。その一つはリンケージ用サブルーチンの導入
であり、他の一つは、サブルーチンとの結合をメモリア
ドレスではなくサブルーチン番号で行なうことである。
[Means for Solving the Problems] In order to solve the above problems, the present invention employs two means. One of these is the introduction of a subroutine for linkage, and the other is to link with subroutines using subroutine numbers rather than memory addresses.

[作用コ 複数のプログラムからコールされるサブルーチンの作成
者は、当該サブルーチンを作成する際にユニークなサブ
ル−チン番号を定める。また、このサブルーチンには付
随してリンケージ用サブルーチンを作成する。リンケー
ジ用サブルーチンの役割は、コールするプログラムとス
タティックにリンクされて、その内部から上記サブルー
チン番号をキーとしてジャンプテーブルを引くことによ
り、サブルーチン本体にジャンプすることにある。
[Effect: The creator of a subroutine called by multiple programs determines a unique subroutine number when creating the subroutine. Additionally, a linkage subroutine is created in conjunction with this subroutine. The role of the linkage subroutine is to be statically linked with the calling program and to jump to the subroutine itself by drawing a jump table from within the program using the subroutine number as a key.

サブルーチンのローディング、すなわちメモリ上に実行
可能な形に格納する動作は、サブルーチンコールの実行
と無関係に行なえる。従って、サブルーチン番号に変更
がなければ、サブルーチン本体の内容変更、あるいはサ
ブルーチンのメモリ上のローディングアドレスの変更が
あっても、コールする側のプログラムを変更する必要は
ない。
Loading a subroutine, that is, storing it in an executable form on memory, can be performed independently of the execution of a subroutine call. Therefore, if the subroutine number is not changed, there is no need to change the calling program even if the contents of the subroutine itself or the loading address of the subroutine in memory is changed.

但し、後者の場合には、ジャンプテーブルの内容だけは
書換える必要がある。
However, in the latter case, only the contents of the jump table need to be rewritten.

[実施例] 以下、本発明の一実施例について図面を参照して説明す
る。
[Example] Hereinafter, an example of the present invention will be described with reference to the drawings.

第1図は本発明の基本概念を表わす図である。FIG. 1 is a diagram representing the basic concept of the present invention.

複数のシステムに共通のサブルーチンを作成する場合、
作成者はサブルーチン3を作成し、サブルーチンライブ
ラリ5に登録する。その時1作成者はリンケージ用サブ
ルーチン4も作成し、リンケージ用サブルーチンライブ
ラリ6に登録する。また、上記サブルーチン3に固有の
サブルーチン番号(n)を決め、システム空間上の配置
、すなわちどのアドレスに置くかを決める。サブルーチ
ンの名称、サブルーチン番号、アドレス、サイズ等はサ
ブルーチン管理ファイル8に記憶される。
When creating subroutines common to multiple systems,
The creator creates a subroutine 3 and registers it in the subroutine library 5. At that time, the creator 1 also creates a linkage subroutine 4 and registers it in the linkage subroutine library 6. Furthermore, a subroutine number (n) unique to the subroutine 3 is determined, and its location in the system space, that is, at which address it is placed, is determined. The subroutine name, subroutine number, address, size, etc. are stored in the subroutine management file 8.

上記サブルーチンは、システム立上げ後、プログラムが
これをコールするまでの適当な時点でローディングされ
る。即ち、サブルーチンライブラリ5の内容は、サブル
ーチン管理ファイル8を参照しながら、システム空間の
所定のアドレス以降にコピーされ、同時にジャンプテー
ブル7にサブルーチン番号と対応させてサブルーチンの
アドレスが書込まれる。
The above subroutine is loaded at an appropriate time after system startup until the program calls it. That is, the contents of the subroutine library 5 are copied starting from a predetermined address in the system space while referring to the subroutine management file 8, and at the same time, the address of the subroutine is written in the jump table 7 in correspondence with the subroutine number.

次に、サブルーチンをコールする場合について説明する
。ここでは、複数プログラム(例えばプログラム1とB
プログラム2)がそれぞれ独立のユーザ仮想空間で動い
ており、システム空間を共用している場合、つまり、ど
のプログラムから見てもシステム空間が同じアドレスに
見えるシステムを前提として、システム共通サブルーチ
ン(名前を仮にsubとする)3をコールする1つのプ
ログラム(例えばAプログラム)について考える。
Next, the case of calling a subroutine will be explained. Here, multiple programs (for example, programs 1 and B)
If programs 2) are running in independent user virtual spaces and sharing the system space, in other words, the system space looks like the same address from every program, system common subroutines (names Let us consider one program (for example, program A) that calls 3 (let's say sub).

先ずAプログラムを作成し、コンパイルすることによっ
てオブジェクト・モジュールを作成する。
First, program A is created and compiled to create an object module.

こうしてできたオブジェクト・モジュールとリンケージ
用サブルーチンライブラリ6を指定し、リンク・エディ
ッ1〜することによってリンケージ用サブルーチン4a
を含むロードモジュール1を作成する。ここでリンケー
ジ・サブルーチンの名称はサブルーチン本体3と同じに
しておく。第1図では、説明の都合上1両者の名前をs
ub、sub’の様に区別している。実際のロードモジ
ュールには、リンケージ用サブルーチンしかリンクされ
ていないが、コールするプログラムから見ると、サブル
ーチン本体とリンクされた場合と区別がつかない。
By specifying the object module created in this way and the linkage subroutine library 6, and performing link editing 1~, the linkage subroutine 4a
Create load module 1 that includes. Here, the name of the linkage subroutine is the same as that of the subroutine body 3. In Figure 1, for convenience of explanation, the names of both parties are s.
They are distinguished as ub and sub'. In the actual load module, only the linkage subroutine is linked, but from the perspective of the calling program, it is indistinguishable from the case where the subroutine itself is linked.

リンケージ用サブルーチン4aでは、サブルーチン番号
9(値をnとする)を知っており、nをインデックスと
してジャンプテーブル7を引くことにより、サブルーチ
ン本体のロードアドレスを求めてそこにジャンプする。
The linkage subroutine 4a knows the subroutine number 9 (the value is n), looks up the jump table 7 using n as an index, finds the load address of the subroutine body, and jumps there.

リンケージ用サブルーチンのプログラムの1例を第2図
に示す。1行目(Ll)はサブルーチン番号の定義であ
り、本例の場合は10である。2行目(L2)はジャン
プテーブルのアドレス計算であり、ジャンプテーブルの
先頭アドレス(JUMPTABLE)にサブルーチン番
号を4倍して加えたアドレスであることを示し、それを
aOレジスタに入れる。3行目(L3)はエラーチェッ
クであり、ジャンプアドレスの内容がII O#tか否
かを判別する。もし“0″ならば4行目の(L/−4)
の判定ステートメントから7行目(Ll)に分に分岐す
る。ジャンプアドレスの内容が710”ということは、
そのサブルーチン番号に対応したサブルーチンが未登録
であることを意味している。
An example of a linkage subroutine program is shown in FIG. The first line (Ll) defines the subroutine number, which is 10 in this example. The second line (L2) calculates the address of the jump table, and indicates that the address is the start address (JUMPTABLE) of the jump table plus the subroutine number multiplied by 4, and stores it in the aO register. The third line (L3) is an error check, and it is determined whether the content of the jump address is IIO#t. If “0”, the 4th line (L/-4)
The process branches to line 7 (Ll) from the judgment statement. The content of the jump address is 710", which means
This means that the subroutine corresponding to that subroutine number has not been registered.

8行目(L8)でdOレジスタに「−1」を代入  、
し、9行目(L9)でコール側に戻る。8行目(L8)
でdoレジスタに設定した値は、サブルーチンをコール
した側ではサブルーチンのリターン値として見えるので
、コール値によりエラーが発生したか否かを判別できる
Assign “-1” to the dO register on the 8th line (L8),
Then, on the 9th line (L9), the process returns to the calling side. 8th line (L8)
The value set in the do register in step 1 can be seen as the return value of the subroutine on the side that called the subroutine, so it is possible to determine whether an error has occurred based on the call value.

5行目(L5)でジャンプテーブルの内容、即ちサブル
ーチンの格納アドレスをaOレジスタに入れた後、aO
レジスタの指すアドレスにジャンプする。これにより、
サブルーチン本体にリンクできる。サブルーチン本体の
最後の部分で、第2図の9行目と同じrts命令(re
turn fromsubroutine)を実行する
と、サブルーチンを直接コールしたプログラムに制御が
戻る。
In the fifth line (L5), after putting the contents of the jump table, that is, the storage address of the subroutine into the aO register, the aO
Jump to the address pointed to by the register. This results in
Can be linked to the subroutine body. In the last part of the subroutine body, the same rts instruction (re
(turn from subroutine) returns control to the program that directly called the subroutine.

次に、システム共通サブルーチンの追加、削除、変更に
ついて再度第1図を参照して説明する。
Next, addition, deletion, and modification of system common subroutines will be explained with reference to FIG. 1 again.

サブルーチンを追加する場合には、サブルーチン本体と
リンケージ用サブルーチンを作成し、それぞれのライブ
ラリ5,6に追加する。その際、サブルーチン番号と格
納アドレス等を管理ファイル8に記入し、ジャンプテー
ブル7内のサブルーチン番号に対応するエリアにアドレ
スを書込めばよい。
When adding a subroutine, a subroutine body and a linkage subroutine are created and added to the respective libraries 5 and 6. At that time, the subroutine number, storage address, etc. may be written in the management file 8, and the address may be written in the area corresponding to the subroutine number in the jump table 7.

削除の場合には、追加の場合と逆に、サブルーチンライ
ブラリ、リンケージ用サブルーチンライブラリ、管理フ
ァイル、ジャンプテーブルの各々から該当するエントリ
を削除するだけでよい。この場合、サブルーチンをコー
ルするプログラム側にはリンケージ用サブルーチンがリ
ンクされており、サブルーチン番号を知っているので、
プログラムを実行すると、第2図で説明したnot−f
oundエラーとなる。
In the case of deletion, contrary to the case of addition, it is only necessary to delete the corresponding entries from each of the subroutine library, linkage subroutine library, management file, and jump table. In this case, the linkage subroutine is linked to the program that calls the subroutine, and the subroutine number is known, so
When you run the program, not-f as explained in Figure 2 will be displayed.
An ound error occurs.

変更の場合には、サブルーチンを作り直し、サブルーチ
ンライブラリ5に登録し直す。この際。
In the case of a change, the subroutine is re-created and re-registered in the subroutine library 5. On this occasion.

サブルーチンのサイズが以前のサイズより小さい場合に
は、ローディングアドレスを変る必要がないので、管理
ファイル8の内、サイズだけを変更する。変更後のサイ
ズが変更前のサイズより大きくなる場合には、サブルー
チンのロードアドレスを変える必要がある。この場合に
は1、管理ファイル8内のアドレスおよびサイズと、ジ
ャンプテーブル7を書換える。
If the size of the subroutine is smaller than the previous size, there is no need to change the loading address, so only the size of the management file 8 is changed. If the size after change is larger than the size before change, it is necessary to change the load address of the subroutine. In this case, 1. The address and size in the management file 8 and the jump table 7 are rewritten.

以上説明したように、サブルーチン番号が変らない範囲
であれば、サブルーチンの内容を変更したり、ローディ
ングアドレスを変更しても、コール側のプログラムを書
換えたり、再コンパイル。
As explained above, as long as the subroutine number does not change, even if you change the contents of the subroutine or change the loading address, you cannot rewrite or recompile the calling program.

再リンクエディツトする必要はない。No need to relink edit.

[発明の効果] 本発明によれば、スタティックリンク方式と比べて必要
なメモリ量が少なくて済み、プログラムがサブルーチン
をコールする前にメモリにロードするようにしであるた
め、サブルーチンコール実行時にロードするか否かの判
定と、判定結果によってその都度ロード処理を行なうダ
イナミツクリ′ンク方式に比較してリンク実行所要時間
が短くなる。更に、サブルーチンの内容やローディング
アドレスを変更した場合でも、サブルーチンをコールす
るプログラムに影響を及ぼさないという柔軟性を備えて
いる。
[Effects of the Invention] According to the present invention, the amount of memory required is smaller than that of the static link method, and since the program loads the subroutine into memory before calling it, the program loads the subroutine when executing the subroutine call. The time required for link execution is shorter than in the dynamic link method, in which a determination is made as to whether or not the link is present, and a load process is performed each time depending on the determination result. Furthermore, even if the contents of a subroutine or the loading address are changed, it has the flexibility of not affecting the program that calls the subroutine.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の基本概念を説明するための図、第2図
はリンケージ用サブルーチンのプログラムの例を示す図
である。 1・・・Aプログラム、2・・・Bプログラム、3・・
・サブルーチン、4・・・リンケージ用サブルーチン、
5・・・サブルーチンライブラリ、6・・・リンケージ
用サブルーチンライブラリ、7・・・ジャンプテーブル
、8・・・管理ファイル、9・・・サブルーチン番号第
7圀 口]′た;
FIG. 1 is a diagram for explaining the basic concept of the present invention, and FIG. 2 is a diagram showing an example of a linkage subroutine program. 1...A program, 2...B program, 3...
・Subroutine, 4... Linkage subroutine,
5... Subroutine library, 6... Subroutine library for linkage, 7... Jump table, 8... Management file, 9... Subroutine number 7th corner]'

Claims (1)

【特許請求の範囲】 1、固有のサブルーチン番号を付与したサブルーチンを
第1のライブラリに登録するステップと、上記サブルー
チンと対をなすリンケージ用のサブルーチンを第2のラ
イブラリに登録するステップと、 上記サブルーチンを第1のライブラリからメモリ空間に
ローディングするステップと、 上記メモリ空間の所定の領域に、上記サブルーチンのロ
ードアドレスとサブルーチン番号との対応関係を示すジ
ャンプテーブルを作成するステップと、 上記サブルーチンを使うプログラムと上記第2のライブ
ラリ中のリンケージ用サブルーチンとをリンク・エデッ
トしてロードモジュールを作成するステップと、 を有し、上記ロードモジュール中の上記リンケージ用サ
ブルーチンの実行過程で、上記ジャンプテーブルを参照
して対応サブルーチンへのジャンプが行なわれるように
したことを特徴とするサブルーチン・リンク方式。 2、前記サブルーチンと、これと対をなすリンケージ用
のサブルーチンとが同一のサブルーチン名称を有し、前
記プログラムが該サブルーチン名称で上記サブルーチン
へのジャンプを指定することを特徴とする第1項記載の
サブルーチン・リンク方式。
[Claims] 1. A step of registering a subroutine to which a unique subroutine number has been assigned in a first library; a step of registering a linkage subroutine that is paired with the above subroutine in a second library; and the above subroutine. loading from a first library into a memory space; creating a jump table in a predetermined area of the memory space that indicates the correspondence between the load address of the subroutine and the subroutine number; and a program that uses the subroutine. and a step of linking and editing the linkage subroutine in the second library to create a load module, and referring to the jump table in the process of executing the linkage subroutine in the load module. A subroutine link method characterized in that a jump to a corresponding subroutine is performed. 2. The subroutine and the linkage subroutine paired therewith have the same subroutine name, and the program specifies a jump to the subroutine using the subroutine name. Subroutine link method.
JP1194586A 1986-01-24 1986-01-24 Subroutine link system Pending JPS62171034A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1194586A JPS62171034A (en) 1986-01-24 1986-01-24 Subroutine link system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1194586A JPS62171034A (en) 1986-01-24 1986-01-24 Subroutine link system

Publications (1)

Publication Number Publication Date
JPS62171034A true JPS62171034A (en) 1987-07-28

Family

ID=11791782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1194586A Pending JPS62171034A (en) 1986-01-24 1986-01-24 Subroutine link system

Country Status (1)

Country Link
JP (1) JPS62171034A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01142936A (en) * 1987-11-30 1989-06-05 Matsushita Electric Ind Co Ltd Information connecting method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01142936A (en) * 1987-11-30 1989-06-05 Matsushita Electric Ind Co Ltd Information connecting method

Similar Documents

Publication Publication Date Title
US6256658B1 (en) Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment
JPH0644085A (en) Method and device for executing access and computer system
US6108661A (en) System for instance customization
JPH02272627A (en) Digital computer system and method of invocation of procedure of the same
JPH01306923A (en) System for connecting different languages
EP0753174B1 (en) Software configuration in a telecommunication device
JPH0836488A (en) Method and device for checking run-time error using dynamic patching
JPH01154267A (en) Incorporating system for input/output device control program of operating system
CA1319439C (en) System for processing data to facilitate the creation of executable images
US5062039A (en) Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces
JPS62171034A (en) Subroutine link system
EP0417916B1 (en) Procedure state descriptor system for digital data processors
US5953527A (en) Method and apparatus for mixing objective-C and C++ objects
JPH0619717A (en) Information processor
US6772292B2 (en) Two area stack
JPH02257224A (en) Linkage edition processor
JPH0221610B2 (en)
CN116860326A (en) Memory mapping method for embedded heterogeneous simulation
Barzel et al. Patchwork: A fast interpreter for a restricted dataflow language
JPH02244237A (en) Address relocation system at dynamic link
Fischer et al. Lambdas in Java Bytecode
Teufel et al. Procedures
JPH02190929A (en) External module managing system
JPH01128130A (en) Automatic loading system for overlay area
JPH0390931A (en) Generation of rom transformation program