JPS6324422A - セグメント方式計算機における2種以上の呼出し手順の共存方式 - Google Patents

セグメント方式計算機における2種以上の呼出し手順の共存方式

Info

Publication number
JPS6324422A
JPS6324422A JP16881886A JP16881886A JPS6324422A JP S6324422 A JPS6324422 A JP S6324422A JP 16881886 A JP16881886 A JP 16881886A JP 16881886 A JP16881886 A JP 16881886A JP S6324422 A JPS6324422 A JP S6324422A
Authority
JP
Japan
Prior art keywords
procedure
code
external
codes
calling
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
JP16881886A
Other languages
English (en)
Inventor
Midori Fujimaki
藤巻 緑
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 JP16881886A priority Critical patent/JPS6324422A/ja
Publication of JPS6324422A publication Critical patent/JPS6324422A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はセグメント方式計算機に関し、特に被呼出し側
手続きを呼出し側手続きから呼出す際の呼出し手順が2
種類以上用意されたセグメント方大計算機システムにお
いて、同一の被呼出し測子続きを、呼出し手!頃の異な
る複数の呼出し測子続きから共通に呼出すことができる
2種以上の呼出し手順の共存方式に関するものである。
〔従来の技術〕
実行形式プログラムを複数のセグメントで構成し、前記
実行形式プログラムの全体が同時に主記憶装置に存在し
なくても所定の処理の実行が可能なセグメント方式計算
機において、ある手続きが、他の手続きを呼出す際に使
用する呼出し手順として、被呼出し測子続きが呼出し測
子続きとバインドされて同一セグメント内に存在してい
ることを条件として使用できる高速呼出し可能な呼出し
手順と、被呼出し測子続きが呼出し測子続きと同一セグ
メント内に収容されていなくても呼出しを行なうことが
できるが、その呼出しに多少時間のかかる呼出し手順と
の2種類の呼出し手順が用意された方式が知られている
。なお、前者の高速呼出し可能な呼出し手順は、被呼出
し測子続きが同一セグメント内に存在していなければな
らない為に収容能力に制限の大きい呼出し手順となり、
後者の低速の呼出し手1+liは逆に収容能力の大きい
呼出し手順となる。
このように、高速ではあるが収容能力に制限の大きい呼
出し手順(以下TSX命令手順と称す)と、低速ではあ
るが収容能力の大きい呼出し手順(以下CLIMB命令
手順と称す)との2種類の呼出し手順が用意された従来
のセグメント方式計算機システムにおいては、被呼出し
測子続きの用いられ方によって、有利な呼出し手順の方
を利用者が指定し、何れか一方の呼出し手順に統一して
使用するのが一般的であった。
しかし、何れか一方の呼出し手順に統一した場合、実行
速度の面で不利になるか、或いは収容能力の面で不利に
あるか、何れかを余儀なくされるという問題点があり、
更に処理目的によっては一つの呼出し手順に統一するこ
とが不可能な場合も住しる。
そこで、一つの呼出し手順に統一することが不可能な場
合、或いはそれぞれの利点を活かそうとする場合には、
従来、次のような方法が採用されていた。
例えば、被呼出し測子続き(1)と、この被呼出し測子
続き(1)をTSX命令手順で呼出す呼出し測子続き(
2)と、上記被呼出し測子続き(1)をCLIMB命令
手順で呼出す呼出し測子続き(3)とを、ソースプログ
ラム形式からコンパイル、リンクして、複数のセグメン
トから構成された一つの実行形式プログラムを生成する
とする。この場合、従来は、先ずそのコンパイル過程に
おいて、呼出し測子続き(2)のオブジェクトプログラ
ム中にTSX命令手順に対応する外部入口参照コードを
含めると共に、被呼出し手続きfilのオブジェクトプ
ログラム中に前記TSX命令手順の外部入口参照コード
に対応する外部入口コードと出口コードとを含めたTS
X命令手順用被呼出し側オブジェクトプログラムを生成
し、また、呼出し測子続き(3)のオブジェクトプログ
ラム中にCLIMB命令手順に対応する外部入口参照コ
ードを含めると共に、別途生成した被呼出し手続き(1
)のオブジェクトプログラム中に前記CLIMB命令手
順の外部入口参照コードに対応する外部入口コードと出
口コードとを含めたCLIMB命令手順用被呼出し側オ
ブジェクトプログラムを生成する。
そして、リンク処理において、TSX命令手順を用いる
呼出し測子続きのオブジェクトプログラムと、上記TS
X命令手順用被呼出し側オブジェクトプログラムとをバ
インド処理を含めてリンクし、CLIMB命令手順を用
いる呼出し測子続きのオブジェクトプログラムと、上記
CLIMB命令手j頭用被呼出し側オブジェクトプログ
ラムとをリンクして、複数のセグメントから構成される
一つの実行形式プログラムを生成する。
〔発明が解決しようとする問題点〕
しかしながら、上述した方法によれば、被呼出し側オブ
ジェクトプログラムに対応するセグメントが、TSX命
令手順用とCLIMB命令手順用の2個できることにな
り、実行形式プログラムのサイズが拡大するという欠点
があり、この欠点は、呼出し手順の種類が増すほど、ま
た被呼出し側手続きの種類が増すほど顕著になる。
本発明はこのような従来の欠点を解決したもので、その
目的は、一つの被呼出し使手続きを、それぞれ異なる呼
出し手順を用いる他の複数の呼出し使手続きから呼出す
ことができるようにして、実行形式プログラムのサイズ
を小さくすることにある。
〔問題点を解決するための手段〕
本発明は上記目的を達成するために、2種以上の呼出し
手順を使用することができ、リンカがコンパイラによっ
て生成されたオブジェクトプログラム中の外部入口参照
コード、外部入口コードを識別して適応する手続きを解
決する機構を有するセグメント方式計算機システムにお
いて、外部入口参照コード生成手段と、外部入口/出口
コード生成手段と、手続き本体のオブジェクトコード生
成手段とを含むコンパイラを設け、該コンパイラは、ソ
ースプログラム形式の呼出し使手続きをコンパイルする
過程において、指定された呼出し手順のタイプに適応す
る外部入口参照コードを前記外部入口参照コード生成手
段により、手続き本体のオブジェクトコードを前記オブ
ジェクトコード生成手段によりそれぞれ生成してオブジ
ェクトプログラム形式の呼出し使手続きを生成し、ソー
スプログラム形式の被呼出し使手続きをコンパイルする
過程において、指定された2種以上の外部入口コードお
よび出口コードを前記外部入口/出口コード生成手段に
より、手続き本体のオブジェクトコードを前記オブジェ
クトコード生成手段によりそれぞれ生成して、2種以上
の外部入口コードと、該2種以上の外部入口コードの何
れからも移行可能な一つの手続き本体のオブジェクトコ
ードと、該−つの手続き本体から移行可能な2種以上の
出口コードとを含むオブジェクトプログラム形式の被呼
出し使手続きを生成するように構成されている。
〔作用〕
一つのソースプログラム形式の被呼出し使手続きに対し
、2種以上の外部入口コードと各外部入口コードに対応
する出口コードと共通に使用される手続き本体とを含む
オブジェクトプログラム形式の被呼出し使手続きを生成
するようにし、この被呼出し使手続きを呼出す呼出し使
手続き中に前記外部入口コードの一つに対応する外部入
口参照コードを含める構成としたので、リンカがコンパ
イラによって生成されたオブジェクトプログラム中の外
部入口参照コード、外部入口コードを識別して適応する
手続きを解決して得られる実行形式プログラム中の被呼
出し使手続きは、手続き本体が共通なセグメント構造と
なり、実行形式プログラムのサイズを小さくすることが
できる。
〔実施例〕
次に本発明の実施例について図面を参照して説明する。
第1図は本発明の実施例のブロック図であり、SPUは
複数のソースプログラムを格納するソースプログラムユ
ニット、CPはコンパイラ、IKは入力手段、OPUは
オブジェクトプログラムユニット、LKはリンカ、EP
Uは実行形式プログラムユニットである。また、コンパ
イラCPは、外部入口参照コード生成機構20と、外部
入口/出口コード生成機構21と、手続き本体のオブジ
ェクトコード生成機構22とを含み、リンカLKは、外
部入口参照コード識別機構30と、外部入口コード識別
機構31と、実行形式プログラム生成機構32とを含ん
でいる。
今、第1図の構成を有するセグメント方式計算機で使用
できる呼出し手順は、TSX命令手順とCLIMB命令
手順の2種類とし、ソースプログラムユニットSPUに
格納されたソースプログラムBはTSX命令手順を用い
てソースプログラムAを参照する必要があり、ソースプ
ログラムCはCL■MB命令手順でソースプログラムA
を参照するとする。
このような場合、計算機利用者は、入力手段■Kからコ
ンパイラCPに対する各種の指令を入力する際に、同時
に、ソースプログラムBについてはTSX命令手順を用
いてソースプログラムAを参照する旨、ソースプログラ
ムCについてはCLIMB命令手順を用いてソースプロ
グラムAを参照する旨、ソースプログラムAはTSX命
令手+113とCLIMB命令手順との2種類の外部入
口コード、出口コードを必要とする旨を入力する。
これに応答してコンパイラCPは、ソースプログラムA
をコンパイルする過程において、指定されたCLIMB
命令手順に対応する一つの外部入口コード(CLIMB
入ロコードロコードに対応する一つの出口コード(CL
IMB出ロコードロコードびTSX命令手順に対応する
一つの外部入口コード(TSXSXコロコードこれに対
応する一つの出口コード(TSXSXコロコード外部入
口/出口コード生成機構21によって生成し、且つ、ソ
ースプログラムAの手続き本体のオブジェクトコードを
オブジェクトコード生成機構22で生成し、CLIMB
入ロコードロコードSXコロコードその何れの入口コー
ドからも移行可能な共通な手続き本体のオブジェクトコ
ードと、CLIMB入ロコードロコードたときは手続き
本体の実行終了後に制御が渡されるCLIMB出ロコー
ドロコードXSXコロコード入ったときは手続き本体の
実行終了後に:bll ?IBが渡されるTSXSXコ
ロコード持つオブジェクトプログラムA゛を生成し、こ
れをオブジェクトプログラムユニットOPUに格納する
また、コンパイラCPは、ソースプログラムBをコンパ
イルする過程において、指定された呼出し手順であるT
SX命令手順に適応する外部入口参照コード(TSX 
 A’)を外部入口参照コード生成機構20により、手
続き本体のオブジェクトコードをオブジェクトコード生
成機構22によりそれぞれ生成し、ソースプログラム已
に対応するオブジェクトプログラムB″をオブジェクト
プログラムユニットOPUに格納する。更に、ソースプ
ログラムCをコンパイルする過程において、指定された
呼出し手順であるCLIMB命令手順に適応する外部入
口参照コード(CLIMB  A’)を外部入口参照コ
ード生成機構20により、手続き本体のオブジェクトコ
ードをオブジェクトコード生成機構22によりそれぞれ
生成し、ソースプログラムCに対応するオブジェクトプ
ログラムC゛をオブジェクトプログラムユニットOPU
に格納する。
コンパイラCPの上記したコンパイル処理の完了後、制
御はリンカLKに渡され、リンカLKはオブジェクトプ
ログラムユニットOPUに格納されたオブジェクトプロ
グラムB’ 、 C’ 中の外部入口参照コード(TS
X  A’ 、CLIMB  A”)を外部入口参照コ
ード識別機構30によりサーチして識別し、またオブジ
ェクトプログラムA゛中の外部入口コード(TAX入ロ
コロコードLIMB入ロコードロコード入口コード識別
機構31によりサーチして識別し、実行形式プログラム
生成機構32により、適応する手続き間の定義、参照関
係を成立させる。つまり、オブジェクトプログラムB“
の外部入口参照コード(TSX  A’)に対し、オブ
ジェクトプログラム八°の外部入口コード(TSXSX
コロコード結合して一つの手続きセグメントA″B”に
バインドし、オブジェクトプログラムC°の外部入口参
照コード(CLIMB  A”)に対し、オブジェクト
プログラムA°の外部入口コード(CLIMB入ロコー
ドロコードして別の一つの手続きセグメントC”を生成
し、こうして得た実行形式プログラムを実行形式プログ
ラムユニットEPUに格納する。
第1図の実行形式プログラムユニy )EPUに格納さ
れた実行形式プログラムは、オブジェクトプログラムA
゛とオブジェクトプログラムB°とがバインドされた一
つの対応する手続きセグメントA”B”と、オブジェク
トプログラムC°に対応する手続きセグメントC゛の二
つのセグメントから構成され、矢印で示すように一つの
手続きセグメントA″B′内において、手続き本体B゛
中の外部入口参照コード(TSXA’)により手続き本
体A”が参照でき、手続きセグメントC”の手続き本体
C′中の外部入口参照コード(CLIMBA’)により
手続きセグメントA″B。
の手続き本体A゛が参照できることを示している。
以上のようにして、一つの外部手続きである手続き本体
A′を、同−或いは別セグメント内の複数の手続き本体
B’ 、  C’ からそれぞれ異なる呼出し手順を使
用して使い分けることが可能となる。
次に、2種の外部入口コードおよび出口コードを共存さ
せたオブジェクトプログラムA゛の実施例について第2
図を参照して説明する。
第2図はある手続きであるSUBという入口基を定義し
たサブルーチン副プログラムを例示しており、1〜10
は各ステップを示し、左側に記述したrs[IBROU
TINE 5UBJ 、  r副7”oグラム処理本体
」r[!NOJはソースプログラムレベルでの表現を示
している。
第2図において、CLIMBプロローグ1は、CLIM
B命令手順の入口基SUBに対する入口固有のプロロー
グコードである。
分岐ステップ2は、三つの命令で構成され、コード「E
AA  3.ICJ  (ICは現在の実行番地、EA
Aは、Aレジスタへの格納命令、3は分岐ステップ2の
長さ)、コードrSTA  TEM’    PJ  
(TEMPはメモリ、STAはAレジスタの内容をメモ
リTEMPに格納する命令)により、次のCLIMBエ
ピローグ3の先頭アドレスをメモリTEMPに格納して
から、コードrTRA1、[CJ  C1はCLIMB
エピローグ3の長さ。
TRAは分岐命令)により、CLIMBエピローグ3を
飛び越すためのステップである。
CLIMBエピローグ3は、副プログラム本体処理後、
呼出した手続き側へ戻るためのステ、ブである。
分岐ステップ4は、コードrTRA  m、−ICJ(
mはステップ5〜7の長さ)により、ステップ5〜7を
飛び越し、副プログラム処理本体8へ制御を移すための
ステップである。
TSXプロローグ5は、TSX命令手順の入口基SUB
に対する入口固有のプロローグコードである。
分岐ステップ6は、三つの命令で構成され、コードrE
AA  3.ICJ、コードrsTA  TEMPJに
より、次のTSXエピローグ7の先頭アドレスをメモリ
TEMPに格納してから、コードrTRA  n、IC
J  (nはTSXエピローグ7の長さ)により、TS
Xエピローグ7を飛び越し、副プログラム処理本体8へ
制御を移すためのステップである。
TSXエピローグ7は、副プログラム本体処理後、呼出
した手続き側へ戻るためのステップである。
CLIMB/TSX共通エピローグ9は、副プログラム
処理本体8において、CLIMB命令手順、TSX命令
手順の両方に共通した後処理を行なうためのステップで
ある。
分岐ステップ10は、コードrLDXI  TEMPJ
  (LDXIはインデックスレジスタへのロード命令
)、コードrTRA  O,IJ  (このコードはイ
ンデックスレジスタの示す番地に制御を移すコードであ
る)により、分岐ステップ2あるいは分岐ステップ6で
メモリTEMPに格納されたアドレスをロードして、対
応する呼出し手順のエピローグへ制御を移すためのステ
ップである。
このような構成を有するため、CLIMB命令手順で呼
出しがかかると、ステップl−ステップ2→ステツプ4
−ステップ8−ステップ9→ステップ10−ステップ3
の順で実行されて呼出し側に戻り、TSX命令手順で呼
出しがかかると、ステップ5−ステップ6−ステップ8
−ステップ9−ステップ10−ステップ7の順で実行さ
れて呼出し側に戻り、同−入口基で2種の入口コード、
出口コードを生成しても、呼出し手順に対応するプロロ
ーグ、エピローグが決まり、しかも処理本体は互いに共
有することが可能となる。なお、第2図の場合、ステッ
プ1,2.4がCLIMB人ロコードロコードップ5.
6がTSXSXコロコードステップ9.10. 3がC
LIMB出ロコードロコードップ9,10.7がTSX
SXコロコードれぞれ相当し、CLIMB/TSX共通
のエピローグ9を設けた分だけより一層実行形式プログ
ラムのサイズを縮小することができる。
以上本発明の実施例について説明したが、本発明は以上
の実施例にのみ限定されず、その他各種の付加変更が可
能である。例えば、呼出し手順が3種類以上使用可能な
セグメント方式計算機では、一つの手続き本体を3種類
以上の呼出し手順で使い分けることも可能である。
〔発明の効果〕
以上説明したように、本発明は、2種以上の呼出し手順
を使用することができるセグメント方式計算機において
、一つの被呼出し側手続きを、呼出し手順の異なる複数
の被呼出し側手続きから呼出すことができるので、実行
形式プログラムのサイズを小さくすることができる効果
がある。また、複数の呼出し側手続きから一つの被呼出
し側手続きが使用可能になることにより、どのセグメン
トにどの手続きを収容すべきかという問題に対し自由度
が高まる効果もある。
【図面の簡単な説明】
第1図は本発明の実施例のブロック図および、第2図は
2種の外部入口コード、出口コードを共存させた被呼出
し側手続きに対応するオブジェクトプログラム人”の構
成例を示す図である。 図において、SPU・・・ソースプログラムユニット、
CP・・・コンパイラ、IK・・・入力手段、OPU・
・・オブジェクトプログラムユニット、LK・・・リン
カ、EPU・・・実行形式プログラムユニット、20・
・・外部入口参照コード生成機構、21・・・外部入口
/出口コード生成機構、22・・・手続き本体のオブジ
ェクトコード生成機構、30・・・外部入口参照コード
識別機構、31・・・外部入口コード識別機構、32・
・・実行形式プログラム生成機構。

Claims (1)

  1. 【特許請求の範囲】 2種以上の呼出し手順を使用することができ、リンカが
    コンパイラによって生成されたオブジェクトプログラム
    中の外部入口参照コード、外部入口コードを識別して適
    応する手続きを解決する機構を有するセグメント方式計
    算機システムにおいて、 外部入口参照コード生成手段と、外部入口/出口コード
    生成手段と、手続き本体のオブジェクトコード生成手段
    とを含むコンパイラを設け、該コンパイラは、ソースプ
    ログラム形式の呼出し側手続きをコンパイルする過程に
    おいて、指定された呼出し手順のタイプに適応する外部
    入口参照コードを前記外部入口参照コード生成手段によ
    り、手続き本体のオブジェクトコードを前記オブジェク
    トコード生成手段によりそれぞれ生成してオブジェクト
    プログラム形式の呼出し側手続きを生成し、ソースプロ
    グラム形式の被呼出し側手続きをコンパイルする過程に
    おいて、指定された2種以上の外部入口コードおよび出
    口コードを前記外部入口/出口コード生成手段により、
    手続き本体のオブジェクトコードを前記オブジェクトコ
    ード生成手段によりそれぞれ生成して、2種以上の外部
    入口コードと、該2種以上の外部入口コードの何れから
    も移行可能な一つの手続き本体のオブジェクトコードと
    、該一つの手続き本体から移行可能な2種以上の出口コ
    ードとを含むオブジェクトプログラム形式の被呼出し側
    手続きを生成するように構成されたことを特徴とするセ
    グメント方式計算機における2種以上の呼出し手順の共
    存方式。
JP16881886A 1986-07-17 1986-07-17 セグメント方式計算機における2種以上の呼出し手順の共存方式 Pending JPS6324422A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16881886A JPS6324422A (ja) 1986-07-17 1986-07-17 セグメント方式計算機における2種以上の呼出し手順の共存方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16881886A JPS6324422A (ja) 1986-07-17 1986-07-17 セグメント方式計算機における2種以上の呼出し手順の共存方式

Publications (1)

Publication Number Publication Date
JPS6324422A true JPS6324422A (ja) 1988-02-01

Family

ID=15875072

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16881886A Pending JPS6324422A (ja) 1986-07-17 1986-07-17 セグメント方式計算機における2種以上の呼出し手順の共存方式

Country Status (1)

Country Link
JP (1) JPS6324422A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63269230A (ja) * 1987-04-27 1988-11-07 Fujitsu Ltd Cobolコンパイラにおけるuse手続き処理方法
JP2011222022A (ja) * 2010-04-13 2011-11-04 Intel Corp 非abi準拠機能を初見のインタフェースにわたって実現するための方法及びシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63269230A (ja) * 1987-04-27 1988-11-07 Fujitsu Ltd Cobolコンパイラにおけるuse手続き処理方法
JPH0776928B2 (ja) * 1987-04-27 1995-08-16 富士通株式会社 Cobolコンパイラにおけるuse手続き処理方法
JP2011222022A (ja) * 2010-04-13 2011-11-04 Intel Corp 非abi準拠機能を初見のインタフェースにわたって実現するための方法及びシステム
US8464230B2 (en) 2010-04-13 2013-06-11 Intel Corporation Methods and systems to implement non-ABI conforming features across unseen interfaces

Similar Documents

Publication Publication Date Title
JPH01154267A (ja) 入出力機器制御プログラムのアドレス解決方法
JPH01306923A (ja) 異種言語間連絡方式
US5452453A (en) Rule based production system adapted for complex procedural flow
EP0297248B1 (en) Look-ahead inference-type rule-based system
US6101326A (en) Method and apparatus for frame elimination for simple procedures with tail calls
JPH01147627A (ja) 質問応答装置
JPS6324422A (ja) セグメント方式計算機における2種以上の呼出し手順の共存方式
EP0417916B1 (en) Procedure state descriptor system for digital data processors
JPH01118931A (ja) プログラム変換方式
US5093917A (en) Method for passing data parameters between a calling program and a called subroutine in a command analysis table of a computer stored data base system
JP2729795B2 (ja) 並列計算機及びその制御方法
JPH05297911A (ja) シーケンスコントローラ用シーケンス制御回路
JPH02118727A (ja) システムサブルーチン呼出し方式
JP2601541B2 (ja) Fortran入出力並び処理方式
JPS58149567A (ja) ベクトル・レングス制御範囲融合処理方式
JPH01207824A (ja) モジュール結合制御方式
JPS5856153A (ja) サブル−チンリタ−ン方式
JPH0247728A (ja) フォルト処理管理方式
JPS6244841A (ja) 論理型プログラム実行制御方式
Gutz An extension of the syntax of a FORTRAN compiler for hybrid computation
JPH07129408A (ja) 言語処理プログラムの実行方式
JPH05127945A (ja) プログラム実行状況解析方式
JPH0769831B2 (ja) コンパイラにおけるレジスタ割当て方法
JPS63245727A (ja) プログラム実行方式
JPH02206838A (ja) 共通サブル―チンリンク方法