JPH01142936A - 情報連結方法 - Google Patents

情報連結方法

Info

Publication number
JPH01142936A
JPH01142936A JP62302354A JP30235487A JPH01142936A JP H01142936 A JPH01142936 A JP H01142936A JP 62302354 A JP62302354 A JP 62302354A JP 30235487 A JP30235487 A JP 30235487A JP H01142936 A JPH01142936 A JP H01142936A
Authority
JP
Japan
Prior art keywords
function
program
routine
storage device
descriptor
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
JP62302354A
Other languages
English (en)
Inventor
Takashi Hamada
浜田 高志
Hiroshi Nishikawa
宏 西川
Katsura Kawakami
桂 川上
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP62302354A priority Critical patent/JPH01142936A/ja
Publication of JPH01142936A publication Critical patent/JPH01142936A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は電子計算機においてコンパクトな実行これは、
使用される頻度の高い、三角関数や指数関数等を主プロ
グラムを作成する際に毎回作成することを省くためであ
る。従って、一般に主プログラムを実行させ様とする場
合主プログラムと関数プログラムを連結して、実行プロ
グラムを作成するという作業を行なう。この作業を以下
リンク作業と呼ぶことにする。
第4図は従来の計算機のブロック図である。図中401
はプロセッサ、402はデータバス、403は主プログ
ラム及び関数グログラムを記憶する記憶装置、404は
実行プログラムを記憶する記憶装置である。
上記のリンク作業はプロセッサ401によって行なわれ
る。即ち、プロセッサ401は記憶装置403の内容を
読み出し、これに変更を加え、記障装置404に書き込
むことによって行なわれる。
第5図はこのリンク作業を更に詳しく解説するだめの図
である。図中503と504は記憶装置でそれぞれ第4
図の記憶装置403と404に対応する。510は主プ
ログラム、格納されている領域、511は関数プログラ
ムの格納されている領域、512は実行プログラムの格
納される領域である。520は関数呼出し命令で、この
例ではAVEという関数を呼んでいるものとする。
521はこのAVEなる関数プログラムの本体である。
なお、領域511の全体にはこのAVFi以外の各種の
関数プログラムが格納されているものとする。
まず、プロセッサは記憶装置503の甲の領域に格納さ
れている内容を1語づつ読み出し、記憶装置504にす
べてを書き込む。次に、プロセッサは領域(主プログラ
ム)510の内容を一語づつ読み出し、記憶装置504
に書き込むが、この際、関数呼出し命令520を発見す
ると、この命令の呼出しアドレスAVEに変更し、図に
示したように8−1− V s −)−X とする。こ
こでSは主プログラムを書き込む先頭アドレス、VSは
主プログラムの大きさ、Xは関数プログラムに全体の先
頭から関数AVEまでの距離である。この変更により主
プログラムと関数プログラム全体を結合した実行プログ
ラムを生成することができる。
このように主プログラムは必ずしも関数プログラム全体
を必要とはしない。しかし、従来は上記リンク作業に於
て関数プログラム全体を主プログラムと連結している。
これは、関数プログラムの甲から必要部分だけを抽出す
る作業が繁雑を極めたからである。このことを第6図と
第7図を用いて説明する。
第6図は関数AVEの概念構造の例である。関数AVg
610はn個の値の平均値を取る関数であるとする。こ
の関数は総和を取る関数SUM・612と個数nで割算
をする関数DIV611とを呼び出し、更に関数SUM
612は2つの数値の加算結果をとる関数ADD613
と、加算回数値をとる関数C0UNT 614 を呼び
出すものとする。このような構造の記障装置上の配置例
を第7図に示す。記憶装置703は第5図の記憶装置5
03に対応する。関数710〜714はそれぞれ第6図
の関数610〜614に対応する。このように配置され
ている関数群を関数プログラム全体から抽出するために
は繁雑な手順が必要となる。
即ち関数AVE710から開始して客語が関数呼び出し
くJSR)であるか否かを調べ、関数呼び出し命令であ
れば、呼び出し先の大きさと位置を解析する。この呼出
し先関数ルーチンが更に別の関数呼び出しを行なってい
れば更に同様のことを〈、り返す必要がある。
以上のような手順は関数呼出しが多重化すればするほど
複雑になり解析に多くの時間を必要とする。更に互いに
他を呼び出し合うような再帰的関数を持つ関数群が存在
すると解析は更に複雑になる。
このような理由により従来は関数ルーチン全体を一括し
て主プログラムとリンクし、実行プログラムを生成して
いた。
発明が解決しようとする問題点 しかし、以上のような従来のシステムに於ては、関数プ
ログラム全体を一括して主プログラムとリンクしていた
ために実行プログラムが大きくなり、大きな記憶装置(
第4図においては記憶装置404)を必要とした。
本発明は上述してきたリンク作業を効率よく行ない、効
率的な実行プログラムを作成する情報連結方法を提供す
るものである。
問題点を解決するための手段 本発明は上記目的を達成するため、主プログラムとを格
納する第1の記憶手段と、前記主プログラムと前記関数
プログラムとを連結した実行プログラムを格納する第2
の記憶手段と、前記関数プログラムの中の個々の関数ル
ーチンに対応するデスクリプタな記憶する第3の記憶手
段とを設けたものである。
作用 本発明は上記構成により、デスクリプタは対応する関数
ルーチンの先頭アドレスに関する値と、前記関数ルーチ
ンの大きさに関する値と、前記第1の関数ルーチンが更
に第2の関数ルーチンを呼び出している場合、前記第2
の関数ルーチンに対応するデスクリプタの先頭アドレス
に関する値から構成され、前記主プログラムと前記関数
プログラムの一部または全部を連結し、その連結結果に
前記一個または複数のデスクリプタを連結して実行プロ
グラムとすることにより、コンパクトで、かつ実行プロ
グラムを高速に生成することができ、実行プログラムを
格納するための記憶装置を小さくできる。
実施例 第1図は本発明の情報連結方法を実施したシステムの一
実施例である。図中、101〜104は第4図の401
〜404とそれぞれ同一の機能を有する。105は呼び
出し関数情報を格納する記憶装置である。
第1図のシステムに於てはプロセッサ101は主プログ
ラムと関数プログラムとが格納されている記憶装置10
3を参照するとともに、関数呼出し関係情報が格納され
ている記憶装置105を参照し、実行プログラムを記憶
装置104の中に生成する。
第2図は、呼び出し関係記憶装置を関数記憶装置との関
係を図示したものである。図中203゜205は第1図
の記憶装置103と105とにそれぞれ対応する。関数
プログラムの中のルーチン210〜214は第6図へ関
数610〜614にそれぞれ対応する。記憶装置205
に格納された情報220〜224は関数デスクリプタで
、個別の関数ルーチンの先頭アドレスと、その関数がど
の関数ルーチンを更に呼び出しているかを表示している
。即ち220〜224はそれぞれ 210〜214に対
応し、例えばデスクリプタ220は関数AVEの先頭番
地A、大きさVA 、及び関数AVBが更に呼び出す関
数8UM とDIVのデスクリプタの格納番地L2とL
lとを有している。プロセッサ101はこの関数デスク
リプタという小量の情報を参照することにより関数プロ
グラム全体の中から主プログラムに必要な関数ルーチン
だけを容易に抽出することができる。即ち第3図(a)
のようにコンパクトな実行プログラムを生成することが
できる。第3図(a)の303.304は第1図の記憶
装置103と104にそれぞれ対応する。また310〜
314は第2図のルーチン210〜214にそれぞれ対
応する。330は主プログラムである。この方式に於て
は関数ルーチンの中の関数呼び出し命令の飛び先きを変
更する必要がない。何故ならば、それらの関数呼び出し
命令の参照先はデスクリプタであり、リンク作業時にデ
スクリプタの内容を変更すれば良いからである。関数の
抽出がすべて終了した後デスクリプタテーブルを最後に
連結してリンク作業を終了する。この実行プログラムを
プロセッサが実行する場合、関数呼び出し命令に遭遇す
ると、デスクリプタテーブルを参照して飛び先を知る。
以上のように関数デスクリプタを参照することにより主
プログラム300に必要な関数だけを抽出できるので、
記憶装f1304の中にコンパクトな実行プログラムを
生成できる。
このことは、第8図及び第3図(b)を比較することに
よりわかる。第8図は従来例の第7図に示した関数プロ
グラムの構造から必要な関数ルーチンだけ抽出する手順
である。図中、803.804806.810のループ
により一つの関数ルーチンが実行プログラム記憶404
に転送される。処理805により転送した関数ルーチン
の6語のうち、関数呼び出し命令のみをスタックに格納
しておき、処理807.808.811 により、関数
呼び出し命令の飛び先きを設定している。処理809は
孫引きされる関数ルーチンの処理へ移るための作業であ
る。
第3図(b)は本発明の実施例の第2図に示したような
情報の構造から必要な関数だけを実行プログラム領域に
抽出する手順である。処理905゜906により一つの
関数ルーチンが実行プログラム記憶104に転送される
。処理907.911.912は孫引き関数のデスクリ
プタへ処理を移す作業である。処理908,909,9
10は孫引き関数の処理から元のデスクリタの処理へ移
る作業である。処理904は関数ルーチンコンパクト化
によるデスクリプタの内容の変更である。
第8図の手順に於ては、処理804に於て、抽出される
関数ルーチンを構成するすべての語が関数呼び出しであ
るか否か検査されている。この作業に対応するループは
第3図(b)に於ては処理905と906であるが、図
から明らかなように客語が関数呼び出しであるか否かを
検査する必要がない。
従って、第3図(b)の手順の方が第8図へそれに比較
してはるかに高速に実行可能である。
発明の効果 以上のように本発明はデスクリプタを対応する関数ルー
チンの先頭アドレスに関する値と、前記関数ルーチンの
大きさに関する値と、前記第1の関数ルーチンが更に第
2の関数ルーチンを呼び出している場合、前記第2の関
数ルーチンに対応するデスクリプタの先頭アドレスに関
する値から構成し、前記主プログラムと前記関数プログ
ラムの一一部または全部を連結し、その連結結果に前記
−f固または複数のデスクリプタを連結して実行プログ
ラムとすることにより、コンパクトな実行プログラムを
高速に生成することができ、実行プログラムを格納する
ための記憶装置を小さくできる。
【図面の簡単な説明】
第1図は本発明の一実施例における情報連結方法を実現
するシステムのブロック結線図、第2図、第3図(a)
は同システムの要部概念図、第3図(b)ハ同システム
の処理のフローチャート、第4図は従来のシステムブロ
ック結線図、第5図、第6図、及び第7図は同システム
の要部概念図、第8図は同システムの処理のフローチャ
ートである。 101・・・プロセッサ、103〜105・・・記憶装
置。

