JPH01177165A - 配列の定義/引用関係検査方式 - Google Patents

配列の定義/引用関係検査方式

Info

Publication number
JPH01177165A
JPH01177165A JP96188A JP96188A JPH01177165A JP H01177165 A JPH01177165 A JP H01177165A JP 96188 A JP96188 A JP 96188A JP 96188 A JP96188 A JP 96188A JP H01177165 A JPH01177165 A JP H01177165A
Authority
JP
Japan
Prior art keywords
definition
array
source program
citation relationship
unknown
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
JP96188A
Other languages
English (en)
Inventor
Katsumi Yamamoto
克己 山本
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 JP96188A priority Critical patent/JPH01177165A/ja
Publication of JPH01177165A publication Critical patent/JPH01177165A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は配列の定義/引用関係検査方式に関し、特にベ
クトル命令を実行することが可能な計算機システムにお
ける配列の定義/引用関係検査方式〔従来の技術〕 従来、配列の定義/引用関係が静的なプログラム解析の
みでは不明なために原始プログラム中のループに対して
生成される命令にベクトル命令を適用する(以下、単に
「ループにベクトル命令を適用する」という)ことがで
きない場合(ベクトル命令を適用できるか否かが不確定
であるために結果として適用できない場合)には、コン
パイラによりその原始プログラムが翻訳される際にその
旨のメツセージ(後述する配列定義/引用関係不明ベク
トル化情報と同種の情fil)が出力されて当該ループ
に対して生成される命令にスカラ命令を適用する(以下
、単に「ループにスカラ命令を適用する」という)こと
が行われて目的プログラムが生成されていた。
さらに、このようにして出力されたメツセージと生成さ
れた目的プログラムの実行動作とに基づいて、原始プロ
グラム中の当該ループにベクトル命令を適用しても問題
がないかどうかの判断のための配列の定義/引用関係の
検査(ベクトル命令の適用に関する配列の定義/引用関
係の検査)が利用者によって行われていた。
この検査で当該ループにベクトル命令を適用しても問題
がないと判断された場合には、原始プログラム中にその
旨を示す指示行が挿入され、その指示行が挿入された原
始プログラムが再びコンパイラによって翻訳されること
により当該ループにベクトル命令が適用されて実行され
る目的プログラムが生成されていた(上述の検査で当該
ループにベクトル命令を適用するには問題があると判断
された場合には、ループにスカラ命令が適用された目的
プログラムのままで実行が行われていた)。
上述のように、配列の定義/引用関係が静的なプログラ
ム解析のみでは不明なために原始プログラム中のループ
にベクトル命令を適用できない場合の従来のベクトル命
令の適用に関する配列の定義/引用関係の動的な検査は
、利用者等の人手による配列の定義/引用関係検査方式
により行われていた。
〔発明が解決しようとする課題〕
上述した従来の配列の定義/引用関係検査方式では、原
始プログラム中のループにおけるベクトル命令の適用に
関する配列の定義/引用関係の動的な検査がコンパイラ
によって出力されたメツセージとコンパイラによって生
成された目的プログラムの実行動作とに基づいて利用者
等の人手によって行われているので、検査の対象のプロ
グラム(原始プログラムおよび目的プログラム)が複雑
な場合には上述の配列の定義/引用関係の検査が困難で
ある(完全に検査するのは不可能な場合が多い)という
欠点がある。
特に、プログラムの利用者が作成者ではない場合にはプ
ログラムの正確な実行動作が利用者にとって不明な場合
が多いので、プログラムが複雑な場合でなくともベクト
ル命令の適用に関する配列の定義/引用関係の検査が困
難なものになるという欠点がある。
本発明の目的は、上述の点に鑑み、検査の対象のプログ
ラムが複雑な場合でもプログラムの利用者が作成者では
ない場合でも、ベクトル命令の適用に関する配列の定義
/引用関係の動的な検査を容易に行うことができる配列
の定義/引用関係検査方式を提供することにある。
〔課題を解決するための手段〕
本発明の配列の定義/引用関係検査方式は、原始プログ
ラム中の配列の定義/引用関係が不明なためにベクトル
命令を適用できないループに関する配列定義/引用関係
不明ベクトル化情報を検出するベクトル化情報検出部と
、配列の定義/引用関係が不明なためにベクトル命令を
適用できないループの直前に定義/引用関係検査サブル
ーチン呼出しコール文が挿入された原始プログラムであ
るコール文挿入原始プログラムを前記ベクトル化情報検
出部により検出された配列定義/引用関係不明ベクトル
化情報に基づき作成する原始プログラム作成部と、この
原始プログラム作成部により作成されたコール文挿入原
始プログラムに基づくロードモジュールを実行しその過
程で前記原始プログラム作成部により挿入された定義/
引用関係検査サブルーチン呼出しコール文によって呼び
出された定義/引用関係検査サブルーチンに基づき配列
の定義/引用関係が不明なためにベクトル命令を適用で
きないループにおけるベクトル命令の適用に関する配列
の定義/引用関係の動的な検査を行いその検査結果を出
力する定義/引用関係検査部とを有する。
〔作用〕
本発明の配列の定義/引用関係検査方式では、ベクトル
化情報検出部が原始プログラム中の配列の定義/引用関
係が不明なためにベクトル命令を適用できないループに
関する配列定義/引用関係不明ベクトル化情報を検出し
、原始プログラム作成部が配列の定義/引用関係が不明
なためにベクトル命令を適用できないループの直前に定
義/引用関係検査サブルーチン呼出しコール文が挿入さ
れた原始プログラムであるコール文挿入原始プログラム
をベクトル化情報検出部により検出された配列定義/引
用関係不明ベクトル化情報に基づき作成し、定義/引用
関係検査部が原始プログラム作成部により作成されたコ
ール文挿入原始プログラムに基づくロードモジュールを
実行しその過程で原始プログラム作成部により挿入され
た定義/引用関係検査サブルーチン呼出しコール文によ
って呼び出された定義/引用関係検査サブルーチンに基
づき配列の定義/引用関係が不明なためにベクトル命令
を適用できないループにおけるベクトル命令の適用に関
する配列の定義/引用関係の動的な検査を行いその検査
結果を出力する。
〔実施例〕
次に、本発明について図面を参照して説明する。
第1図は、本発明の配列の定義/引用関係検査方式の一
実施例の構成を示すブロック図である。
本実施例の配列の定義/引用関係検査方式は、ベクトル
化情報検出部1  (FORTI’?ANコンパイラに
より実現される)と、原始プログラム作成部2と、翻訳
部3  (FORTRANコンパイラにより実現される
)と、リンク部4 (リンカにより実現される)と、定
義/引用関係検査部(ロードモジュール93を実行する
実行部により実現される)5と、原始プログラム6 (
FORTRANにより記述されている)と、配列定義/
引用関係不明ベクトル化情報7と、コール文挿入原始プ
ログラム8と、コンパイルユニット91と、定義/引用
関係検査サブルーチンコンパイルユニット92と、ロー
ドモジュール93と、検査結果94とから構成されてい
る。
原始プログラム作成部2は、ベクトル化情報取得部21
と、原始プログラム入力部22と、原始プログラム解析
部23と、コール文挿入部24と、原始プログラム出力
部25とを含んで構成されている。
第2図は、配列定義/引用関係不明ベクトル化情報7の
一例を示す図である。この回を参照すると、配列定義/
引用関係不明ベクトル化情報7は、行番号71と、メツ
セージ番号72と、メツセージ部73とから構成されて
いる。
第3図は、コール文挿入原始プログラム8の一例を示す
図である。この図を参照すると、コール文挿入原始プロ
グラム8は、定義/引用関係検査サブルーチン呼出しコ
ール文81および82を含んで構成されている。
第4図は、コール文挿入原始プログラム8と定義/引用
関係検査サブルーチン原始プログラム(図示せず、定義
/引用関係検査サブルーチンコンパイルユニット92の
原始プログラム、なお、定義/引用関係検査サブルーチ
ン原始プログラムおよび定義/引用関係検査サブルーチ
ンコンパイルユニット92の処理の内容に言及する場合
には「定義/引用関係検査サブルーチン」という)との
間のインタフェースとして使用されるパラメータを示す
図である。
次に、このように構成された本実施例の配列の定義/引
用関係検査方式の動作について説明する。
まず、配列の定義/引用関係が不明なためにベクトル命
令を適用できないループを有する原始プログラム6がF
ORTRANコンパイラによって翻訳される際に、この
FORTRANコンパイラにより実現されるベクトル化
情報検出部lにより配列の定義/引用関係が不明なため
にベクトル命令を適用できないループが検出され、その
ループに関する配列定義/引用関係不明ベクトル化情報
7 (該当するループ、該当する配列基および配列の定
義/引用関係が不明な箇所(行番号)等を明示して配列
の定義/引用関係が不明なためにそのループにベクトル
命令を適用できない旨を示す情fil)が第2図に示す
ような形式で出力される。
第2図に示す配列定義/引用関係不明ベクトル化情報7
においては、行番号71のr70J 、メンセ−ジ番号
72の「30」で識別されるメツセージ部73中のメツ
セージrUNsUrTABLE  DATA  REF
ERENCE  RELATION、Jおよびメツセー
ジ部73中の付加情11rARRAY: A  80.
90Jにより、配列への定義/引用関係が行番号80お
よび90の文で不明なために行番号70から始まるルー
プにベクトル命令を適用できないことが示されている(
第3図中の70行〜90行参照)。同様に、行番号71
のr150 J 、メツセージ番号72の「30」で識
別されるメツセージ部73中のメツセージおよびメツセ
ージ部73中の付加情報「ARR八Yへ: X  16
0 、160 Jにより、配列Xの定義/引用関係が行
番号160の文で不明なために行番号150から始まる
ループにベクトル命令を適用できないことが示されてい
る(第3図中の150行および160行参照)。
次に、原始プログラム作成部2では、配列の定義/引用
関係が不明なためにベクトル命令を適用できないループ
の直前に定義/引用関係検査サブルーチンを呼び出すコ
ール文(定義/引用関係検査サブルーチン呼出しコール
文81および82等)が挿入された原始プログラム(コ
ール文挿入原始プログラム8)がベクトル化情報検出部
1により検出された配列定義/引用関係不明ベクトル化
情幸侵7に基づいて第3図に示すように作成される。
すなわち、まず原始プログラム入力部22により原始プ
ログラム6が入力され、ベクトル化情報取得部21によ
り配列定義/引用関係不明ベクトル化情報7が取得され
る。
次に、原始プログラム6中の配列の定義/引用関係が不
明なためにベクトル命令を適用できないループが、配列
定義/引用関係不明ベクトル化情報7に基づいて原始プ
ログラム解析部23により検索される。
さらに、原始プログラム解析部23により検索されたル
ープの直前にベクトル命令の適用に関する配列の定義/
引用関係を検査するための定義/引用関係検査サブルー
チンを呼び出すコール文(定義/田川関係検査サブルー
チン呼出しコール文81(rCALL  DEPCEK
 (Nl、N2.N3゜K、J、−M、L)Jおよび定
義/引用関係検査サブルーチン呼出しコール文82(r
CALL  DEPCEK (1,に−1,1,5,1
,1,O)」)が、コール文挿入部24により挿入され
る。
最後に、定義/引用関係検査サブルーチン呼出しコール
文81および82が挿入されたコール文挿入原始プログ
ラム8が、原始プログラム出力部25により出力される
このようにして原始プログラム作成部2から出力された
コール文挿入原始プログラム8は、翻訳部3  (FO
RTRANコンパイラ)により翻訳されてコンパイルユ
ニット91として出力される。
コンパイルユニット91は、リンク部4 (リンカ)に
よりあらかじめ用意されている定義/引用関係検査サブ
ルーチンコンパイルユニット92(コール文挿入原始プ
ログラム8と第4図に示すようなパラメータによりイン
タフェースがとられている定義/引用関係検査サブルー
チン原始プログラムが翻訳されたコンパイルユニット、
第4図に示tパラメータにおいて第1パラメータおよび
第4パラメータを例示的に説明すると、第1パラメータ
は第3図中の定義/引用関係検査サブルーチン呼出しコ
ール文81の「N1」に該当するものでこの場合には7
0行から始まるDO小ループインデックス変数rlJの
初pJI値を示しており、第4パラメータは第3図中の
定義/引用関係検査サブルーチン呼出しコール文81の
rKJにJ亥当するものでこの場合には70行から始ま
るDOループ内でプログラムの実行順序で先に現れた配
列要素rA([J+K)J(配列要素rA (1*L−
M)Jよりも実行順序が先の配列要素)の1次元目(こ
の例では1次元のみしか存在しない)の添字式「I*J
+KJのインデックス変数rlJの値が0のときの値を
示している)と結合されてロードモジュール93が出力
される。
このようにして生成されたロードモジュール93は定義
/引用関係検査部5(実行部)により実行され、実行の
過程で定義/引用関係検査サブルーチンによりベクトル
命令の適用に関する配列の定義/引用関係が動的に検査
され、その検査の結果である検査結果94が定義/引用
関係検査部5によ、って自動的に出力される。
〔発明の効果〕
以上説明したように本発明は、配列の定義/引用関係が
静的なプログラム解析のみでは不明なためにベクトル命
令を適用できないループに対するベクトル命令の適用に
関する配列の定義/引用関係の動的な検査が利用者等の
人手を要することなく定義/引用関係検査サブルーチン
等の処理により自動的に行われることにより、検査の対
象のプログラムが複雑な場合でもプログラムの利用者が
−作成者ではない場合でもベクトル命令の適用に関する
配列の定n/引用関係の動的な検査を容易に行うことが
できるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、 第2図は第1図中の配列定義/引用関係不明ベクトル化
情報の一例を示す図、 第3図は第1図中のコール文挿入原始プログラムの一例
を示す図、 第4図は第1図中のコール文挿入原始プログラムと定義
/引用関係検査サブルーチン原始プログラム(第1図中
の定義/引用関係検査サブルーチンコンパイルユニット
の原始プログラム)との間のインタフェースとして使用
されるパラメータを示す図である。 図において、 1・・・ベクトル化情報検出部、 2・・・原始プログラム作成部、 3・・・翻訳部、    。 4・・・リンク部、 5・・・定義/引用関係検査部、 6・・・原始プログラム、 7・・・配列定義/引用関係不明ベクトル化情報、 8・・・コール文挿入原始プログラム、21・・・ベク
トル化情報取得部、 22・・・原始プログラム入力部、 23・・・原始プログラム解析部、 24・・・コール文挿入部、 25・・・原始プログラム出力部、 71・・・行番号、 72・・・メツセージ番号、 73・・・メツセージ部、 81、82・定義/引用関係検査サブルーチン呼出しコ
ール文、 91・・・コンパイルユニット、 92・・・定義/引用関係検査サブルーチンコンパイル
ユニット、 93・・・ロードモジュール、 94・・・検査結果である。

Claims (1)

  1. 【特許請求の範囲】  原始プログラム中の配列の定義/引用関係が不明なた
    めにベクトル命令を適用できないループに関する配列定
    義/引用関係不明ベクトル化情報を検出するベクトル化
    情報検出部と、 配列の定義/引用関係が不明なためにベクトル命令を適
    用できないループの直前に定義/引用関係検査サブルー
    チン呼出しコール文が挿入された原始プログラムである
    コール文挿入原始プログラムを前記ベクトル化情報検出
    部により検出された配列定義/引用関係不明ベクトル化
    情報に基づき作成する原始プログラム作成部と、 この原始プログラム作成部により作成されたコール文挿
    入原始プログラムに基づくロードモジュールを実行しそ
    の過程で前記原始プログラム作成部により挿入された定
    義/引用関係検査サブルーチン呼出しコール文によって
    呼び出された定義/引用関係検査サブルーチンに基づき
    配列の定義/引用関係が不明なためにベクトル命令を適
    用できないループにおけるベクトル命令の適用に関する
    配列の定義/引用関係の動的な検査を行いその検査結果
    を出力する定義/引用関係検査部と、を有することを特
    徴とする配列の定義/引用関係検査方式。
JP96188A 1988-01-05 1988-01-05 配列の定義/引用関係検査方式 Pending JPH01177165A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP96188A JPH01177165A (ja) 1988-01-05 1988-01-05 配列の定義/引用関係検査方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP96188A JPH01177165A (ja) 1988-01-05 1988-01-05 配列の定義/引用関係検査方式

Publications (1)

Publication Number Publication Date
JPH01177165A true JPH01177165A (ja) 1989-07-13

Family

ID=11488246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP96188A Pending JPH01177165A (ja) 1988-01-05 1988-01-05 配列の定義/引用関係検査方式

Country Status (1)

Country Link
JP (1) JPH01177165A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5934494A (en) * 1993-11-19 1999-08-10 Mitsubishi Gas Chemical Company, Inc. Packing for lid
JP2002179121A (ja) * 2000-12-06 2002-06-26 Goglio Luigi Milano Spa 芳香性・臭気性製品用容器に使用する選択ガス抜きバルブ
JP2013521572A (ja) * 2010-03-01 2013-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーション アグレッシブ最適化によって施された変更をロールバック可能なアグレッシブ・コード最適化を実行する装置、方法及びコンピュータ・プログラム
JP2016224812A (ja) * 2015-06-02 2016-12-28 富士通株式会社 並列計算装置、並列処理方法、並列処理プログラムおよびコンパイルプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5934494A (en) * 1993-11-19 1999-08-10 Mitsubishi Gas Chemical Company, Inc. Packing for lid
JP2002179121A (ja) * 2000-12-06 2002-06-26 Goglio Luigi Milano Spa 芳香性・臭気性製品用容器に使用する選択ガス抜きバルブ
JP2013521572A (ja) * 2010-03-01 2013-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーション アグレッシブ最適化によって施された変更をロールバック可能なアグレッシブ・コード最適化を実行する装置、方法及びコンピュータ・プログラム
JP2016224812A (ja) * 2015-06-02 2016-12-28 富士通株式会社 並列計算装置、並列処理方法、並列処理プログラムおよびコンパイルプログラム

Similar Documents

Publication Publication Date Title
JP7172435B2 (ja) 抽象コードグラフを用いたソフトウェアの表現
US8122440B1 (en) Method and apparatus for enumerating external program code dependencies
US5255385A (en) Method of testing program, and compiler and program testing tool for the method
JPH05257709A (ja) 並列化判別方法およびそれを用いた並列化支援方法
US10853051B2 (en) Automated candidate repair patch generation
Agarwal et al. Copilot evaluation harness: Evaluating llm-guided software programming
JPH0748182B2 (ja) プログラム・エラー検出方法
Novikov et al. The approach to finding errors in program code based on static analysis methodology
Zhou et al. FeatureBench: Benchmarking Agentic Coding for Complex Feature Development
JPH01177165A (ja) 配列の定義/引用関係検査方式
CN118193382B (zh) 应用程序的测试方法、装置、设备、存储介质及程序产品
Lyons et al. Lightweight multilingual software analysis
Henry A technique for hiding proprietary details while providing sufficient information for researchers; or, do you recognize this well-known algorithm?
Gyén et al. Code Comprehension for the Move Semantics in C+
JPH09288580A (ja) ソースプログラムの最適化装置および最適化方法
JP2621555B2 (ja) ベクトル化処理方式
JP2815178B2 (ja) コンパイラ装置
JP3584204B2 (ja) 原始プログラム自動変換装置
JPH01154256A (ja) プログラムのエラー位置検出方法
JPH0355633A (ja) モジュール間インタフェイス検査装置
Lamar et al. ROSE LCOM Tools
JPH04211831A (ja) プログラム検証方法
Alves et al. Testing Framework Migration with Large Language Models
Garstecki et al. Testing for conformance of parallel programming pattern languages
JP3167386B2 (ja) プログラム自動並列化方法