JPH08263272A - 共通ルーチンのライブラリ登録方法およびそのための装置 - Google Patents

共通ルーチンのライブラリ登録方法およびそのための装置

Info

Publication number
JPH08263272A
JPH08263272A JP6244395A JP6244395A JPH08263272A JP H08263272 A JPH08263272 A JP H08263272A JP 6244395 A JP6244395 A JP 6244395A JP 6244395 A JP6244395 A JP 6244395A JP H08263272 A JPH08263272 A JP H08263272A
Authority
JP
Japan
Prior art keywords
module
library
common
common routine
program
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.)
Withdrawn
Application number
JP6244395A
Other languages
English (en)
Inventor
Sadao Kurosawa
定夫 黒沢
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP6244395A priority Critical patent/JPH08263272A/ja
Publication of JPH08263272A publication Critical patent/JPH08263272A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 共通ルーチンのライブラリ登録時の操作性を
より簡便なものにすることを目的とする。 【構成】 ライブラリへの登録対象である共通ルーチン
や登録対象外であるメインルーチン名などを指示するこ
となしに、共通ルーチンの翻訳および結合編集を選択的
に実行し、この結合編集により生成されたロードモジュ
ールがライブラリに登録される。例えば、特定のオプシ
ョンを指示することによりロードモジュール作成単位の
オブジェクト命令ごとに結合編集用の制御文が付加さ
れ、さらにはこの制御文に基づき当該オブジェクト命令
についての結合編集が実行される。共通ルーチンが定義
されるモジュールを取り入れたフォートラン90などのよ
うに、メインルーチンと共通ルーチンとの関係が弱いも
のとなっているプログラミング言語ではより実用的であ
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、共通ルーチンのライブ
ラリ登録方法およびそのための装置に関し、特にプログ
ラム中の共通ルーチンからそのロードモジュールを作成
する際に、登録対象の共通ルーチンやモジュールの名前
や、登録対象外のメインルーチンの名前などを指示しな
いですむようにしたものである。
【0002】一般に、共通ルーチンを実行可能なロード
モジュール形式でライブラリに登録しておき、共通ルー
チンが必要な場合にはこれをライブラリから読み出して
用いることにより当該共通ルーチンについての翻訳およ
び結合編集をその都度実行する手間を省くといった、い
わばプログラムの部品化がおこなわれている。
【0003】そして、このプログラムの部品化にさい
し、各共通ルーチンのルーチン名などの指示を不要とし
て登録操作上の利便性を高めることが望ましく、本発明
はこのような要請に応えるものである。
【0004】なお、本発明は各種のプログラミング言語
を対象としているが、以下の記載ではその一例として、
共通ルーチンなどを定義することができるモジュールの
概念が今回の改正(1994年1月1日)により取り入れら
れたフォートラン90を適宜用いることにする。
【0005】
【従来の技術】従来、プログラム中の共通ルーチンのロ
ードモジュールを選択的にライブラリに登録する、すな
わちメインルーチンを除いた部分のロードモジュールを
ライブラリに登録するに際しては、 ・登録対象の各共通ルーチンのルーチン名をそれぞれ指
示するSELECT文 ・登録対象外のメインルーチンのルーチン名を指示する
EXCEPT文をエントリすることにより共通ルーチンのみの
翻訳および結合編集を実行している。
【0006】また、従前のフォートランなどのようにメ
インルーチンと共通ルーチンとの関係が強いプログラミ
ング言語の場合には両者のロードモジュールを作成した
後でその中のメインルーチン部分だけを削除するなどの
手法も用いられている。
【0007】
【発明が解決しようとする課題】このような従来の手法
では、ライブラリへの登録対象である各共通ルーチンの
ルーチン名や、ライブラリへの登録対象外であるメイン
ルーチンのルーチン名を指示するといった処理が必要と
なり、ライブラリ作成者にとって登録のための操作性が
悪いという問題点があった。
【0008】そこで、本発明では、プログラム中の共通
ルーチンのみを自律的に自動選択するかたちで翻訳およ
び結合編集をおこなってからライブラリに登録すること
により、共通ルーチンのライブラリ登録のさいの操作手
順の簡単化を図ることを目的とする。
【0009】なお、本明細書では、 ・「自律的」の用語を、例えば「ライブラリ登録の対象
や対象外としてのルーチン名やモジュール名などの指示
を必要としない態様」を示すものとして用い、 ・「翻訳」の用語を、ソースプログラムに対する構文解
析および意味解析を含む通常の概念の外に、これらを除
いてオブジェクト命令の生成にもっぱら着目した概念を
含むかたちで用いている。
【0010】
【課題を解決するための手段】図1は本発明の基本構成
図である。図において、1は、プログラムであり、ライ
ブラリへの登録対象ではないメインルーチンおよびライ
ブラリへの登録対象である共通ルーチンからなる。2
は、ロードモジュール作成部であり、登録対象ルーチン
名の指示といった操作をともなうことなしに、共通ルー
チンについての翻訳および結合編集を選択的に実行して
実行可能な形式のロードモジュールを作成する。3は、
ライブラリであり、各共通ルーチンのロードモジュール
が例えばディレクトリの形式で登録され、これらは共同
利用される。
【0011】ロードモジュール作成部2における処理の
概要は次のようになっている。 プログラム1中の共通ルーチンのみを自律的に、例え
ばそれぞれの宣言文を参照することにより自動選択す
る。 この自動選択された共通ルーチンのそれぞれを翻訳し
てオブジェクト命令を生成する。 このオブジェクト命令を結合編集して実行可能な形式
のロードモジュールを作成する。
【0012】なお、以上の処理においてステップの自
動選択とステップの翻訳の実行順序は任意であり、翻
訳が先行する場合にはメインルーチンの翻訳もおこなわ
れ、その後、共通ルーチンの翻訳部分だけを自動選択し
てからステップの結合編集に移行する。
【0013】本発明の、共通ルーチンのライブラリ登録
方法としての基本的構成は、「プログラムを翻訳してか
ら結合編集するといった処理を、当該プログラム中の共
通ルーチンに対する自律的な自動選択のもとで、当該共
通ルーチンにのみ実行し、前記結合編集によって生成さ
れるロードモジュールをライブラリに登録するようにし
たこと」である。
【0014】本発明の、共通ルーチンのライブラリ登録
装置としての基本的構成は、「プログラムを翻訳してか
ら結合編集するといった処理を、前記プログラム中の共
通ルーチンに対する自律的な自動選択のもとで、当該共
通ルーチンにのみ実行するロードモジュール作成部と、
前記結合編集によって生成されるロードモジュールを登
録するライブラリとを備えたこと」である。
【0015】
【作用】本発明は、このように、プログラム中の共通ル
ーチンの翻訳および結合編集を実行してそのロードモジ
ュールをライブラリに登録するにさいし、登録対象であ
る各共通ルーチンのルーチン名を指示したり、メインル
ーチンを登録対象から除くためにこのルーチン名を指示
したりすることを不要とし、共通ルーチンのライブラリ
への登録操作を簡便にしたものである。
【0016】また、例えばフォートラン90のように、共
通ルーチンなどが定義されるモジュールの概念によって
メインルーチンと共通ルーチンとが疎結合の関係となる
プログラミング言語ではより実用的である。
【0017】
【実施例】図2〜図7を参照して本発明の実施例を説明
する。図2は、オペレーションシステムが汎用のMSP
やXSPなどの場合の、自動呼出しライブラリにモジュ
ールを登録するときの概要を示す説明図である。
【0018】ここで、11はテスト時のフォートランプロ
グラムのデータセット(COMMON.FORT )、12は複数の共
通ルーチンが定義されているモジュール、13はモジュー
ル12の呼出し元プログラムであるメインルーチン、14は
モジュール12の翻訳結果のオブジェクト命令からなる副
オブジェクト命令データセット(C.OBJ)、15はフォート
ラン90のコマンドの「NAMEM」オプション指定によ
って作成される結合編集用の制御文、16はメインルーチ
ン13の翻訳結果のオブジェクト命令からなる主オブジェ
クト命令データセット(COMMON.OBJ)、17は副オブジェ
クト命令データセット14のオブジェクト命令をモジュー
ル単位で結合編集して実行可能な形式のロードモジュー
ルにするための結合編集プログラム、18はこのロードモ
ジュールを登録する自動呼出しライブラリ(C.LOAD)、
をそれぞれ示している。
【0019】また、副オブジェクト命令データセット14
および制御文15を作成するフォートラン90(FORT90)のコ
マンド列の内容は、 ・COMMON.FORT (データセット11) ・NAMEM (副オブジェクト命令データセット14の最後に
結合編集用の制御文15を作成するためのオプション) ・MODOBJ(共通ルーチンのオブジェクト命令を副オブジ
ェクト命令データセット14に出力するためのコマンド) ・OBJECT(メインルーチン13のオブジェクト命令を主オ
ブジェクト命令データセット16に出力するためのコマン
ド)からなっている。
【0020】図3は、図2に対応の処理手順を示す説明
図であり、その内容は次のようになっている。(31)以下
のことを指示して、次のステップに進む。 ・翻訳対象であるデータセット11 ・「NAMEM」オプション ・オブジェクト命令の出力先である副オブジェクト命令
データセット14および主オブジェクト命令データセット
16 (32)データセット11に対する構文解析および意味解析を
実行して、次のステップに進む。 (33)以下のオブジェクト命令などを作成して、次のステ
ップに進む。 ・モジュール12のオブジェクト命令および結合編集用の
制御文15(これらのオブジェクト命令や制御文はモジュ
ールごとに作成されて副オブジェクト命令データセット
14などに出力される) ・メインルーチン13のオブジェクト命令(主オブジェク
ト命令データセット16に出力される) (34)制御文15に基づき、主オブジェクト命令データセッ
ト16を無視して副オブジェクト命令データセット14のオ
ブジェクト命令のみを例えば前記のように宣言文などの
違いにより選択してこれらを結合編集プログラム17で結
合編集し、次のステップに進む。 (35)この結合編集により生成されたロードモジュールを
自動呼出しライブラリ18に登録する。
【0021】図4は、オペレーションシステムがUNI
Xなどの場合の、自動呼出しライブラリにモジュールを
登録するときの概要を示す説明図であり、21はテスト時
のフォートランプログラムのデータセット(common.
f)、22は複数の共通ルーチンが定義されているモジュ
ール、23はモジュール22の呼出し元プログラムであるメ
インルーチン、24は副オブジェクト命令データセット、
25は副オブジェクト命令データセット24を結合編集して
実行可能な形式のロードモジュールにするための結合編
集プログラム、26はロードモジュールを登録する自動呼
出しライブラリ(call.out)、をそれぞれ示している。
【0022】また、副オブジェクト命令データセット24
を作成するフォートラン90(f90) のコマンド列の内容
は、 ・common.f(データセット21) ・-o(副オブジェクト命令データセット24のオブジェク
ト命令を結合編集して実行可能な形式のロードモジュー
ルにすることの指示) ・-L call.out (ロードモジュールを格納するファイル
名の指示) ・-N(共通ルーチンのロードモジュールを生成するため
のオプション)などからなっている。
【0023】図5および図6は、図4における翻訳およ
び結合編集のさいに用いられる各方式を示す説明図であ
り、図5の場合には、モジュールごとに「翻訳ー結合編
集」の処理を順に実行している。すなわち、先ずモジュ
ールL1の翻訳、結合編集を実行し、続いてモジュール
L2の翻訳、結合編集を実行することになる。
【0024】図6の場合には、コンパイラによって生成
されるモジュール単位のオブジェクト命令ごとにその先
頭か最後に特殊命令を挿入し、別途作成した所定のユー
ティリティプログラムを走行させることにより当該特殊
命令数だけの結合編集を繰り返している。
【0025】図7は、図5に対応の処理手順を示す説明
図でありその内容は次のようになっている。 (41)以下のことを指示して、次のステップに進む。 ・翻訳対象であるデータセット21 ・結合編集の実行 ・ロードモジュールを登録するファイル名 ・「−N」オプション (42)メインルーチン23の部分を除いた各モジュール22の
みを例えばそれぞれの宣言文などにより自動選択してこ
れらの構文解析および意味解析を順次実行し、次のステ
ップに進む。 (43)次のオブジェクト命令出力の対象モジュールを特定
して、次のステップに進む。 (44)該当モジュールのオブジェクト命令を副オブジェク
ト命令データセット24に出力して、次のステップに進
む。 (45)副オブジェクト命令データセット24の該当モジュー
ル部分を結合編集して、次のステップに進む。 (46)結合編集により生成されるロードモジュールを自動
呼出しライブラリ26に登録して、次のステップに進む。 (47)すべてのモジュール22についての結合編集が終了し
たかどうかを判断して、「YES」の場合は一連の処理を
終了し、「NO」の場合はステップ(43)に戻る。
【0026】図8は、図6に対応の処理手順を示す説明
図でありその内容は次のようになっている。 (51)次の内容を指示して、次のステップに進む。 ・翻訳対象であるデータセット21 ・結合編集の実行 ・結合編集後のロードモジュールを登録するファイル名 ・「−N」オプション (52)メインルーチン23の部分を除いた各モジュール22の
みを例えばそれぞれの宣言文などにより選択してこれら
の構文解析および意味解析を順次実行し、次のステップ
に進む。 (53)次のオブジェクト命令出力の対象モジュールを特定
して、次のステップに進む。 (54)該当モジュールのオブジェクト命令を副オブジェク
ト命令データセット24に出力し、またその先頭または最
後の部分に特殊命令を挿入して、次のステップに進む。 (55)すべてのモジュール22についての翻訳および特殊命
令挿入の処理が終了したかどうかを判断して、「YES」
の場合は次のステップに進み、「NO」の場合はステップ
(53)に戻る (56)ユーティリティプログラムは、モジュール単位の次
のオブジェクト命令を特殊命令により認識してその結合
編集をスタートさせ、次のステップに進む。 (57)結合編集により生成されるロードモジュールを自動
呼出しライブラリ26に登録して、次のステップに進む。 (58)すべてのモジュール22についての結合編集が終了し
たかどうかを判断して、「YES」の場合はユーティリテ
ィプログラムの処理を終了し、「NO」の場合はステップ
(56)に戻る。
【0027】なお、モジュール部分の自動選択を図3の
処理手順では結合編集の際に実行し、図7および図8の
処理手順では翻訳の際に実行しているが、これは単なる
例示であってそれぞれの処理手順の場合にいずれの方式
を用いるかは任意であり、モジュール部分の自動選択の
方式とオペレーションシステムの種別との間に特別の関
連性はない。
【0028】また、図7および図8の処理手順におい
て、先ずすべてのモジュール22の構文解析および意味解
析を実行することに代え、モジュール22ごとにこの構文
解析・意味解析などとその後のオブジェクト命令出力/
結合編集とを続けて実行するようにしてもよい。
【0029】また、例えばUNIXの場合に、 ・モジュール数だけの翻訳ー結合編集の処理を繰り返し
(図6参照)、 ・モジュール単位のオブジェクト命令ごとにその先頭か
最後に特殊命令を挿入して当該特殊コマンド数だけの結
合編集を繰り返す(図7参照)のは、UNIXの結合編
集機能が汎用オペレーションシステムのそれに比べて小
さいからである。
【0030】
【発明の効果】本発明は、このように、プログラム中の
共通ルーチンについてのロードモジュールをライブラリ
へ登録するに際し、これら共通ルーチンが自律的に自動
選択される、すなわちそれぞれのルーチン名などを個々
に指示しなくても例えば「NAMEM」のオプションを
指示すれば自動選択されるようにしているので、共通ル
ーチンのライブラリ登録時の操作性をより簡便なものに
することができる。
【0031】特に、共通ルーチンなどが定義されるモジ
ュールを取り入れたフォートラン90のように、メインル
ーチンと共通ルーチンとの関係が弱いものとなっている
プログラミング言語では実用的である。
【図面の簡単な説明】
【図1】本発明の、基本構成図である。
【図2】本発明の、オペレーションシステムが汎用のM
SPやXSPなどの場合の、自動呼出しライブラリにモ
ジュールを登録するときの概要を示す説明図である。
【図3】本発明の、図2に対応の処理手順を示す説明図
である。
【図4】本発明の、オペレーションシステムがUNIX
などの場合の、自動呼出しライブラリにモジュールを登
録するときの概要を示す説明図である。
【図5】本発明の、図4における翻訳および結合編集の
際に用いられる方式(その1)を示す説明図である。
【図6】本発明の、図4における翻訳および結合編集の
際に用いられる方式(その2)を示す説明図である。
【図7】本発明の、図5に対応の処理手順を示す説明図
である。
【図8】本発明の、図6に対応の処理手順を示す説明図
である。
【符号の説明】
図1において、 1・・・(登録対象)プログラム 2・・・ロードモジュール作成部 3・・・ライブラリ

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 プログラムを翻訳してから結合編集する
    といった処理を、当該プログラム中の共通ルーチンに対
    する自律的な自動選択のもとで、当該共通ルーチンにの
    み実行し、 前記結合編集によって生成されるロードモジュールをラ
    イブラリに登録するようにしたことを特徴とする共通ル
    ーチンのライブラリ登録方法。
  2. 【請求項2】 前記共通ルーチンがモジュールで定義さ
    れ、かつ前記処理が当該モジュールを単位として実行さ
    れることを特徴とする請求項1記載の共通ルーチンのラ
    イブラリ登録方法。
  3. 【請求項3】 前記モジュールを単位として生成される
    オブジェクト命令に結合編集用の制御文を付加したこと
    を特徴とする請求項2記載の共通ルーチンのライブラリ
    登録方法。
  4. 【請求項4】 前記モジュールごとに順次その翻訳と結
    合編集とが実行されることを特徴とする請求項2記載の
    共通ルーチンのライブラリ登録方法。
  5. 【請求項5】 前記プログラムの翻訳に際して前記モジ
    ュールごとに特殊命令を挿入し、かつこの特殊命令に基
    づく結合編集がユーティリティプログラムを介して実行
    されることを特徴とする請求項2記載の共通ルーチンの
    ライブラリ登録方法。
  6. 【請求項6】 プログラムを翻訳してから結合編集する
    といった処理を、前記プログラム中の共通ルーチンに対
    する自律的な自動選択のもとで、当該共通ルーチンにの
    み実行するロードモジュール作成部と、 前記結合編集によって生成されるロードモジュールを登
    録するライブラリとを備えたことを特徴とする共通ルー
    チンのライブラリ登録装置。
  7. 【請求項7】 前記ロードモジュール作成部は、前記共
    通ルーチンが定義されるモジュールの単位で前記処理を
    実行することを特徴とする請求項6記載の共通ルーチン
    のライブラリ登録装置。
  8. 【請求項8】 前記ロードモジュール作成部は、前記モ
    ジュールを単位として生成したオブジェクト命令に結合
    編集用の制御文を付加することを特徴とする請求項7記
    載の共通ルーチンのライブラリ登録装置。
  9. 【請求項9】 前記ロードモジュール作成部は、前記モ
    ジュールごとに順次その翻訳と結合編集とを実行するこ
    とを特徴とする請求項7記載の共通ルーチンのライブラ
    リ登録装置。
  10. 【請求項10】 前記ロードモジュール作成部は、前記
    プログラムの翻訳に際して前記モジュールごとに特殊命
    令を挿入し、かつ、この特殊命令に基づく結合編集を実
    行するためのユーティリティプログラムを走行させるこ
    とを特徴とする請求項7記載の共通ルーチンのライブラ
    リ登録装置。
