JPH02205930A - インタフェースチェック処理方法 - Google Patents

インタフェースチェック処理方法

Info

Publication number
JPH02205930A
JPH02205930A JP2619889A JP2619889A JPH02205930A JP H02205930 A JPH02205930 A JP H02205930A JP 2619889 A JP2619889 A JP 2619889A JP 2619889 A JP2619889 A JP 2619889A JP H02205930 A JPH02205930 A JP H02205930A
Authority
JP
Japan
Prior art keywords
programs
program
external name
external
check information
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
JP2619889A
Other languages
English (en)
Inventor
Takeshi Kosuge
健 小菅
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 JP2619889A priority Critical patent/JPH02205930A/ja
Publication of JPH02205930A publication Critical patent/JPH02205930A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 計算機における、複数プログラムに分割して記述される
プログラム間のインタフェース条件のチェックに関し、 特別の手数をかけず、効率よくプログラム間のインタフ
ェースの整合性をチェックするインタフェースチェック
処理方法を目的とし、計算機の原始プログラムからオブ
ジェクトプログラムを生成する場合に、該原始プログラ
ムで定義する外部名及び参照する外部名に対応して、該
外部名によって呼出が行われる場合に授受するように該
原始プログラムに定義されているパラメータ及び該外部
名の共通域の各データの属性及び長さを示す所定形式の
チェック情報を生成して、該オブジェクトプログラムに
付加し、複数の該オブジェクトプログラムについて所定
の結合編集を行う場合に、異なる該オブジェクトプログ
ラムに保持する同一の該外部名についての該チェック情
報間の所定の整合性を検査するように構成する。
〔産業上の利用分野〕
本発明は、計算機における、複数プログラムに分割して
記述されるプログラム間のインタフェース条件をチェッ
クするための、インタフェースチェック処理方法に関す
る。
カ14は通常各言語に共通である。ロードモジュール1
5はローダ等によって処理装置10の主記憶にロードす
れば実行できる。
処理装置10にはコンソール16が接続され、以上の処
理のための指示を入力し、処理中に検出され〔従来の技
術〕 第4図は計算機システムの構成例を示すブロック図であ
り、プログラムの開発において、処理装置10で実行さ
れるコンパイラ11は、プログラム作成者が所要のプロ
グラミング言語で記述して予め外部記憶装置に格納した
原始プログラム12を読み込んで翻訳処理を実行し、各
原始プログラム12に対応するオブジェクトプログラム
13を出力する。
コンパイラ11はC0BOL、FORTRAN等のプロ
グラミング言語に対応して設けられる。
リンカ14は、必要なオブジェクトプログラム13を読
み込んで結合編集処理を実行し、オブジェクトプログラ
ムのテキストをつないで、例えば1つのロードモジュー
ル15に生成して出力する。リン比較的大規模になるプ
ログラムを作成する場合に、全体を適当な機能別等に分
割して、複数のプログラム作成者が分担して記述する場
合がしばしばあり、それらの分割された各原始プログラ
ムから、他のプログラムや、共通領域を参照するために
、公知のように適当なプログラムで外部名として定義さ
れる名前が使用される。
それら定義又は参照される外部名については、コンパイ
ラが各原始プログラムを翻訳単位として各オブジェクト
プログラムを生成する場合に、各翻訳単位のオブジェク
トプログラムに、その翻訳単位に表れる前記のような外
部名を集めた付加情報を設け、付加情報には、各外部名
と、それが参照先の名前か、その翻訳単位で定義された
名前かの別、その名前が指示する実体との関係を後述の
結合編集処理で解決するための情報その他を、各外部名
について設定しておく。
リンカは、以上のような複数のオブジェクトプログラム
を連携して動作できるように一体化したロードモジュー
ルに組み立てるために、公知の結合編集処理を行って、
それらのオブジェクトプログラムのテキストを所定の順
序に配列して一体のテキストに結合し、その結果前記の
ように翻訳単位ごとでは未解決であった外部名について
、翻訳単位間の相対配置が定まることによって決定する
相対アドレスを外部名の値として割り当て、テキストの
所定の場所に埋め込む等の処理をする。
第3図はC0BOL言語で記述された原始プログラムを
例に、以上のコンパイラ及びリンカの処理を説明する図
である。図の原始プログラムAはCALL文で外部名B
のプログラムを呼び出し、その際パラメータとしてUS
ING以下に指定する変数D1及びD2の値を渡すこと
を示す。なお、第1行及び第2行は変数D1及びD2の
データの属性と長さを指定する宣言文で、公知のように
Dlは数字2槓の文字列、D2は英字2桁の文字列を指
定する。
又、原始プログラムBはPROCEDURE DIVI
SION文のUSINGの指定により、この文以下に記
述されるプログラム本体が変数E1、E2及びE3の値
を持って呼び出されることを示す。こ−で変数E1、E
2及びE3のデータ属性、長さは第3〜第5行の宣言文
に指定されているように、2桁の数字、1桁の英字及び
1桁の英字の文字列である。又このプログラムの名前を
、第1行から始まるTDENTIFICATIONDI
VISION (7)中(7)PROGRAM−10文
によりBという外部名として定義する。
コンパイラは原始プログラムA、Bを各翻訳単位として
個別に処理し、それぞれオブジェクトA及びBとして示
す構成のオブジェクトプログラムを生成する。各オブジ
ェクトプログラムはテキストと付加情報等からなり、テ
キストは原始プログラムの手続き及びデータを翻訳して
生成する命令及びデータで構成されるオブジェクトプロ
グラムの本体であり、付加情報には図示のように外部名
の情報が含まれる。
外部名の情報は、各外部名と、それが参照先の名前か、
定義した名前かの別と、ポインタと、その他の情報から
なる。ポインタは例えばオブジェクトAに示すように、
参照先の外部名で定まる実体のアドレス(本例では外部
名Bのプログラムのアドレス)が決定したとき、当該ア
ドレスを埋め込むようにテキスト内に設けた領域(図に
V (B)と示す)を指示し、又オブジェク)Bに例示
するように、自身の定義した外部名で示す領域を直接指
示する。
次にリンカの結合編集処理では、オブジェクトプログラ
ムのテキストAとBをつなぐと共に、前記のような外部
名の情報を参照して、テキストAのV (B)にはテキ
ストBを指示するアドレスを埋め込むというような、未
解決のアドレスの処理等が行われる。
〔発明が解決しようとする課題〕
前記のように分割して記述される原始プログラムの翻訳
単位が連携して所要の処理を行うプログラムを構成する
ためには、一般に2以上の翻訳単位のプログラム間の規
約に従ういわゆるインタフェースが必要であり、そのイ
ンタフェースによってプログラム間で所要のパラメータ
を授受し、又は共通領域を設けて情報を交換する。
このインタフェースについては、当然情報の送り側と受
は側のプログラムにおける整合が必要であり、その整合
性をチェックする方法として、例えば原始プログラムを
解析してチェックするチェック専用ツールを設ける方法
があるが、このようなツールはコンパイラと同様なプロ
グラミング言語の解析能力が必要になるので、各言語ご
とにツールが必要になり、且つ利用者には必要な原始プ
ログラムを揃えてチェック処理のみを実行する手数が要
求される等の問題がある。
このために別の方法として、コンパイラがオブジェクト
プログラムに、インタフェースの整合性をチェックする
命令コードを用意し、プログラムの実行時に例えばパラ
メータのデータを受は取る側で、データの個数、属性、
長さ等のチ、Z7グを実行するようにする方法もあるが
、この場合には実行時にチェックのための処理時間及び
メモリ領域のオーバヘッドが加わる問題がある。
本発明は、それらの問題を解決して、プログラム作成者
に特別の手数を要求せず、且つ効率よ(プログラム間の
インタフェースの整合性をチエ・ツクするインタフェー
スチェック処理方法を目的とする。
〔課題を解決するための手段〕
第1図は、本発明の構成を示す処理の流れ閏である。
図はコンパイラ及びリンカの処理の流れを示し、l及び
2は原始プログラムからオブジェクトプログラムを生成
するコンパイラの処理ステップ、3及び4はそのオブジ
ェクトプログラムについて結合編集を行うリンカの処理
ステップである。
〔作 用〕
計算機において、コンパイラは処理ステップ1で原始プ
ログラムからオブジェクトプログラムを生成し、処理ス
テップ2で該原始プログラムで定義する外部名及び参照
実る外部名に対応して、該外部名によって呼出が行われ
る場合に授受するように該原始プログラムに定義されて
いるパラメータ及び該外部名の共通域の各データの属性
及び長さを示す所定形式のチェック情報を生成して、該
オブジェクトプログラムに付加する。
リンカは処理ステップ3で複数の該オブジェクトプログ
ラムについて所定の結合編集を行い、処理ステップ4で
、異なるオブジェクトプログラムに保持する同一の外部
名についてのチェック情報間の所定の整合性を検査する
以上の処理方法により、プログラム作成者に特別の手数
を要求せず、且つコンパイラ及びリンカの機能を利用し
て実行時のオーバヘッド増加等無しに、効率よくプログ
ラム間のインタフェースのチェックを行うことができる
〔実施例〕
例えばC0BOL言語で記述された原始プログラムを処
理するコンパイラは、第1図の処理ステップ1で従来と
同様に翻訳処理を実行して、原始プログラムからオブジ
ェクトプログラムを生成するが、その際にオブジェクト
プログラムの付加情報における各外部名の情報として、
チェック情報を設定する領域を設けておく。
次に処理ステップ2において、原始プログラムでプログ
ラム間の参照のために設けられる各外部名について次の
通りチェック情報を生成して付加情報に設定する。
チェック情報を生成する外部名は、■CALL文による
呼び出し先外部名、■自身のプログラム名である外部名
、及び■共通領域として宣言される外部名があり、CA
LL文については、その文でパラメータとしてUSIN
Gにより指定されている各変数の属性及び長さを、宣言
文を解釈して識別し、呼び出し先として指定されている
外部名のチェック情報とする。チェック情報は例えばパ
ラメータのデータの個数に続いて、所定の形式で各デー
タの属性と長さを示す情報を、CALL文に指定されて
いる順に並べた形式とする。
又、前記のようにPROGRAM−IDで指定される自
身のプログラム名である外部名については、その原始プ
ログラムノPROCEDURE DIVISrONのU
S4NGで指定されているパラメータについて、前記と
同様に宣言文を参照してチェック情報を、生成する。
共通領域はそれを使用する各プログラムで、宣言文によ
って定義され、公知のように例えば01 E PICX
(100) EXTERNAL。
の形式で、で英字100桁の文字列の領域を外部名がE
の共通領域とすることが指定されるので、宣言文に指定
されているデータの属性、長さから、その外部名のチェ
ック情報を生成する。
リンカは以上のように外部名のチェック情報を持つオブ
ジェクトプログラムについて、処理ステップ3で従来の
ように結合編集処理を行ってロードモジュールを生成し
た後、処理ステップ4ですべてのオブジェクトプログラ
ムの付加情報にある、同一の外部名のチェック情報につ
いての次のような照合処理を、例えば一つの外部名のチ
ェック情報と同一外部名の他のすべてのチェック情報と
を順次照合する方法で、すべての外部名のチェック情報
について行う。
各照合では、2つのチェック情報について、個数及び各
属性と長さの情報を、チェック情報に配列された順序に
照合し、不一致が検出された場合には、例えばプログラ
ムXから外部名Yの呼び出しの場合として、 [X=+Yでパラメータのデータ属性に一致しないもの
がありますj というような警告メツセージを出力する。
第2図は第3図と同様の原始プログラムの例により、以
上の処理方法による処理を説明する図であり、本発明の
コンパイラが原始プログラムA、Bを各翻訳単位として
個別に処理し、従来と同様に、それぞれオブジェクトA
及びBとして示す構成のオブジェクトプログラムを生成
する。こ\でテキストは従来と全く同様であるが、付加
情報の外部名の情報には、従来と同様の各外部名等の情
報に加えて、図示のように次のようなチェック情報を追
加して設定する。
即ち、オブジェクトAでは、外部名Bについてパラメー
タのデータが変数D1とD2の2個であり、宣言文に指
定される属性と長さを存するので、チェック情報を例え
ばr2,99.XX Jのように設定する。又、オブジ
ェクトBについても同様にして、外部名Bのチェック情
報にはr3.99.X、XJが設定される。
次に本発明のリンカの結合編集処理では、従来のように
オブジェクトプログラムのテキストAとBをつないで、
未解決のアドレスの処理等を行った後、外部名のチェッ
ク情報の照合処理を行うと、オブジェクI−AとBにあ
る同一の外部名Bについて、チェック情報を照合すると
、最初の個数の比較で不一致を検出するので、rA−>
Bでパラメータの個数が一致しません」というような警
告メツセージを出力する。
以上の処理方法により、プログラム作成者は、従来と同
様のプログラムの翻訳及び結合編集操作を行うことによ
り、自動的にプログラム間のインタフェース不整合の警
告を受けることができ、必要な処置を容易にとることが
できる。
このためのツールとして、各種プログラミング言語のコ
ンパイラには、本来の翻訳処理機能を利用して以上で述
べた外部名ごとのパラメータ等を抽出して、チェック情
報として設定する機能を追加し、又共通のリンカには、
チェック情報の照合処理機能を追加すればよく、対象プ
ログラムの実行時には何の影響も生じない。
〔発明の効果〕
以上の説明から明らかなように本発明によれば、計算機
における、プログラム間のインタフェース条件のチェッ
クが、プログラム作成者に特別の手数を要求せず、又実
行時のオーバヘッド増加等をもたらすこと無く効率よく
処理され、プログラム開発の生産性を向上するという著
しい工業的効果がある。
【図面の簡単な説明】
第1図は本発明の構成を示す処理の流れ図、第2図は本
発明の詳細な説明図、 第3図は従来の処理例の説明図、 第4図は計算機システムの構成例ブロック図である。 図において、 1〜4は処理ステップ、lOは処理装置、11はコンパ
イラ、    12は原始プログラム、13はオブジェ
クトプログラム、 14はリンカ、      15はロードモジュール、
16はコンソール 本発明の構成を示す処理の流れ図 第1図 本発明の詳細な説明図 第2図 従来の処理例の説明図 計算機システムの構成例ブロック間 第 図

Claims (1)

    【特許請求の範囲】
  1. 計算機の原始プログラムからオブジェクトプログラムを
    生成する(1)場合に、該原始プログラムで定義する外
    部名及び参照する外部名に対応して、該外部名によって
    呼出が行われる場合に授受するように該原始プログラム
    に定義されているパラメータ及び該外部名の共通域の各
    データの属性及び長さを示す所定形式のチェック情報を
    生成して、該オブジェクトプログラムに付加し(2)、
    複数の該オブジェクトプログラムについて所定の結合編
    集を行う(3)場合に、異なる該オブジェクトプログラ
    ムに保持する同一の該外部名についての該チェック情報
    間の所定の整合性を検査する(4)ように構成されてい
    ることを特徴とするインタフェースチェック処理方法。
JP2619889A 1989-02-03 1989-02-03 インタフェースチェック処理方法 Pending JPH02205930A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2619889A JPH02205930A (ja) 1989-02-03 1989-02-03 インタフェースチェック処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2619889A JPH02205930A (ja) 1989-02-03 1989-02-03 インタフェースチェック処理方法

Publications (1)

Publication Number Publication Date
JPH02205930A true JPH02205930A (ja) 1990-08-15

Family

ID=12186782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2619889A Pending JPH02205930A (ja) 1989-02-03 1989-02-03 インタフェースチェック処理方法

Country Status (1)

Country Link
JP (1) JPH02205930A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970705790A (ko) * 1994-09-02 1997-10-09 에르링 볼롬메, 클라스 노린 인터페이스 테스팅용 방법 및 시스템(a method and a system for testing an interface)
US9946524B2 (en) 2015-03-20 2018-04-17 Fujitsu Limited Method of compiling a source code, storage medium, and apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970705790A (ko) * 1994-09-02 1997-10-09 에르링 볼롬메, 클라스 노린 인터페이스 테스팅용 방법 및 시스템(a method and a system for testing an interface)
US9946524B2 (en) 2015-03-20 2018-04-17 Fujitsu Limited Method of compiling a source code, storage medium, and apparatus

Similar Documents

Publication Publication Date Title
JPS63181033A (ja) プログラム自動生成方式
JPH02205930A (ja) インタフェースチェック処理方法
JP2899316B2 (ja) 呼び出し元のコード系認識処理方式
JPH03240837A (ja) デバッグ情報生成装置
JP2827724B2 (ja) プログラムデバッグ処理方法
JPH04248624A (ja) プログラム変換処理装置
JPH0430239A (ja) コマンドオプション指定処理装置
JP3034527B2 (ja) エディタ装置
JPH1040089A (ja) データ移行プログラム生成方式
JPH08249193A (ja) プログラムの言語仕様範囲の検査方式
JPH03296820A (ja) アセンブル処理方法及びアセンブル処理装置
JPH0328932A (ja) 拡張された言語仕様のコンパイル方式
JPH08137681A (ja) グラフィカル・ユーザ・インタフェースの構築方式
JPH0390935A (ja) エキスパートシステム構築ツール
JPH07168711A (ja) プログラム管理方法
JPH05233241A (ja) プログラム作成装置
JPH04149732A (ja) 言語処理プログラムの処理方式
JPH06282424A (ja) プログラム設計書の自動作成装置
JPH07334399A (ja) 固定長レコード向けコード変換方式
JPH06236283A (ja) 言語処理システム
JPH0417028A (ja) プログラム言語の翻訳編集方式
JPH11272500A (ja) デバッグ方法ならびにそのためのデバッグ装置およびプログラム記憶媒体
JPS63128438A (ja) コンパイラの外部手続呼出し形式検査方法
JPH01109430A (ja) 計算機処理プログラム作成方法
JPH0342727A (ja) プリコンパイラによる名前生成方式