JPH0721014A - プログラムリンク方式 - Google Patents

プログラムリンク方式

Info

Publication number
JPH0721014A
JPH0721014A JP15008093A JP15008093A JPH0721014A JP H0721014 A JPH0721014 A JP H0721014A JP 15008093 A JP15008093 A JP 15008093A JP 15008093 A JP15008093 A JP 15008093A JP H0721014 A JPH0721014 A JP H0721014A
Authority
JP
Japan
Prior art keywords
name
program
subroutine
sub
programs
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
JP15008093A
Other languages
English (en)
Inventor
Saori Ono
さおり 小野
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 JP15008093A priority Critical patent/JPH0721014A/ja
Publication of JPH0721014A publication Critical patent/JPH0721014A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 独立して実行される複数のプログラムを有す
るシステムにおいて、1回のリンクで実行ファイルが生
成できるプログラムリンク方式を提供することを目的と
する。 【構成】 複数のプログラムをサブルーチンとして扱
い、そのすべてのサブルーチンの先頭アドレスであるポ
インタをひとまとめにしたポインタテーブル17を設け
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソースプログラムが多
数存在するシステムにおいて、コンパイル及びリンクを
効率的に行えるようにしたプログラムリンク方式に関す
るものである。
【0002】
【従来の技術】図2は、複数のプログラムで構成される
システムにおける、従来のプログラムリンク方式を模式
的に示したものである。
【0003】21、24、27はそれぞれ独立して実行
されるプログラムであって、プログラムの主体となる命
令群であるメインルーチン22、25、28と、複数の
サブルーチン23、26、29とから構成されており、
それらは一つまたは複数のソースファイルに分かれて存
在する。各サブルーチンはそれ自体で独立した機能を持
ち、メインルーチンの一部として組み込むことができる
プログラムの単位である。20は、プログラム21、2
4、27が共通に使用するプログラムを登録したライブ
ラリであり、機械語に翻訳した目的ファイルの集合体で
ある。
【0004】プログラムの開発時には、開発者が作成し
たソースプログラム21、24、27を実行可能な実行
ファイルにするために、ソースプログラムを機械語に翻
訳した命令群に変換する作業を行う。すなわち、ソース
プログラム21、24、27を目的ファイルに変換する
コンパイルを行って、この目的ファイルとライブラリ2
0をそれぞれリンクする。
【0005】
【発明が解決しようとする課題】しかしながら上記従来
のプログラムリンク方式においては、コンパイル及びラ
イブラリとのリンクの作業は、個々に独立して存在する
プログラムファイルごとに行わなければならない。すな
わちn個すべてのプログラムを実行可能にするために
は、n回のコンパイル及びリンク作業が必要となり、多
くの時間を必要とする。
【0006】またライブラリに登録したプログラムに変
更が生じた場合には、このときすべてのプログラムが共
通に使用するものをライブラリに登録してあるので、変
更後の実行ファイルを作成するために、再び各プログラ
ムにリンクの実行の指示を与えなければならず、プログ
ラム数と同数のn回のリンクが必要になる。特に、プロ
グラムの動作確認を行うデバッグ時には、頻繁にプログ
ラムを修正するので、リンクに費やす時間が増大し効率
が悪くなる。
【0007】本発明は上記問題点を解決するものであ
り、独立して実行される複数のプログラムを有するシス
テムにおいて、1回のリンクで実行ファイルが生成でき
るプログラムリンク方式を提供することを目的とする。
【0008】
【課題を解決するための手段】上記課題を解決するため
本発明のプログラムリンク方式は、互いに他のプログラ
ムからコールされることがなく、それぞれ独立して実行
される複数のプログラムをそれぞれサブルーチンとして
扱い、これらを集合したサブルーチン群に対して、一つ
のメインルーチンにより前記各サブルーチンのアドレス
を指定してコールすることで、前記複数のプログラムに
共通して使用するプログラムを登録したライブラリと、
コンパイルされた前記複数のプログラムとを、一度にリ
ンクするようにしたことを特徴とするものである。
【0009】
【作用】上記方法においては、独立して実行される複数
のプログラムをサブルーチンとして扱い、一つのメイン
ルーチンによって各サブルーチンをコールする構成にし
てある。すなわち従来のように、独立して実行される複
数のプログラムに対して、それぞれ一つのメインルーチ
ンが存在するのではなく、一つのメインルーチンによっ
て、複数の独立したプログラムを実行できる構成にして
ある。このためコンパイルしたプログラムとライブラリ
とのリンクを一度で済ますことができる。
【0010】
【実施例】図1は、本発明の一実施例におけるプログラ
ムリンク方式を模式的に示したものである。図におい
て、11はメインルーチンであり、サブルーチン群18
を一括して管理するものである。サブルーチン群18
は、独立して実行される複数のプログラムを、それぞれ
サブルーチン’aa、bb、cc、・・・・・・’として扱っ
たものであり、それ自体で一つの処理体系を持つプログ
ラムであって、他のサブルーチンからコールされること
のないものである。19は、独立した目的ファイルの構
成をとるライブラリであり、すべてのサブルーチンに共
通して使用するものであり、サブルーチン群18の個々
と対応している。
【0011】以下、ライブラリ19とのリンクを効率的
に行えるようにした、メインルーチン11とサブルーチ
ン群18との関係を、プログラム実行時の動作により説
明する。
【0012】メインルーチン11において、12は、実
行したいサブルーチンの名称を格納する実行名称格納領
域であり、13は、メインルーチン11からコールする
すべてのサブルーチンの名称をテーブルにしたサブルー
チン名テーブルである。例えば、サブルーチンaaはテ
ーブルの1番目の‘aa’に、サブルーチンbbはテー
ブルの2番目の‘bb’の文字列に対応している。
【0013】15は、実行名称格納領域12で格納した
サブルーチンの名称とサブルーチン名テーブル13の要
素とを比較する比較プログラムである。比較プログラム
15は、文字列を一文字ずつ同じ文字かどうかを調べる
ものである。14は、比較プログラム15が比較するサ
ブルーチン名テーブル13の1番目からn番目までの要
素を一つずつ指定するカウンタである。16は、実行名
称格納領域12の文字列とサブルーチン名テーブル13
の要素が一致した時にカウンタ14が指しているカウン
タ番号を格納するカウンタ番号格納領域である。
【0014】17は、メインルーチン11からコールす
るすべてのサブルーチンの先頭アドレスであるポインタ
を格納しているポインタテーブルである。ポインタテー
ブル17のポインタは、サブルーチン名テーブル13の
内容と対応している。例えば、サブルーチン名テーブル
の1番目には、サブルーチンaaの文字列である‘a
a’が格納されているが、ポインタテーブル17の1番
目には、サブルーチンaaのポインタである‘100番
地’が格納されている。
【0015】ここで実行したいサブルーチンが‘bb’
というサブルーチンの場合を例に具体的に説明する。ま
ず、実行したいサブルーチンの名称である‘bb’の文
字列をコマンドラインからプログラム内へ取り込み、実
行名称格納領域12に文字列‘bb’を格納する。サブ
ルーチンbbがどの番地にあるかを判定するため、実行
名称格納領域12の文字列‘bb’とサブルーチン名テ
ーブル13の要素の文字列を比較する。カウンタ14は
初期値が1なので、サブルーチン名テーブルの1番目を
指定する。このサブルーチン名テーブル13の1番目に
格納している文字列‘aa’と実行名称格納領域12の
文字列‘bb’を比較プログラム15が文字列を比較す
る。文字列が異なるので、比較プログラム15がカウン
タ14を一つ増加し、サブルーチン名テーブル13の2
番目の要素を指定する。サブルーチン名テーブル13の
1番目と同様に文字列を比較する。その結果、文字列が
一致するので、その時のカウンタ14が指していたカウ
ンタ番号‘2’をカウンタ番号格納領域16に格納す
る。
【0016】実行名称格納領域12の文字列‘bb’と
サブルーチン名テーブル13の2番目が一致するので、
カウンタ番号格納領域16に格納されたカウンタ番号
‘2’を用いて、ポインタテーブル17の2番目を指定
する。ポインタテーブル17の2番目には‘200番
地’が格納されているので、サブルーチンbbは200
番地に存在することが分かる。この200番地のアドレ
スをコールすると、サブルーチン群18の200番地に
存在するサブルーチンbbが呼び出され、プログラムの
実行がメインルーチンからサブルーチンbbへ移る。
【0017】サブルーチンbbは、必要に応じてライブ
ラリ19のルーチンをコールしながら、プログラムを実
行する。サブルーチンbbの処理が終了するとメインル
ーチンに戻り、一つのプログラムを実行するときの処理
が終了する。
【0018】このように、複数の独立した個々のプログ
ラムをサブルーチンとして扱い、メインルーチンの中
で、すべてのサブルーチンのアドレスをテーブルで管理
することで、複数の独立したプログラムを一つのメイン
ルーチン11に連結し、一括して管理できるようにして
ある。
【0019】このため、プログラムの開発にあたって、
メインルーチン11とサブルーチン群18からなるソー
スプログラムを実行ファイルに変換するため、コンパイ
ルの後に行うライブラリ19とをリンクする作業は、従
来のように個々のプログラムごとに行う必要はなく、1
回の作業で済ますことができ効率的である。また、プロ
グラムを頻繁に修正するデバッグ時においても、リンク
回数が格段に少なくなり、特にライブラリを変更したと
きは、個々のプログラムごとにリンクするのではなく、
一回のリンクで実行ファイルを作成できるので効率的で
ある。
【0020】
【発明の効果】以上のように本実施例によれば、独立し
て実行される複数のソースプログラムをそれぞれサブル
ーチンとし、一つのメインルーチンで管理するようにし
た。このため、複数の異なるプログラムを同時に開発す
る場合において、ソースプログラムを実行可能な実行フ
ァイルに変換するときに、すべての独立して実行される
プログラムを一度にリンクできる。リンク回数の減少に
伴い、リンクの作業に要する時間を大幅に短縮すること
ができ、プログラムの開発を効率的に行うことができ
る。
【図面の簡単な説明】
【図1】本発明の一実施例におけるプログラムリンク方
式を説明するブロック図
【図2】従来のプログラムリンク方式を説明するブロッ
ク図
【符号の説明】
11 メインルーチン 12 実行名称格納領域 13 サブルーチン名テーブル 14 カウンタ 15 比較プログラム 16 カウンタ番号格納領域 17 ポインタテーブル 18 サブルーチン群 19、20 ライブラリ 21、24、27 プログラム 22、25、28 メインルーチン 23、26、29 サブルーチン

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 互いに他のプログラムからコールされる
    ことがなく、それぞれ独立して実行される複数のプログ
    ラムをそれぞれサブルーチンとして扱い、これらを集合
    したサブルーチン群に対して、一つのメインルーチンに
    より前記各サブルーチンのアドレスを指定してコールす
    ることで、前記複数のプログラムに共通して使用するプ
    ログラムを登録したライブラリと、コンパイルされた前
    記複数のプログラムとを、一度にリンクするようにした
    ことを特徴とするプログラムリンク方式。