JP6244395A 1995-03-22 1995-03-22 共通ルーチンのライブラリ登録方法およびそのための装置 Withdrawn JPH08263272A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6244395A JPH08263272A (ja) 1995-03-22 1995-03-22 共通ルーチンのライブラリ登録方法およびそのための装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6244395A JPH08263272A (ja) 1995-03-22 1995-03-22 共通ルーチンのライブラリ登録方法およびそのための装置

Publications (1)

Publication Number Publication Date
JPH08263272A true JPH08263272A (ja) 1996-10-11

Family

ID=13200364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6244395A Withdrawn JPH08263272A (ja) 1995-03-22 1995-03-22 共通ルーチンのライブラリ登録方法およびそのための装置

Country Status (1)

Country Link
JP (1) JPH08263272A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000045260A1 (en) * 1999-01-29 2000-08-03 Fujitsu Limited Compiler, compiling method, and storage medium stored with program therefor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000045260A1 (en) * 1999-01-29 2000-08-03 Fujitsu Limited Compiler, compiling method, and storage medium stored with program therefor
US7073167B2 (en) 1999-01-29 2006-07-04 Fujitsu Limited Compiler system compiling method, and storage medium for storing compiling program

Similar Documents

Publication Publication Date Title
JP2811990B2 (ja) プログラム処理装置及びプログラム処理方法
JP2602205B2 (ja) データベース・アクセス制御方法
Fischer et al. The POE language-based editor project
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
US5481711A (en) Program editing system
US5404531A (en) Method and apparatus for compiler processing on program related to data transfer and calculation, and method of managing memory
JPH08263272A (ja) 共通ルーチンのライブラリ登録方法およびそのための装置
GB2420638A (en) Method of substituting code fragments in Internal Representation
CN112579088A (zh) 面向异构混合编程的一站式程序编译方法
Harmer et al. Transformations to Restructure and Re–engineer COBOL Programs
JPH07121379A (ja) 複数言語混在コンパイラ
JPH07239787A (ja) 構文解析木からの情報抽出装置
JPH05204705A (ja) 未定義変数検出処理方法
JP3327640B2 (ja) 命令コード選択装置
JPH0695890A (ja) コンパイラにおける名前置換方式
JPH05120025A (ja) ソースプログラムのインライン展開方法
JPH06110750A (ja) 関係データベースをアクセス可能なアプリケーションプログラムのメイクファイルの自動生成方法
JPH05341973A (ja) プログラム解析装置
JPH06314221A (ja) コンパイル方式
JPH05108713A (ja) 自然言語処理装置
JPH06324853A (ja) オブジェクト指向プログラミング言語を対象とした原始プログラム編集装置
JPH02100732A (ja) プログラム文法チェック方式
JPH0561687A (ja) コンパイラの処理方式
JPH04209029A (ja) 並列処理プログラム翻訳処理装置
JPH06242958A (ja) コンパイル方式

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020604