Claims (1)

    【特許請求の範囲】
  1. 主プログラムと関数プログラムとを格納する第1の記憶
    手段と、前記主プログラムと前記関数プログラムとを連
    結した実行プログラムを格納する第2の記憶手段と、前
    記関数プログラムの中の個々の関数ルーチンに対応する
    デスクリプタを記憶する第3の記憶手段とを備え、前記
    デスクリプタは、対応する関数ルーチンの先頭アドレス
    に関する値と、前記関数ルーチンの大きさに関する値と
    、前記第1の関数ルーチンが更に第2の関数ルーチンを
    呼び出している場合、前記第2の関数ルーチンに対応す
    るデスクリプタの先頭アドレスに関する値から構成され
    、前記主プログラムと前記関数プログラムの一部または
    全部を連結し、その連結結果に前記一個または複数のデ
    スクリプタを連結して実行プログラムとすることを特徴
    とする情報連結方法。
JP62302354A 1987-11-30 1987-11-30 情報連結方法 Pending JPH01142936A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62302354A JPH01142936A (ja) 1987-11-30 1987-11-30 情報連結方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62302354A JPH01142936A (ja) 1987-11-30 1987-11-30 情報連結方法

Publications (1)

Publication Number Publication Date
JPH01142936A true JPH01142936A (ja) 1989-06-05