JP15008093A 1993-06-22 1993-06-22 プログラムリンク方式 Pending JPH0721014A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15008093A JPH0721014A (ja) 1993-06-22 1993-06-22 プログラムリンク方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15008093A JPH0721014A (ja) 1993-06-22 1993-06-22 プログラムリンク方式

Publications (1)

Publication Number Publication Date
JPH0721014A true JPH0721014A (ja) 1995-01-24

Family

ID=15489081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15008093A Pending JPH0721014A (ja) 1993-06-22 1993-06-22 プログラムリンク方式

Country Status (1)

Country Link
JP (1) JPH0721014A (ja)

Similar Documents

Publication Publication Date Title
US5586328A (en) Module dependency based incremental compiler and method
US5325531A (en) Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
US5170465A (en) Incremental-scanning compiler for source-code development system
US5182806A (en) Incremental compiler for source-code development system
US5193191A (en) Incremental linking in source-code development system
US5313387A (en) Re-execution of edit-compile-run cycles for changed lines of source code, with storage of associated data in buffers
US5201050A (en) Line-skip compiler for source-code development system
US6961931B2 (en) Dependency specification using target patterns
JPH0519173B2 (ja)
JPH02272627A (ja) デイジタル・コンピユータ・システムとその手続呼び出し方法
KR20020070809A (ko) 포스트-링크 코드 최적화
US7694289B2 (en) Method for embedding object codes in source codes
JPH04330527A (ja) プログラムの最適化方法及びコンパイラ・システム
US6769126B1 (en) Apparatus and method for demand load analysis
US5889995A (en) Using constant selectors for method identification
US5446899A (en) Hint generation in smart recompilation
EP0406028A2 (en) Incremental compiler for source code development system
Hanson Event associations in SNOBOL4 for program debugging
JPH0766342B2 (ja) プログラムテスト装置
Zosel A parallel approach to compilation
Dewitt Extensibility-a new approach for designing machine independent microprogramming languages
JPH0721014A (ja) プログラムリンク方式
US6311227B1 (en) Procedure calling method
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
Klassen et al. S*(QM-1) An instantiation of the high level microprogramming language scheme S* for the nanodata QM-11