Family

ID=17907902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62302354A Pending JPH01142936A (ja) 1987-11-30 1987-11-30 情報連結方法

Country Status (1)

Country Link
JP (1) JPH01142936A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5617437A (en) * 1979-07-23 1981-02-19 Fujitsu Ltd Loading system for nonresident program
JPS61224041A (ja) * 1985-03-29 1986-10-04 Usac Electronics Ind Co Ltd デ−タ処理装置
JPS62171034A (ja) * 1986-01-24 1987-07-28 Hitachi Ltd サブル−チン・リンク方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5617437A (en) * 1979-07-23 1981-02-19 Fujitsu Ltd Loading system for nonresident program
JPS61224041A (ja) * 1985-03-29 1986-10-04 Usac Electronics Ind Co Ltd デ−タ処理装置
JPS62171034A (ja) * 1986-01-24 1987-07-28 Hitachi Ltd サブル−チン・リンク方式

Similar Documents

Publication Publication Date Title
JP2002517817A5 (ja)
JPH01306923A (ja) 異種言語間連絡方式
US7849470B2 (en) System and method for extending a programming language to include multiple dissimilar object systems
US5379407A (en) Error handling in a state-free system
JP4088379B2 (ja) コンパイル方法及び装置、並びにスタック・トレース方法及び装置
JP3318051B2 (ja) 翻訳処理方法
JPH01142936A (ja) 情報連結方法
EP2587380A1 (en) Runtime environment and method for non-invasive monitoring of software applications
JP2811804B2 (ja) 変数出力範囲指定方式
JP2591212B2 (ja) 高速割込み処理装置
JPH0760381B2 (ja) 大規模プログラムリンク方式
JP2000231478A (ja) ソフトウェアの自動生成装置および方法、記録媒体
JP2503632B2 (ja) 目的プログラム生成方式
JPS63254536A (ja) エラ−事象の一元管理方式
JPH0659937A (ja) ロードモジュール単体テスト支援装置
JPS6341948A (ja) シンボリツクデバグシステム
JPH06236264A (ja) ロードモジュール生成方式
JPS63257038A (ja) 原始プログラム変換における対応識別情報付加方式
JPH0498322A (ja) コンパイラの作成方法
JPS583042A (ja) プログラム実行方式
JPH02130637A (ja) ソースコード翻訳方式
JP2001236243A (ja) デバッグ方法、および、デバッグ用プログラムを記録した記録媒体
JPH0675757A (ja) 仮想空間常駐プログラムのリンク方式
JPH0285930A (ja) レコードのコンパイル方式
JPH04266133A (ja) プログラムのデバッグ方法