JPH04211831A - Program verifying method, and trace data displaying method and compiling method for the same - Google Patents

Program verifying method, and trace data displaying method and compiling method for the same

Info

Publication number
JPH04211831A
JPH04211831A JP3029848A JP2984891A JPH04211831A JP H04211831 A JPH04211831 A JP H04211831A JP 3029848 A JP3029848 A JP 3029848A JP 2984891 A JP2984891 A JP 2984891A JP H04211831 A JPH04211831 A JP H04211831A
Authority
JP
Japan
Prior art keywords
program
array
inspected
executed
access 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.)
Granted
Application number
JP3029848A
Other languages
Japanese (ja)
Other versions
JP3094475B2 (en
Inventor
Sumio Kikuchi
菊池 純男
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP03029848A priority Critical patent/JP3094475B2/en
Publication of JPH04211831A publication Critical patent/JPH04211831A/en
Application granted granted Critical
Publication of JP3094475B2 publication Critical patent/JP3094475B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PURPOSE:To offer a method for checking the reference relation of array data and verifying propriety for parallel processing or vector processing by executing an objective program, and the method for displaying intelligibly the result of this verification. CONSTITUTION:The propriety for the parallel processing or the vector processing is verified by inputting array access information 512 obtained by executing the object program, and comparing access identifiers included in old reference information and newly read reference information with each other for the same array element by a processing part 520, and the result is displayed on a display device after a display color is determined by a display color determining part 526 in order to display the result so as to be easy to understand.

Description

【発明の詳細な説明】[Detailed description of the invention]

【0001】0001

【産業上の利用分野】本発明は、プログラムを検証する
方法、およびその方法のためのプログラム検証ツールと
コンパイラに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for verifying a program, and a program verification tool and compiler for the method.

【0002】特に、並列処理あるいはベクトル処理を目
的とするプログラム実行時における配列データの不正参
照の可能性を検出して対応するソースプログラムの適否
を検証する方法およびその方法を実行するのに有用なプ
ログラム検証ツールおよびコンパイラに関する。
In particular, a method for detecting the possibility of unauthorized reference to array data during execution of a program aimed at parallel processing or vector processing and verifying the appropriateness of the corresponding source program, and a method useful for executing the method. Regarding program verification tools and compilers.

【0003】0003

【従来の技術】並列計算機あるいはベクトル計算機でユ
ーザプログラムを実行した場合しばしば発生する不良原
因の一つは、配列データの不正参照(つまり定義と引用
の順番が変わること)である。
2. Description of the Related Art When a user program is executed on a parallel computer or a vector computer, one of the causes of failures that often occur is incorrect references to array data (that is, changes in the order of definition and reference).

【0004】逐次実行用ソースプログラムから並列計算
機あるいはベクトル計算機で実行可能な部分を自動的に
見付け出す機能を持ったコンパイラでは、配列データに
ついて同一配列要素に対して定義と引用、定義と定義が
同じループ繰返しで行なわれるかを解析し、ソースプロ
グラムの並列化あるいはベクトル化が可能かどうかが判
定される。しかし、配列添字内に実行時中に値が決まる
変数が存在するような場合にはコンパイル時にどの配列
要素かを決定することができない。この場合にはコンパ
イラは並列化やベクトル化を判定できないため、通常ユ
ーザによる指示に従って並列化する方法がとられている
。しかしながらこの方法では指示を誤るために実行結果
の不良を引き起こすことが多い。
[0004] A compiler that has a function of automatically finding parts that can be executed on a parallel computer or a vector computer from a source program for sequential execution has a function of automatically finding parts that can be executed on a parallel computer or vector computer from a source program for sequential execution. It is determined whether the source program can be parallelized or vectorized by analyzing whether the loop is repeated. However, if there is a variable whose value is determined during execution within an array index, it is not possible to determine which array element it is during compilation. In this case, the compiler cannot determine whether to parallelize or vectorize the program, so it usually parallelizes the program according to user instructions. However, this method often causes poor execution results due to incorrect instructions.

【0005】また、並列処理を記述することができる言
語で書かれたプログラムでは、ユーザの記述誤りが発生
しやすい。この誤りをコンパイラによる配列データの参
照関係のチェックで発見することも可能であるが、上述
したように、全てのケースがコンパイル時の解析によっ
て明らかにならないため、やはり実行結果の不良を引き
起こすことがある。
Furthermore, in a program written in a language that can describe parallel processing, errors in the user's description are likely to occur. It is possible to detect this error by checking the reference relationships of array data by the compiler, but as mentioned above, not all cases are revealed by analysis at compile time, so it may still cause poor execution results. be.

【0006】プログラムを実行したときの配列データへ
のアクセスパターンをチェックし、表示する従来の方法
が、「Parallel Computing9 (1
988/89) 25−35」において論じられている
。この方法は、高性能計算機向けアルゴリズムを検証す
ることを狙いとしたものであり、逐次実行用プログラム
が実行された場合の定義と引用のアクセス順がそれぞれ
別ウィンドウ画面に表示される。
A conventional method for checking and displaying the access pattern to array data when a program is executed is ``Parallel Computing9 (1
988/89) 25-35. This method is aimed at verifying algorithms for high-performance computers, and displays the access order of definitions and citations in separate windows when a sequential execution program is executed.

【0007】[0007]

【発明が解決しようとする課題】上記従来技術では、並
列計算機あるいはベクトル計算機で実行されるプログラ
ムについては考慮されていない。即ち、そのデバッグと
いう観点で、配列データの不正参照の可能性をチェック
することについての考慮がなされていない。従って、配
列データの参照関係をチェックし、プログラムが並列処
理あるいはベクトル処理に適するか否かを検証する方法
が必要となる。また、検証結果を分かり易く表示する方
法と、そのためのプログラム検証ツールとコンパイラが
必要となる。
[Problems to be Solved by the Invention] The above-mentioned prior art does not take into consideration programs to be executed on parallel computers or vector computers. That is, from the viewpoint of debugging, no consideration is given to checking the possibility of unauthorized reference to array data. Therefore, a method is needed to check the reference relationships of array data and verify whether a program is suitable for parallel processing or vector processing. Additionally, a method for displaying verification results in an easy-to-understand manner and a program verification tool and compiler for this purpose are also required.

【0008】並列計算機あるいはベクトル計算機で実行
することを目的とするプログラムのデバッグは、これら
ターゲット計算機を用いてデバッグするのが一般的であ
る。しかし、デバックのためにこれらの高性能計算機を
使用するのは計算機利用効率という面で問題がある。
[0008] Programs intended to be executed on parallel computers or vector computers are generally debugged using these target computers. However, using these high-performance computers for debugging has a problem in terms of computer utilization efficiency.

【0009】本発明の第1の目的は、オブジェクトプロ
グラム実行時における配列データの参照関係をチェック
して、対応するソースプログラムの並列処理あるいはベ
クトル処理に対する適否を検証する方法を提供すること
にある。
A first object of the present invention is to provide a method for checking the reference relationships of array data during execution of an object program and verifying whether the corresponding source program is suitable for parallel processing or vector processing.

【0010】また、本発明の第2の目的は、その検証結
果を分かり易く表示する方法を提供することにある。
A second object of the present invention is to provide a method for displaying the verification results in an easy-to-understand manner.

【0011】本発明の第3の目的は、並列計算機やベク
トル計算機で実行することを目的とするソースプログラ
ムをコンパイルするためのコンパイラを提供することに
ある。
A third object of the present invention is to provide a compiler for compiling a source program intended to be executed on a parallel computer or vector computer.

【0012】0012

【課題を解決するための手段】本発明の特徴の第1の観
点では、並列処理単位としての複数の並列プロセスに番
号を割当て、配列要素が定義された並列プロセス番号と
、その配列要素が作用された並列プロセス番号とを比較
し、両者が一致するか否かによってその配列要素への不
正参照の可能性を判定する。これによりプログラムの並
列処理可能性が検証されることができる。
[Means for Solving the Problems] In a first aspect of the characteristics of the present invention, numbers are assigned to a plurality of parallel processes as parallel processing units, and the number of the parallel process in which an array element is defined and the number of the parallel process in which the array element is The possibility of an illegal reference to the array element is determined based on whether the two match. This allows the possibility of parallel processing of the program to be verified.

【0013】また、本発明の特徴の第2の観点では、ベ
クトル化文に順に番号を付け、検査されるべき配列要素
が定義されたベクトル化文番号と、その配列要素が引用
されたベクトル化文番号とを比較し、両者の大小によっ
てその配列要素への不正参照の可能性を判定する。これ
によりプログラムのベクトル処理可能性が検証されるこ
とができる。
In addition, in a second aspect of the characteristics of the present invention, the vectorized statements are numbered in order, and the vectorized statement number in which the array element to be inspected is defined, and the vectorized statement in which the array element is cited are assigned numbers. The statement number is compared and the possibility of an illegal reference to the array element is determined based on the size of both. This allows the vector processing capability of the program to be verified.

【0014】また、本発明の特徴の、第3の観点では、
複数の配列要素に対応する表示領域を一次元または二次
元のマトリクス状に配置し、それらの各表示領域で、対
応する配列要素への不正参照の可能性を示すデータが表
示される。
[0014] Furthermore, in a third aspect of the characteristics of the present invention,
Display areas corresponding to a plurality of array elements are arranged in a one-dimensional or two-dimensional matrix, and data indicating the possibility of unauthorized reference to the corresponding array element is displayed in each display area.

【0015】また、本発明の特徴の第4の観点では、配
列要素の定義・引用の別を示すアクセス種別と、添字値
と、アクセスされた並列プロセス番号またはベクトル化
ソース文番号とを配列アクセス情報として入力し、その
配列要素が定義された並列プロセス番号またはベクトル
化ソース文番号と、その配列要素が引用された並列プロ
セス番号またはベクトル化ソース文番号とを比較して、
プログラムの並列処理可能性またはベクトル処理可能性
を検証することができるプログラム検証ツールとそのプ
ログラム検証ツールが前記配列アクセス情報をソースプ
ログラムから得られるようにするコンパイラが提供され
る。
According to a fourth aspect of the characteristics of the present invention, the access type indicating whether an array element is defined or cited, the subscript value, and the accessed parallel process number or vectorized source statement number are used as array access information. input as information and compare the parallel process number or vectorization source statement number in which the array element was defined with the parallel process number or vectorization source statement number in which the array element was cited,
A program verification tool that can verify the parallelism or vectorability of a program and a compiler that allows the program verification tool to obtain the array access information from a source program are provided.

【0016】[0016]

【作用】並列処理可能であるためには、並列プロセスを
任意の順番で実行しても正しい結果が得られる必要があ
る。つまり、各配列要素の定義と引用は同じ並列プロセ
スで行われる必要がある。定義時の並列プロセス番号と
引用時の並列プロセス番号とが異なることを検出するこ
とにより、配列データへの不正参照の可能性を検出する
ことが出来る。すなわち、第1の観点により、プログラ
ムの並列処理に対する適否を検証できる。
[Operation] In order for parallel processing to be possible, correct results must be obtained even if parallel processes are executed in any order. This means that each array element must be defined and referenced in the same parallel process. By detecting that the parallel process number at the time of definition and the parallel process number at the time of quotation are different, it is possible to detect the possibility of unauthorized reference to array data. That is, from the first viewpoint, it is possible to verify the suitability of a program for parallel processing.

【0017】一方、ベクトル処理されるときの各配列要
素の参照順序はベクトル化ソース文番号の順となるから
、定義が引用より先にあるためには、ある配列要素の引
用時のソース文番号がその配列要素の定義時のソース文
番号より大きい必要がある。引用時のソース文番号と定
義のソース文番号の大小を比較することにより、配列デ
ータへの不正参照の可能性を検出することが出来る。 すなわち、上記第2の観点により、プログラムのベクト
ル処理に対する適否を検証できる。
On the other hand, when vector processing is performed, the reference order of each array element is in the order of the vectorization source statement number, so in order for the definition to come before the quotation, the source statement number at the time of quotation of a certain array element must be must be greater than the source statement number at the time the array element was defined. By comparing the size of the source statement number at the time of quotation and the source statement number of the definition, it is possible to detect the possibility of illegal reference to array data. That is, from the second viewpoint, it is possible to verify whether a program is suitable for vector processing.

【0018】第3の観点によるトレースデータの表示方
法では、各配列要素への不正参照の可能性が、画面上で
マトリクス状に配置されて表示される。従って、どの配
列要素が並列処理あるいはベクトル処理の阻害原因かを
一目で把握できるようになる。
In the trace data display method according to the third aspect, the possibility of unauthorized reference to each array element is displayed in a matrix arrangement on the screen. Therefore, it becomes possible to understand at a glance which array element is the cause of inhibiting parallel processing or vector processing.

【0019】第4の観点による本発明のプログラム検証
ツールおよびコンパイラは、逐次計算機で動作すること
が出来るから、並列計算機やベクトル計算機で実行する
ことを目的とするソースプログラムを逐次計算機を用い
てデバッグすることが可能となる。
Since the program verification tool and compiler of the present invention according to the fourth aspect can operate on a sequential computer, a source program intended to be executed on a parallel computer or a vector computer can be debugged using a sequential computer. It becomes possible to do so.

【0020】[0020]

【実施例】次に、本発明の実施例を図面を参照しつつ説
明する。なお、これにより本発明が限定されるものでは
ない。
Embodiments Next, embodiments of the present invention will be described with reference to the drawings. Note that the present invention is not limited thereby.

【0021】図1は、ソースプログラムをロードモジュ
ールに変換し、実行するための逐次計算機システムの構
成を示す。逐次計算機システムはCPU10,メモリ1
2,外部格納装置14,表示装置16,キーボード18
から構成される。装置14にはソースプログラム100
と本発明によるコンパイラ200が格納されている。図
3は逐次計算機システムの機能ブロック図を示す。装置
14に格納されているソースプログラム100とコンパ
イラ200はメモリ12にロードされる。コンパイラ2
00がCPU10により実行され、ソースプログラム1
00はユーザが入力する検査対象とする配列の名称に依
存してロードモジュール300に変換され、メモリ12
に格納される。その後ロードモジュール300は装置1
4に格納される。
FIG. 1 shows the configuration of a sequential computer system for converting a source program into a load module and executing it. The sequential computer system has 10 CPUs and 1 memory.
2, external storage device 14, display device 16, keyboard 18
It consists of The device 14 has a source program 100
and a compiler 200 according to the present invention are stored. FIG. 3 shows a functional block diagram of the sequential computer system. Source program 100 and compiler 200 stored in device 14 are loaded into memory 12 . Compiler 2
00 is executed by the CPU 10, and the source program 1
00 is converted to the load module 300 depending on the name of the array to be inspected input by the user, and the memory 12
is stored in After that, the load module 300
It is stored in 4.

【0022】コンパイラ200は、ループ分割部230
と、アクセス情報付加部210と、コード生成部220
とを有している。
[0022] The compiler 200 uses a loop dividing unit 230
, an access information addition section 210, and a code generation section 220
It has

【0023】230は、ソースプログラム100が並列
処理を目的とする場合には、ソースプログラム100の
並列処理の対象部分を複数の並列処理単位に分け、21
0は各並列処理単位内のユーザが指定した検査対象配列
の要素にその並列処理単位を示すアクセス識別子を割当
てる。例えば、230は、図13のループ40をループ
41に変換する。並列処理のための分割数NDを4とす
ると、ループ41はループ40aから40dと等価であ
る。210は並列プロセス番号#1のループ40a内の
文41aで定義される配列Aの要素と、文42aで引用
される配列Aの要素に対しては、アクセス識別子#1を
割当てる。同様に、並列プロセス番号#2,#3,#4
のループ40b,40c,40d内で定義・引用される
配列Aの要素にはアクセス識別子#2,#3,#4をそ
れぞれ割当てる。
When the source program 100 is intended for parallel processing, 230 divides the part of the source program 100 to be parallel processed into a plurality of parallel processing units.
0 allocates an access identifier indicating the parallel processing unit to the element of the array to be inspected specified by the user within each parallel processing unit. For example, 230 converts loop 40 in FIG. 13 to loop 41. If the number of divisions ND for parallel processing is 4, the loop 41 is equivalent to the loops 40a to 40d. 210 assigns access identifier #1 to the elements of array A defined by statement 41a in loop 40a of parallel process number #1 and to the elements of array A referred to by statement 42a. Similarly, parallel process numbers #2, #3, #4
Access identifiers #2, #3, and #4 are assigned to elements of array A defined and referenced in loops 40b, 40c, and 40d, respectively.

【0024】次に、コード生成部220は、検査対象配
列の要素の定義または引用がある毎にそのアクセス情報
レコードを配列アクセス情報ファイル400へ出力する
ためのオブジェクトコードを生成し、オブジェクトプロ
グラムに付加しロードモジュール300に出力する。コ
ンパイル中にオブジェクトプログラムに付加するもので
もよい。アクセス情報レコードには、アクセス識別子の
他、アクセスされる配列要素の値と添字、及びソースプ
ログラムのステートメント番号が含まれる。
Next, the code generation unit 220 generates an object code for outputting the access information record to the array access information file 400 every time an element of the array to be inspected is defined or cited, and adds it to the object program. and outputs it to the load module 300. It may also be added to the object program during compilation. The access information record includes the access identifier, the value and subscript of the array element to be accessed, and the statement number of the source program.

【0025】以上により、コンパイラ200から出力さ
れたロードモジュール300の実行が完了すれば、その
配列データに関するアクセス情報レコードが格納された
配列アクセス情報ファイル400が作成され格納装置2
6に格納される。
As described above, when the execution of the load module 300 output from the compiler 200 is completed, an array access information file 400 storing access information records regarding the array data is created and stored in the storage device 2.
6.

【0026】ファイル400の各レコードは、図7に示
す如きデータ形式を有している。フィールド410には
、配列データの要素がアクセスされた順番が格納される
。フィールド420には、定義か引用か示すアクセス種
別が格納される。フィールド430には、次元別の配列
添字値が格納される。フィールド440には、アクセス
識別子が格納される。フィールド450にはソースプロ
グラムの文番号が格納される。フィールド460にはア
クセスされた配列要素の値が格納される。
Each record of the file 400 has a data format as shown in FIG. Field 410 stores the order in which the elements of array data are accessed. Field 420 stores an access type indicating whether it is a definition or a quotation. Field 430 stores array subscript values for each dimension. Field 440 stores an access identifier. Field 450 stores the statement number of the source program. Field 460 stores the value of the accessed array element.

【0027】ファイル400は、本発明の一実施例のプ
ログラム検証ツールを含むトレースデータ表示ツール5
00と共に、シングル計算機システムの格納装置14か
らメモリ12に移され実行される。これにより並列計算
機システムは他の処理に使用することができる。
The file 400 is a trace data display tool 5 including a program verification tool according to an embodiment of the present invention.
00 from the storage device 14 of the single computer system to the memory 12 and executed. This allows the parallel computer system to be used for other processing.

【0028】図6ツール500を示す。ツール500は
配列情報入力部510と配列アクセス情報処理部520
を有している。部510はファイル400のレコードを
フィールド410のアクセス番号順に入力し、部520
に渡す。
FIG. 6 shows a tool 500. The tool 500 includes an array information input section 510 and an array access information processing section 520.
have. The section 510 inputs the records of the file 400 in the order of access numbers in the field 410, and the section 520
give it to

【0029】部520は、図8に示すように、アクセス
識別子比較部522と、アクセス識別情報更新部524
と、表示色決定部526と、アクセス識別子格納用スト
レージ528を有している。ストレージ528は、配列
要素に対応したエントリを有しており、アクセスされた
配列要素のアクセス識別子とアクセス識別とを、対応す
るエントリに格納する。この格納されたアクセス識別子
はPREIDと表わされ初期値は0である。
As shown in FIG. 8, the unit 520 includes an access identifier comparing unit 522 and an access identification information updating unit 524.
, a display color determining section 526 , and a storage 528 for storing an access identifier. The storage 528 has entries corresponding to array elements, and stores the access identifier and access identification of the accessed array element in the corresponding entry. This stored access identifier is expressed as PREID and has an initial value of 0.

【0030】部520は、並列計算機で実行することを
目的とするプログラムに対しては、図9に示すフローチ
ャートに従って作動する。
The unit 520 operates according to the flowchart shown in FIG. 9 for programs intended to be executed on parallel computers.

【0031】これらフローチャート中、ステップ522
a〜522eは部522による処理を、ステップ524
aは部524による処理を、ステップ526a〜526
cは部526による処理を示す。
In these flowcharts, step 522
a to 522e perform the processing by the unit 522 in step 524.
a performs the processing by the unit 524 in steps 526a to 526.
c indicates processing by the unit 526.

【0032】次に、図9に示す並列計算機で実行するこ
とを目的とするプログラムに対する作動を説明する。
Next, the operation of the program intended to be executed on the parallel computer shown in FIG. 9 will be explained.

【0033】最初に並列計算機で実行することを目的と
するソースプログラムに対する本発明のプログラム検証
方法の実施例を図11〜14を用いて説明する。
First, an embodiment of the program verification method of the present invention for a source program intended to be executed on a parallel computer will be described with reference to FIGS. 11 to 14.

【0034】図11に示すループ30を並列に計算する
ことは、ループ30をループ30a,30b,30c,
30dに分割し、これら分割したループ30a,30b
,30c,30dを並列に実行することである。このと
きに、もし、分割したループにまたがって同一配列要素
の定義・引用が存在すると、もとの定義・引用の順が逆
転する可能性がある。これは、並列実行といっても、プ
ロセッサの空き状態により各分割ループが同時に実行さ
れると限らないからである。
Computing the loop 30 shown in FIG. 11 in parallel means that the loop 30 is
30d, and these divided loops 30a, 30b
, 30c, and 30d in parallel. At this time, if definitions and references to the same array element exist across the divided loops, the original order of definitions and references may be reversed. This is because even though it is called parallel execution, each divided loop is not necessarily executed at the same time depending on the idle state of the processor.

【0035】さらに、同一要素への定義が分割したルー
プの異なるループに存在する場合も、その要素の最終値
がプロセッサの状態によって変化する可能性がある。し
たがって、これら2つのケースは並列計算機で正しく実
行できる。
Furthermore, even if definitions for the same element exist in different loops of the divided loops, the final value of that element may change depending on the state of the processor. Therefore, these two cases can be executed correctly on a parallel computer.

【0036】図12(A)〜(E)は図11で入力変数
K=0の場合のループ30、およびループ30a,30
b,30cと30dにおける配列Aの要素の定義・引用
の関係を示している。配列Aの要素A(I)d は定義
を表わし、配列Aの要素A(I)u は引用を表わす。 ループ30、およびループ30a,30b,30cおよ
び30dのいずれでも配列Aの各要素は同じループでの
み定義・引用が発生し、異なるループの間では定義・引
用の関係を持たない。従ってループ30は、並列計算機
で正しく実行できる。
FIGS. 12A to 12E show the loop 30 in FIG. 11 when the input variable K=0, and the loops 30a and 30.
It shows the relationship between definitions and references of elements of array A in b, 30c and 30d. Element A(I)d of array A represents a definition, and element A(I)u of array A represents a citation. In any of the loops 30, 30a, 30b, 30c, and 30d, each element of the array A is defined/quoted only in the same loop, and there is no definition/quotation relationship between different loops. Therefore, loop 30 can be correctly executed on a parallel computer.

【0037】次に、図13のループ40を実行すること
は、これを分割することにより得られるループ40a,
40b,40c,40dを並列実行するのと等価である
Next, executing the loop 40 of FIG. 13 means that the loop 40a, which is obtained by dividing it,
This is equivalent to executing 40b, 40c, and 40d in parallel.

【0038】図14(A)〜(D)ループ40、および
ループ40a,40b,40c,40dにおける配列A
の要素の定義・引用の関係を示している。この場合には
、異なるループの間で同一要素が定義・引用される。 従って、並列実行によって不正参照が発生する可能性が
ある。
FIGS. 14(A) to (D) Loop 40 and array A in loops 40a, 40b, 40c, and 40d
It shows the relationship between definitions and citations of elements. In this case, the same element is defined and referenced between different loops. Therefore, there is a possibility that illegal references may occur due to parallel execution.

【0039】一般に、配列添字が複雑で、しかも実行時
に入力文などによって値が決まる変数が添字に含まれる
と、実行するまでこの参照関係が分からないため、並列
計算機で正しく実行できるかどうかコンパイル時に判定
が容易でない。そこで、元のプログラムを並列対象部分
たとえばループを並列処理単位に分け任意の順番に並べ
たものと等価なプログラムに変換し、そのプログラムを
逐次計算機で実行させ、各配列要素の定義・引用が同一
並列処理単位で発生するか、異なる並列処理単位で発生
するかあるいは定義が異なる並列処理単位で発生するか
をチェックすることにすれば、上記参照関係を容易にチ
ェックできる。
In general, if an array subscript is complex and includes a variable whose value is determined by an input statement at runtime, this reference relationship is not known until execution, so it is necessary to check at compile time whether it can be executed correctly on a parallel computer. It is not easy to judge. Therefore, we converted the original program into a program equivalent to dividing the parallel target part (for example, a loop) into parallel processing units and arranging them in an arbitrary order, and then executed the program sequentially on a computer so that the definitions and references of each array element were the same. The above reference relationship can be easily checked by checking whether it occurs in a parallel processing unit, in a different parallel processing unit, or in parallel processing units with different definitions.

【0040】言い換えると、各配列要素の引用時の並列
プロセス番号(並列処理単位につけた番号)と定義時の
並列プロセス番号とが同じかあるいは各定義時の並列プ
ロセス番号が同じか否かをチェックすることによりプロ
グラムの並列処理可能性を検証することが出来る。
In other words, check whether the parallel process number (number given to a parallel processing unit) at the time of quoting each array element is the same as the parallel process number at the time of definition, or whether the parallel process numbers at each definition are the same. By doing so, it is possible to verify the possibility of parallel processing of the program.

【0041】図9のステップ522bでは、入力された
処理対象の配列要素に対応するので同じ添字値をもつア
クセス識別子格納用ストレージ528のエントリから旧
アクセス識別子PREIDと旧アクセス種別を読み込む
In step 522b of FIG. 9, the old access identifier PREID and the old access type are read from the entry in the access identifier storage storage 528 that has the same subscript value as they correspond to the input array element to be processed.

【0042】ステップ522dでは、PREID=0か
判定する。PREID=0、すなわち、現在処理中の配
列要素の値が未だ定義も引用もされていない場合には、
ステップ524aに進む。PREID≠0、すなわち、
現在処理中の配列要素の値が既に定義あるいは引用され
ている場合には、ステップ522eに進む。ステップ5
22eでは、新,旧アクセス種別がともに引用か判定す
る。ともに引用の場合には、ステップ522aに進む。 ともに引用でなければ、ステップ522cに進む。ステ
ップ522cでは、現在処理中の配列要素の新アクセス
識別子NOWIDと旧アクセス識別子PREIDとが等
しいか判定する。異なる場合には、ステップ526aに
進む。等しい場合にはステップ522aに進む。
In step 522d, it is determined whether PREID=0. If PREID=0, that is, the value of the array element currently being processed has not been defined or referenced yet,
Proceed to step 524a. PREID≠0, i.e.
If the value of the array element currently being processed has already been defined or referenced, the process proceeds to step 522e. Step 5
In step 22e, it is determined whether the new and old access types are both quotation. If both are citations, the process advances to step 522a. If neither is a citation, the process advances to step 522c. In step 522c, it is determined whether the new access identifier NOWID and the old access identifier PREID of the array element currently being processed are equal. If different, proceed to step 526a. If they are equal, the process proceeds to step 522a.

【0043】ステップ524aでは、現在処理中の配列
要素のアクセス識別子NOWIDとアクセス種別を、対
応するストレージ528のエントリに格納する。そして
、ステップ522aに進む。ステップ522aでは、現
在処理中の配列要素のアクセス種別を判定する。種別が
定義ならば、ステップ526cに進む。種別が引用なら
ば、ステップ526bに進む。
In step 524a, the access identifier NOWID and the access type of the array element currently being processed are stored in the corresponding storage 528 entry. The process then proceeds to step 522a. In step 522a, the access type of the array element currently being processed is determined. If the type is definition, the process advances to step 526c. If the type is citation, the process advances to step 526b.

【0044】ステップ526aでは、現在処理中の配列
要素を色Cで表示すること且つ短時間だけ高輝度で表示
することを決定する。色Cは、定義あるいは引用時にア
クセス識別子が一致しない要素であることを示す。つま
り、不正参照の可能性のある要素であることを示す。短
時間だけ高輝度で表示するのは、現在処理中の配列要素
であることを示すためである。一方、ステップ526b
では、現在処理中の配列要素を色Bで表示すること且つ
短時間だけ高輝度で表示することを決定する。色Bは、
引用された要素であることを示す。ステップ526cで
は、現在処理中の配列要素を色Aで表示すること且つ短
時間だけ高輝度で表示することを決定する。色Aは、定
義された要素であることを示す。
In step 526a, it is determined that the array element currently being processed is to be displayed in color C and with high brightness for a short period of time. Color C indicates elements whose access identifiers do not match when defined or cited. In other words, this indicates that the element may be referenced illegally. The reason why it is displayed with high brightness for a short time is to indicate that the array element is currently being processed. Meanwhile, step 526b
Now, it is decided to display the array element currently being processed in color B and with high brightness for a short period of time. Color B is
Indicates that the element is quoted. In step 526c, it is determined that the array element currently being processed is to be displayed in color A and with high brightness for a short period of time. Color A indicates a defined element.

【0045】以上の動作を、図15に示すループ700
でK:1の場合を用いて具体的に説明する。
The above operation is performed in a loop 700 shown in FIG.
This will be specifically explained using the case of K:1.

【0046】ループ700をDO200で並列化する場
合、分割数NDを用いてループ701に変換し、さらに
アクセス情報を出力するために、コンパイラは図16の
ループ内の文7010a,701bに対して、810,
820に示すような動作をオブジェクトコードを付加す
る。このとき701a,702bのソース文番号は各々
n,n+1であるとする。701aの検査対象配列要素
A(I,J)に対しては、定義であることを示すアクセ
ス種別“DEF”と添字の値I,Jとソース文番号nと
、配列要素の値をトレースデータとして出力するコード
を生成する。701bのA(I,J−K)に対しては、
使用であることを示すアクセス種別“USE”と、添字
の値I,J−Kと、ソース文番号n+1と、配列要素の
値をトレースデータとして出力するコードを生成する。 説明の都合上、ND=4とし、ループ701に対応する
ループ700a,700b,700c,700dで説明
する。配列要素はA(I,J)とする。
When loop 700 is parallelized by DO 200, the compiler converts it into loop 701 using division number ND, and outputs access information by executing the following for statements 7010a and 701b in the loop in FIG. 810,
820 is added to the object code. At this time, it is assumed that the source sentence numbers 701a and 702b are n and n+1, respectively. For the array element A (I, J) to be inspected in 701a, the access type "DEF" indicating that it is a definition, the subscript values I, J, the source statement number n, and the value of the array element are used as trace data. Generate code to output. For A(I, J-K) of 701b,
A code is generated that outputs the access type "USE" indicating use, the subscript values I, J-K, the source statement number n+1, and the array element value as trace data. For convenience of explanation, it is assumed that ND=4, and loops 700a, 700b, 700c, and 700d corresponding to loop 701 will be explained. The array element is A(I, J).

【0047】図17(A)は、1番目のループ700a
の実行が完了した時点におけるストレージ528の内容
を示している。ストレージ528のエントリ内の全アク
セス識別子は値0で初期化されるため、ループ700a
の実行によりアクセスされない配列要素に対応するエン
トリには全て0が設定されている。他方、ループ700
aの実行によりアクセスされた配列要素に対応するエン
トリには全て1が設定されている。u,dは各々定義,
引用を示す。
FIG. 17(A) shows the first loop 700a.
The contents of the storage 528 are shown at the time when the execution of the process is completed. Since all access identifiers in the entries in storage 528 are initialized with the value 0, loop 700a
All entries corresponding to array elements that are not accessed by execution of are set to 0. On the other hand, loop 700
All entries corresponding to array elements accessed by execution of a are set to 1. u and d are defined respectively,
Show citation.

【0048】この時の画面表示の例を図17(B)に示
す。なお、図では、色A(定義された要素)を右上がり
斜線、色B(引用された要素)を右下がり斜線、色C(
不正参照可能性のある要素)を網目で示す。また、高輝
度表示を太い枠つきで示す。図18(A),(B)は、
I=1,J=3のときに文702bが実行された時点の
ストレージ528の内容と画面表示例である。文702
bの実行によりアクセスされる配列要素はA(1,3)
であるから、図9のステップ522bでストレージ52
8のエントリ(1,3)よりアクセス識別子PREID
が読み込まれ、初期値=0であるから、ステップ522
dからステップ524aに進む。現在処理中の配列要素
A(1,3)のアクセス種別は「定義」であり、アクセ
ス識別子NOWIDはループ700bの並列プロセス番
号#2であるから、ステップ524aでストレージ52
8のエントリ(1,3)にアクセス識別子2,アクセス
種別「定義」が設定される。そして、ステップ526c
により、要素A(1,3)が色Aで短時間だけ高輝度表
示になる。
An example of the screen display at this time is shown in FIG. 17(B). In the figure, color A (defined element) is indicated by a diagonal line going up to the right, color B (quoted element) is indicated by a line downward to the right, and color C (
(Elements that may be referenced illegally) are shown with mesh. In addition, high-intensity display is indicated with a thick frame. FIGS. 18(A) and 18(B) are
This is an example of the contents of the storage 528 and the screen display at the time when the statement 702b is executed when I=1 and J=3. Sentence 702
The array element accessed by executing b is A(1,3)
Therefore, in step 522b of FIG.
Access identifier PREID from entry (1, 3) of 8
is read and the initial value is 0, so step 522
d, the process proceeds to step 524a. The access type of the array element A (1, 3) currently being processed is "definition" and the access identifier NOWID is the parallel process number #2 of the loop 700b. Therefore, in step 524a, the storage 52
Access identifier 2 and access type "definition" are set in entry (1, 3) of No. 8. and step 526c
As a result, element A (1, 3) is displayed in color A with high brightness for a short time.

【0049】図19(A),(B)は、I=1,J=3
のときに文703bが実行された時点のストレージ52
8の内容と画面表示例である。文703bの実行により
アクセスされる配列要素はA(1,2)であるから、図
9のステップ522bでストレージ528のエントリ(
1,2)より旧アクセス識別子PREID=1と旧アク
セス種別「定義」が読み込まれ、旧アクセス識別子PR
EIDが0でないから、ステップ522dからステップ
522eに進む。現在処理中の要素A(1,2)のアク
セス識別子NOWIDは、ループ700bの並列プロセ
ス番号#2であり、アクセス種別は引用である。従って
、新,旧のアクセス種別が異なるのでステップ522c
に進む。
FIGS. 19(A) and 19(B) show I=1, J=3
The storage 52 at the time when statement 703b was executed
This is an example of the content and screen display of item 8. Since the array element accessed by executing statement 703b is A(1,2), the entry (
1, 2), the old access identifier PREID=1 and the old access type "definition" are read, and the old access identifier PR
Since the EID is not 0, the process proceeds from step 522d to step 522e. The access identifier NOWID of the element A (1, 2) currently being processed is the parallel process number #2 of the loop 700b, and the access type is quotation. Therefore, since the new and old access types are different, step 522c
Proceed to.

【0050】ステップ522cでは、このアクセス識別
子NOWID=2と旧アクセス識別子PREID=1が
比較され、一致しないから、ステップ526aへ進む。 そして、ステップ526aにより、要素A(1,3)が
色Cで短時間だけ高輝度表示になる。色Cは、不正参照
の可能性があることを示している。
At step 522c, this access identifier NOWID=2 and the old access identifier PREID=1 are compared, and since they do not match, the process proceeds to step 526a. Then, in step 526a, element A(1,3) is displayed in color C with high brightness for a short time. Color C indicates that there is a possibility of unauthorized reference.

【0051】図20(A),(B)は、I=2,J=3
のときに文702bが実行された時点のストレージ52
8の内容と画面表示例である。
FIGS. 20(A) and 20(B) show I=2, J=3
The storage 52 at the time when the statement 702b is executed
This is an example of the content and screen display of item 8.

【0052】図21(A),(B)は、I=2,J=3
のときに文703bが実行された時点のストレージ52
8の内容と画面表示例である。
FIGS. 21(A) and 21(B) show I=2, J=3
The storage 52 at the time when statement 703b was executed
This is an example of the content and screen display of item 8.

【0053】以下、同様に処理された結果、ループ70
0bが終了した時点でのストレージ528の内容と画面
表示は、図22(A),(B)のようになる。要素A(
I,2)と要素A(I,6)が画面表示では色Cになる
ことから、不正参照可能性があることが明確に分かる。 すなわち、並列プロセス間で配列Aの「定義」「引用」
が発生するため、ループ700は並列処理できないこと
が容易に判別できる。なお、以上の例では、配列が2次
元配列であったため、配列全体を2次元画面で表示可能
であった。もし、配列が3次元以上の多次元配列である
場合には、ユーザが、2つの次元を残して他の次元を特
定値に設定すればよい。例えば、3次元配列B(I,J
,K)では、B(I,5,K)と設定することによって
、J=5平面での配列Bのアクセス状況を2次元画面で
表示することができる。
[0053] As a result of similar processing, loop 70
The contents of the storage 528 and the screen display at the time when 0b ends are as shown in FIGS. 22(A) and 22(B). Element A (
Since I, 2) and element A (I, 6) are displayed in color C on the screen, it is clear that there is a possibility of unauthorized reference. In other words, "definition" and "quotation" of array A between parallel processes
occurs, so it can be easily determined that the loop 700 cannot be processed in parallel. Note that in the above example, since the array was a two-dimensional array, the entire array could be displayed on a two-dimensional screen. If the array is a multidimensional array with three or more dimensions, the user only needs to leave two dimensions and set the other dimensions to specific values. For example, 3-dimensional array B(I, J
, K), by setting B(I, 5, K), the access status of array B on the J=5 plane can be displayed on a two-dimensional screen.

【0054】次に、本発明の他の実施例について説明す
る。
Next, another embodiment of the present invention will be described.

【0055】図4は並列計算機システムの機能ブロック
図を示す。ソースプログラム100はコンパイラ200
によってロードモジュール300に翻訳される。コンパ
イラ200はアクセス情報付加部210とコード生成部
220からなり、210と220は図3と同じ働きをす
る。ロードモジュール300は実行時に並列実行部分の
先頭で並列処理部分が複数の並列処理部分ロードモジュ
ール360へと複写され、並列プロセッサに割り付けら
れ実行される。この場合にはアクセス情報のうちアクセ
ス識別子には実行時に決定される並列プロセス番号が付
けられる。
FIG. 4 shows a functional block diagram of the parallel computer system. The source program 100 is a compiler 200
is translated into the load module 300 by The compiler 200 consists of an access information addition section 210 and a code generation section 220, and 210 and 220 have the same functions as in FIG. 3. When the load module 300 is executed, the parallel processing part is copied to a plurality of parallel processing part load modules 360 at the beginning of the parallel execution part, and is allocated to the parallel processors and executed. In this case, a parallel process number determined at the time of execution is attached to the access identifier in the access information.

【0056】図2に示される並列計算機システムにより
ロードモジュールが実行される。各並列プロセスはプロ
セッサ21−i(i=1  to  n)にロードされ
、例えばプロセッサ20−1による処理が並列処理対象
部分に達すると、各プロセッサにより並列プロセスの並
列処理が実行される。この時、共有メモリ24内のデー
タ領域に格納されている配列データAが各プロセッサに
よりアクセスされると、オブジェクトコードに従って各
プロセッサからアクセス情報レコードが出力され、配列
アクセス情報ファイル400に格納される。
The load module is executed by the parallel computer system shown in FIG. Each parallel process is loaded into the processor 21-i (i=1 ton), and when the processing by the processor 20-1 reaches a part to be parallel-processed, each processor executes the parallel processing of the parallel process. At this time, when the array data A stored in the data area in the shared memory 24 is accessed by each processor, an access information record is output from each processor according to the object code and stored in the array access information file 400.

【0057】前記アクセス情報ファイル400は、図6
に示したトレースデータ表示ツール500によって処理
される。この動作は、先の実施例と同じである。
The access information file 400 is shown in FIG.
The trace data display tool 500 shown in FIG. This operation is the same as in the previous embodiment.

【0058】次に、図10に示すベクトル計算機で実行
することを目的とするプログラムに対する作動を説明す
る。
Next, the operation of a program intended to be executed by the vector computer shown in FIG. 10 will be explained.

【0059】ベクトル計算機で実行することを目的とす
るソースプログラムに対する本発明のプログラム検証方
法の実施例を図5〜図23〜31を用いて説明する。
An embodiment of the program verification method of the present invention for a source program intended to be executed on a vector computer will be described with reference to FIGS. 5 to 23 to 31.

【0060】ソースプログラム100がベクトル計算機
で実行することを目的とする場合には、処理対象ループ
がベクトル化され、図2cのアクセス情報付加部210
により、各ベクトル処理単位内での検査対象配列の要素
に対し、そのソース文番号がアクセス識別子として付加
される。
When the source program 100 is intended to be executed on a vector computer, the loop to be processed is vectorized, and the access information addition unit 210 in FIG. 2c
As a result, the source statement number is added as an access identifier to the element of the array to be checked within each vector processing unit.

【0061】例えば、ベクトル処理を目的とする図23
のループ20は、ソース文番号#nのループ20内の文
21で引用される配列Aの要素にはアクセス識別子#n
を設定し、ソース文番号#n+1のループ20内の文2
2で定義される配列Aの要素にはアクセス識別子#n+
1を設定する。
For example, FIG. 23 for the purpose of vector processing
The loop 20 of the source statement number #n has an access identifier #n for the element of the array A quoted in the statement 21 in the loop 20.
and statement 2 in loop 20 with source statement number #n+1
The element of array A defined in 2 has access identifier #n+
Set 1.

【0062】これを図24で説明する。アクセス情報を
出力するために、コンパイラはループ20内の文21,
22に対して、ループ25の26,27に示すような動
作をするオブジェクトコードを付加する。このとき21
,22のソース文番号は各々n,n+1であるとする。 21の検査対象配列要素A(I−K)に対しては、使用
であることを示すアクセス種別“USE”と、添字の値
I−Kと、アクセス識別子“n”と、ソース文番号nと
、配列要素の値をトレースデータとして出力するコード
を生成する。22のA(I)に対しては、定義であるこ
とを示すアクセス種別“DEF”と、添字の値Iと、ア
クセス識別子“n+1”と、ソース文番号n+1と、配
列要素の値をトレースデータとして出力するコードを生
成する。図26に示すループ10をベクトル計算機で実
行する場合の配列データの参照の順序は、ループ10を
ループ10aとループ10bのごとく分割し、この順で
逐次実行する場合と等価である。従って、ループ10を
ベクトル計算機で正しく実行できるか否かは、ループ1
0での配列Aの要素の定義・引用の関係と、ループ10
aとループ10bをこの順で逐次計算機で実行した時の
配列Aの要素の定義・引用の関係とが一致しているか否
かにより判定できる。
This will be explained with reference to FIG. In order to output the access information, the compiler executes statements 21,
22, an object code that operates as shown in 26 and 27 of the loop 25 is added. At this time 21
, 22 are assumed to be n and n+1, respectively. For the array element A (I-K) to be inspected in No. 21, the access type "USE" indicating use, the subscript value I-K, the access identifier "n", and the source statement number n. , generates code that outputs the values of array elements as trace data. For A(I) in 22, trace data includes the access type "DEF" indicating that it is a definition, the subscript value I, the access identifier "n+1", the source statement number n+1, and the value of the array element. Generate code to output as . The order of referencing array data when the loop 10 shown in FIG. 26 is executed by a vector computer is equivalent to the case where the loop 10 is divided into a loop 10a and a loop 10b and sequentially executed in this order. Therefore, whether or not loop 10 can be executed correctly on a vector computer depends on loop 1
Relationship between definition and citation of elements of array A in 0 and loop 10
This can be determined by determining whether or not the relationship between definitions and citations of the elements of array A match when a and loop 10b are sequentially executed in this order on a computer.

【0063】図27(A)〜(C)は、K=1の場合で
のループ10,ループ10aおよび10bにおける配列
Aの要素の定義・引用の関係を示している。
FIGS. 27A to 27C show the relationship between definitions and references of elements of array A in loop 10, loops 10a and 10b when K=1.

【0064】ループ10では、例えば配列Aの要素A(
2)dとA(2)uのように、配列Aの各要素は、先に
定義され、後で引用される。他方、ループ10aでは配
列Aの各要素の定義のみが行われ、ループ10bでは配
列Aの各要素の引用のみが行われるが、配列Aの各要素
は、ループ10aで先に定義されてから、ループ10b
で引用される関係になっている。つまり、ループ10と
同じ関係が保たれている。従って、ループ10は、ベク
トル計算機で正しく実行できる。
In loop 10, for example, element A(
2) d and A (2) Like u, each element of array A is defined first and referenced later. On the other hand, in the loop 10a, only the definition of each element of the array A is performed, and in the loop 10b, only the citation of each element of the array A is performed, but each element of the array A is first defined in the loop 10a, and then loop 10b
The relationship is cited in In other words, the same relationship as in loop 10 is maintained. Therefore, loop 10 can be executed correctly on a vector calculator.

【0065】次に、図23のループ20をベクトル計算
機で実行する場合の配列データの参照の参照の順序は、
ループ20をループ20aと20bのごとく分割し、こ
の順で逐次実行する場合と等価である。
Next, when loop 20 in FIG. 23 is executed by a vector computer, the order of referencing array data is as follows:
This is equivalent to dividing the loop 20 into loops 20a and 20b and sequentially executing them in this order.

【0066】図25(A)〜(C)は、K=1の場合の
ループ20,ループ20aおよび20bにおける配列A
の要素の定義・引用の関係を示している。
FIGS. 25A to 25C show array A in loop 20, loops 20a and 20b when K=1.
It shows the relationship between definitions and citations of elements.

【0067】ループ20では、配列Aの各要素は、先に
定義され、後で引用される。他方、ループ20aでは配
列Aの各要素の引用のみが行われ、ループ20bでは配
列Aの各要素の定義のみが行われ、配列Aの各要素は、
ループ20aで先に引用されてから、ループ20bで定
義される関係になっている。つまり、ループ20と異な
る関係になっている。この場合には、ループ20をこの
ままベクトル計算機で実行すると正しい計算結果は得ら
れない。
In loop 20, each element of array A is defined first and referenced later. On the other hand, in the loop 20a, only the quoting of each element of the array A is performed, and in the loop 20b, only the definition of each element of the array A is performed, and each element of the array A is
The relationship is first quoted in loop 20a and then defined in loop 20b. In other words, it has a different relationship from the loop 20. In this case, if loop 20 is executed as is on a vector computer, correct calculation results will not be obtained.

【0068】以上のことから理解されるように、ある配
列要素の定義時のソース文番号とこの配列要素の引用時
のソース文番号とを大小比較することにより、プログラ
ムのベクトル処理可能性を検証できる。
As can be understood from the above, vector processing possibilities of a program can be verified by comparing the source statement number at the time of definition of a certain array element with the source statement number at the time of quoting this array element. can.

【0069】図10を参照して、ステップ522aaで
は、入力された現在処理中の配列要素のアクセス種別を
判定する。種別が定義ならば、ステップ524aに進む
。種別が引用ならば、ステップ522bに進む。
Referring to FIG. 10, in step 522aa, the access type of the input array element currently being processed is determined. If the type is definition, the process advances to step 524a. If the type is citation, the process advances to step 522b.

【0070】ステップ524では、現在処理中の配列要
素のアクセス識別子即ち現アクセス識別子NOWIDを
、ストレージ528の対応するエントリに格納する。 そして、ステップ526cに進む。一方、ステップ52
2bでは、ストレージ528から現在処理中の配列要素
に対応する以前のアクセス識別子PREIDを読み込む
In step 524, the access identifier of the array element currently being processed, ie, the current access identifier NOWID, is stored in the corresponding entry in storage 528. The process then proceeds to step 526c. On the other hand, step 52
2b, the previous access identifier PREID corresponding to the array element currently being processed is read from the storage 528.

【0071】ステップ522cでは、アクセス識別子N
OWEIDが前アクセス識別子PREIDより大きいか
判定する。大きいなら、ステップ526bに進む。大き
くないなら、ステップ526aに進む。
In step 522c, the access identifier N
It is determined whether OWEID is greater than the previous access identifier PREID. If so, proceed to step 526b. If not, proceed to step 526a.

【0072】ステップ526aでは、現在処理中の配列
要素の表示色を色Cとして表示すること且つ短時間だけ
高輝度で表示することを決定する。一方、ステップ52
6bでは、現在処理中の配列要素の表示色を色Bとして
表示すること且つ短時間だけ高輝度で表示することを決
定する。さらに、ステップ526cでは、現在処理中の
配列要素の表示色を色Aとして表示すること且つ短時間
だけ高輝度では表示することを決定する。
In step 526a, it is determined that the display color of the array element currently being processed is color C, and that it is displayed at high brightness for a short period of time. On the other hand, step 52
In step 6b, it is determined that the display color of the array element currently being processed is to be displayed as color B, and that it is to be displayed with high brightness for a short period of time. Furthermore, in step 526c, it is determined that the display color of the array element currently being processed is to be displayed as color A, and that it is to be displayed at high brightness for a short period of time.

【0073】以上の動作を、図23に示すループ20を
用いて具体的に説明する。
The above operation will be specifically explained using the loop 20 shown in FIG.

【0074】図28(A),(B)は、I=2でループ
20内の文21の実行が完了した時点におけるストレー
ジ528の内容と画面表示例を示している。
FIGS. 28A and 28B show the contents of the storage 528 and a screen display example at the time when I=2 and the execution of the statement 21 in the loop 20 is completed.

【0075】図29(A)、(B)は、I=2でループ
20内の文22が実行された時点におけるストレージ5
28の内容と画面表示例を示している。
FIGS. 29A and 29B show the storage 5 at the time when statement 22 in loop 20 is executed with I=2.
28 contents and screen display examples are shown.

【0076】図30(A)、(B)は、I=3でループ
20内の文21が実行された時点におけるストレージ5
28の内容と画面表示例を示している。
FIGS. 30A and 30B show the storage 5 at the time when statement 21 in loop 20 is executed with I=3.
28 contents and screen display examples are shown.

【0077】図31(A)、(B)は、I=3でループ
20内の文22が実行された時点におけるストレージ5
28の内容と画面表示例を示している。
FIGS. 31A and 31B show the storage 5 at the time when I=3 and the statement 22 in the loop 20 is executed.
28 contents and screen display examples are shown.

【0078】以下、同様に処理された結果、配列要素A
(I)が画面表示では色Cになることから、不正参照の
可能性があることが明確に分かる。すなわち、元のルー
プ20の「定義」「引用」の順序が狂うため、ループ2
0はベクトル処理できないことが容易に判別できる。
Hereafter, as a result of similar processing, array element A
Since (I) is displayed in color C on the screen, it is clear that there is a possibility of unauthorized reference. In other words, the order of "definition" and "citation" in the original loop 20 is out of order, so loop 2
It can be easily determined that 0 cannot be subjected to vector processing.

【0079】図32は、本発明の他の実施例のコンパイ
ラを示している。本実施例ではロードモジュールは図1
に示されるような逐次計算機システムにより実行される
FIG. 32 shows a compiler according to another embodiment of the present invention. In this example, the load module is shown in Figure 1.
It is executed by a sequential computer system as shown in .

【0080】ソースプログラム100は、コンパイラ2
00aに入力され、ロードモジュール300aに変換さ
れる。
[0080] The source program 100 is executed by the compiler 2.
00a and is converted to the load module 300a.

【0081】コンパイラ200aは、アクセス情報付加
部210と、トレースデータ表示ツール500a呼び出
すためのコードを生成するコード生成部220aとを有
している。
The compiler 200a has an access information addition section 210 and a code generation section 220a that generates a code for calling the trace data display tool 500a.

【0082】210は、先述した図3あるいは図5の2
10と同じ動作をする。
210 is shown in FIG. 3 or 2 in FIG.
Perform the same operation as 10.

【0083】220aは、配列の要素の定義または引用
がある毎にツール500aを呼び出すオブジェクトコー
ド(図33のトレースデータ表示ツール呼び出し部31
0)を生成し、ロードモジュール300aに付加する。 従って、コンパイラ200aから出力されるロードモジ
ュール300aを実行すると、配列へのアクセスがある
毎に、図33に示すように、呼び出し部310に制御が
移り、これからツール500aが起動される。
220a is an object code (trace data display tool calling unit 31 in FIG. 33) that calls the tool 500a every time an array element is defined or cited.
0) is generated and added to the load module 300a. Therefore, when the load module 300a output from the compiler 200a is executed, each time the array is accessed, control is transferred to the calling unit 310 as shown in FIG. 33, and the tool 500a is started from now on.

【0084】ツール500aは、配列アクセス情報検出
部510aと、配列アクセス情報処理520を有してい
る。
The tool 500a includes an array access information detection section 510a and an array access information processing section 520.

【0085】510aは、現在処理中の配列要素の定義
か引用かのアクセス種別、各次元ごとの添字値、現アク
セス識別子NOWIDを検出し、現在処理中の配列に対
するアクセス情報レコードとして520に渡す。
510a detects the type of access (definition or quotation) of the array element currently being processed, the subscript value for each dimension, and the current access identifier NOWID, and passes it to 520 as an access information record for the array currently being processed.

【0086】520は、先述した図8の配列アクセス情
報処理部520と同じ動作をする。この図32,33に
示す実施例によっても、図3あるいは図5に示す実施例
と同じ結果が得られる。
The array access information processing unit 520 operates in the same way as the array access information processing unit 520 of FIG. 8 described above. The embodiment shown in FIGS. 32 and 33 also provides the same results as the embodiment shown in FIG. 3 or 5.

【0087】[0087]

【発明の効果】以上の実施例によれば、並列計算機やベ
クトル計算機で実行することを目的とするソースプログ
ラムにおいて特に不良原因となりやすい配列データへの
不正参照の可能性を視覚化して表示できるため、プログ
ラムのデバッグを容易に行えるようになる。
[Effects of the Invention] According to the embodiments described above, it is possible to visualize and display the possibility of illegal references to array data that are particularly likely to cause defects in source programs intended to be executed on parallel computers or vector computers. , it becomes easier to debug programs.

【0088】また、アクセス識別子格納用ストレージに
は定義あるいは引用が行われた要素に0以外の値が設定
されるため、未定義配列要素を調べるのにも利用できる
Furthermore, since a value other than 0 is set in the access identifier storage for defined or referenced elements, it can also be used to check undefined array elements.

【0089】さらに、各表示領域で、配列要素を選択す
ることによりこの要素をアクセスしたソースプログラム
文番号と添字値、要素値を表示することができる。また
、このときに対応するソースプログラムを表示して、ア
クセスしたソース文を高輝度表示することもできる。
Furthermore, by selecting an array element in each display area, the source program statement number, subscript value, and element value that accessed this element can be displayed. Further, at this time, the corresponding source program can be displayed, and the accessed source statement can be displayed with high brightness.

【図面の簡単な説明】[Brief explanation of the drawing]

【図1】本発明の一実施例の逐次計算機処理装置構成図
FIG. 1 is a configuration diagram of a sequential computer processing device according to an embodiment of the present invention.

【図2】本発明の一実施例の逐次計算機処理装置構成図
[Fig. 2] A configuration diagram of a sequential computer processing device according to an embodiment of the present invention.

【図3】本発明の逐次計算機での一実施例処理構成図[Fig. 3] Processing configuration diagram of an embodiment in a sequential computer of the present invention


図4】本発明の並列計算機での一実施例処理構成図
[
Figure 4: Processing configuration diagram of an embodiment in a parallel computer of the present invention

【図
5】本発明のベクトル計算機での一実施例処理構成図
[Fig. 5] Processing configuration diagram of an embodiment in the vector computer of the present invention

【図6】本発明の一実施例のトレースデータ表示ツール
の概念図
FIG. 6 is a conceptual diagram of a trace data display tool according to an embodiment of the present invention.

【図7】配列アクセス情報ファイルのデータ形式図[Figure 7] Data format diagram of array access information file

【図
8】配列アクセス情報処理部の概念図
[Figure 8] Conceptual diagram of array access information processing unit

【図9】並列処理
プログラムでの配列アクセス情報処理部の動作のフロー
チャート
[Figure 9] Flowchart of the operation of the array access information processing unit in the parallel processing program

【図10】ベクトル処理プログラムでの配列アクセス情
報処理部の動作のフローチャート
FIG. 10 is a flowchart of the operation of the array access information processing unit in the vector processing program.

【図11】並列処理を目的とするプログラムの例示図[Figure 11] Illustration of a program aimed at parallel processing


図12】図11のループにおける配列Aの参照関係を示
す概念図
[
Figure 12: Conceptual diagram showing the reference relationship of array A in the loop in Figure 11

【図13】並列処理を目的とするプログラムの他の例示
[Figure 13] Another example diagram of a program aimed at parallel processing

【図14】図13のループにおける配列Aの参照関係を
示す概念図
[Figure 14] Conceptual diagram showing the reference relationship of array A in the loop in Figure 13

【図15】並列処理を目的とするプログラムのさらに他
の例示図
[Figure 15] Yet another example diagram of a program aimed at parallel processing

【図16】図15のループでの配列Aの参照場所でのト
レースデータを出力する概念図
[Figure 16] Conceptual diagram of outputting trace data at the reference location of array A in the loop in Figure 15

【図17】ループ700aでのアクセス識別子格納用ス
トレージの内容と画面表示の例示図
FIG. 17 is an illustrative diagram of the contents of the access identifier storage storage and screen display in the loop 700a.

【図18】文702bでのI=1の時のアクセス識別子
格納用ストレージの内容と画面表示の例示例を示す図
FIG. 18 is a diagram showing an example of the contents of the access identifier storage storage and screen display when I=1 in statement 702b.


図19】文703bでのI=1の時のアクセス識別子格
納用ストレージの内容と画面表示の例示例を示す図
[
FIG. 19 is a diagram showing an example of the contents of the access identifier storage storage and screen display when I=1 in statement 703b

【図
20】文702bでのI=2の時のアクセス識別子格納
用ストレージの内容と画面表示の例示例を示す図
FIG. 20 is a diagram showing an example of the contents of the access identifier storage storage and screen display when I=2 in statement 702b.

【図2
1】文703bでのI=2の時のアクセス識別子格納用
ストレージの内容と画面表示の例示例を示す図
[Figure 2
1] Diagram showing an example of the contents of the access identifier storage storage and screen display when I=2 in statement 703b

【図22
】ループ700bでのアクセス識別子格納用ストレージ
の内容と画面表示の例示例を示す図
[Figure 22
] A diagram showing an example of the contents of storage for storing access identifiers and screen display in loop 700b.

【図23】ベクトル
処理を目的とするプログラムの例示図
[Figure 23] An example diagram of a program aimed at vector processing

【図24】図23のループでの配列Aの参照場所でのト
レースデータを出力する概念図
[Figure 24] Conceptual diagram of outputting trace data at the reference location of array A in the loop in Figure 23

【図25】図23のループにおける配列Aの参照関係を
示す概念図
[Figure 25] Conceptual diagram showing the reference relationship of array A in the loop in Figure 23

【図26】ベクトル処理を目的とする他のプログラムの
例示図
[Fig. 26] Illustration of another program aimed at vector processing

【図27】図26のループにおける配列Aの参照関係を
示す概念図
[Figure 27] Conceptual diagram showing the reference relationship of array A in the loop in Figure 26

【図28】文21のI=2でのアクセス識別子格納用ス
トレージの内容と画面表示の例示図
[Figure 28] An example diagram of the contents of the access identifier storage storage and screen display when I=2 in statement 21

【図29】文22のI=2でのアクセス識別子格納用ス
トレージの内容と画面表示例を示す図
[Fig. 29] A diagram showing the contents of the access identifier storage storage and a screen display example when I=2 in statement 22.

【図30】文21のI=3でのアクセス識別子格納用ス
トレージの内容と画面表示例を示す図
FIG. 30 is a diagram showing the contents of the access identifier storage storage and a screen display example when I=3 in statement 21.

【図31】文22のI=3でのアクセス識別子格納用ス
トレージの内容と画面表示例を示す図
[Fig. 31] A diagram showing the contents of the access identifier storage storage and a screen display example when I=3 in statement 22.

【図32】本発明の他の実施例のコンパイラ構成図FIG. 32 Compiler configuration diagram of another embodiment of the present invention

【図
33】本発明の他の実施例のトレースデータ表示ツール
の概念図
FIG. 33 is a conceptual diagram of a trace data display tool according to another embodiment of the present invention.

【符号の説明】[Explanation of symbols]

410.アクセス番号、420.アクセスタイプ、43
0.1次元添字値、2次元添字値、440.アクセス識
別子、450.ソース番号、460.配列要素の値、5
12.現在処理中の配列アクセス情報レコード、520
.処理部、522.比較部、524.更新部、526.
表示色決定部、528.アクセス識別子格納用ストレー
ジ、530.表示データ
410. Access number, 420. Access type, 43
0.1-dimensional subscript value, 2-dimensional subscript value, 440. Access identifier, 450. Source number, 460. array element value, 5
12. Array access information record currently being processed, 520
.. Processing unit, 522. Comparison section, 524. Update Department, 526.
Display color determining unit, 528. Storage for storing access identifier, 530. Display data

Claims (26)

【特許請求の範囲】[Claims] 【請求項1】少なくとも一つの部分を複数のプロセッサ
で並列実行するための処理部分に変換されるべきソース
プログラムをテストするプログラム検証方法であって、
ソースプログラムをオブジェクトプログラムに翻訳し、
前記オブジェクトプログラムを実行し、このオブジェク
トプログラム実行中に、検査されるべき一つ以上の配列
データの要素が定義あるいは使用として処理される毎に
アクセス情報を生成し、このアクセス情報には、各要素
毎にすくなくとも各次元の添字値と前記処理部分に付け
られた処理番号と処理が定義か使用かを含み、さらに、
検査対象配列データの各要素が処理されたときの前記ア
クセス情報によって、前記ソースプログラム部分を複数
プロセスで実行可能かどうかを検証するステップからな
るプログラム検証方法。
1. A program verification method for testing a source program whose at least one part is to be converted into a processing part to be executed in parallel by a plurality of processors, comprising:
Translate the source program into an object program,
The object program is executed, and during the execution of the object program, access information is generated each time one or more elements of array data to be inspected are processed as definitions or uses, and the access information includes information about each element. Each dimension includes at least the subscript value of each dimension, the process number assigned to the process part, and whether the process is defined or used, and further,
A program verification method comprising the step of verifying whether the source program portion can be executed by multiple processes based on the access information when each element of the array data to be inspected is processed.
【請求項2】請求項1において、検査対象配列データの
少なくとも一つの同じ要素に対して複数の異なる処理番
号で定義されるか、定義を行った処理番号と使用を行っ
た処理番号が異なるときに並列処理できないと検出する
ことを特徴とするプログラム検証方法。
Claim 2: In claim 1, when at least one same element of the array data to be inspected is defined with multiple different process numbers, or when the process number that made the definition and the process number that used it are different. A program verification method characterized by detecting that parallel processing is not possible.
【請求項3】請求項1において、検査対象ソースプログ
ラム部分で検査対象配列要素への処理が行われるソース
文を見つけ、検査対象配列データへの処理が定義か使用
かを見つけて、このオブジェクトプログラムが実行され
たときに処理が行われる毎に前記アクセス情報を出力す
るようにオブジェクトプログラムを生成することを含み
、アクセス情報の生成は前記オブジェクトプログラムの
実行によって達成されることを特徴とするプログラム検
証方法。
3. According to claim 1, in the source program part to be inspected, a source statement in which processing is performed on the array element to be inspected is found, and whether the processing to the array data to be inspected is defined or used is found, and the object program is executed. A program verification method comprising: generating an object program so as to output the access information every time processing is executed, and generating the access information is achieved by executing the object program. Method.
【請求項4】請求項2において、該検証ステップはオブ
ジェクトプログラムの実行後に行われることを特徴とす
るプログラム検証方法。
4. A program verification method according to claim 2, wherein the verification step is performed after execution of the object program.
【請求項5】請求項3において、該生成ステップはオブ
ジェクトプログラムの実行と並列に実行されることを特
徴とするプログラム検証方法。
5. The program verification method according to claim 3, wherein the generation step is executed in parallel with execution of the object program.
【請求項6】請求項4において、該検証ステップでは検
査対象配列の要素に対して、要素毎に以前生成されたア
クセス情報と現在生成されたアクセス情報とによって、
ソースプログラムを複数のプロセッサで並列処理可能か
を検証することを特徴とするプログラム検証方法。
6. According to claim 4, in the verification step, for each element of the array to be inspected, the previously generated access information and the currently generated access information are used.
A program verification method characterized by verifying whether a source program can be processed in parallel by multiple processors.
【請求項7】請求項6において、一つの要素に関する以
前生成されたアクセス情報は最も最近生成されたアクセ
ス情報であることを特徴とするプログラム検証方法。
7. The program verification method according to claim 6, wherein the previously generated access information regarding one element is the most recently generated access information.
【請求項8】請求項5において、さらに複数の検査対象
配列の要素に対して生成されたアクセス情報をオブジェ
クトプログラムの実行と並列に格納するステップを有す
るプログラム検証方法。
8. A program verification method according to claim 5, further comprising the step of storing access information generated for elements of a plurality of arrays to be inspected in parallel with execution of the object program.
【請求項9】請求項1において、複数の検査対象配列要
素に対応する表示領域を1次元または2次元のマトリッ
クス状に配置し、それらの表示領域で、対応する検査対
象配列要素の不正参照可能性を示す表示を行うことを特
徴とするプログラム検証方法。
9. In claim 1, display areas corresponding to a plurality of array elements to be inspected are arranged in a one-dimensional or two-dimensional matrix, and in these display areas, it is possible to illegally reference the corresponding array elements to be inspected. A program verification method characterized by displaying information indicating the nature of the program.
【請求項10】請求項9の1次元または2次元のマトリ
ックスが、多次元の検査対象配列に対してユーザが指定
した1つの次元または2つの次元に関するものであるこ
とを特徴とするプログラム検証方法。
10. A program verification method, wherein the one-dimensional or two-dimensional matrix of claim 9 relates to one or two dimensions specified by a user for a multidimensional array to be inspected. .
【請求項11】請求項1において、該実行ステップは、
前記ソースプログラム中の処理部分が逐次的に実行され
るようにオブジェクトプログラムを実行することを特徴
とするプログラム検証方法。
11. In claim 1, the executing step comprises:
A program verification method characterized in that an object program is executed so that processing parts in the source program are executed sequentially.
【請求項12】請求項11において、オブジェクトプロ
グラムは各プロセッサが実行を担当する複数の処理部分
を逐次的に実行するオブジェクトコードとして含み、該
実行ステップはオブジェクトプログラムの前記処理部分
を逐次的に実行するステップを含むプログラム検証方法
12. The object program according to claim 11, wherein the object program includes object code that sequentially executes a plurality of processing parts that each processor is responsible for executing, and the execution step sequentially executes the processing parts of the object program. A program verification method that includes steps to
【請求項13】請求項12において、前記ソースプログ
ラム部がループを含む場合に、これを複数のループ部分
に分け、このループ部分を逐次的に実行するオブジェク
トプログラムに変換するプログラム検証方法。
13. The program verification method according to claim 12, wherein when the source program portion includes a loop, the source program portion is divided into a plurality of loop portions and the loop portions are converted into an object program that is executed sequentially.
【請求項14】請求項1において、該実行ステップは前
記ソースプログラム中の処理部分が並列に実行されるよ
うにオブジェクトプログラムを実行するプログラム検証
方法。
14. The program verification method according to claim 1, wherein said executing step executes the object program such that processing portions in said source program are executed in parallel.
【請求項15】請求項14において、該翻訳ステップで
は、前記ソースプログラム部分がループを含む場合に、
ループ部分を異なる処理部分に分けて実行するときのル
ープ繰り返し範囲を決定し、このループ部分を含むソー
スプログラムをオブジェクトプログラムに変換し、決定
したループ繰り返し範囲を示す情報をオブジェクトプロ
グラムに付加し、該実行ステップではループ部分と付加
された情報を表すオブジェクトプログラム部分に基づき
、異なる処理部分を並列に実行するプログラム検証方法
15. According to claim 14, in the translation step, when the source program portion includes a loop,
Determine the loop repetition range when executing the loop part by dividing it into different processing parts, convert the source program including this loop part into an object program, add information indicating the determined loop repetition range to the object program, and A program verification method in which different processing parts are executed in parallel in the execution step based on a loop part and an object program part that represents added information.
【請求項16】そこに含まれる少なくとも一つのループ
をベクトルプロセッサでベクトル処理するオブジェクト
プログラムに翻訳されるべきソースプログラムをテスト
する方法であって、ソースプログラムを逐次計算機で実
行するオブジェクトプログラムに翻訳し、このオブジェ
クトプログラムを逐次計算機で実行し、このオブジェク
トプログラム実行中に、検査されるべき一つ以上の配列
データの要素が定義あるいは使用として処理される毎に
アクセス情報を生成し、このアクセス情報には、各要素
毎にすくなくとも添字値と処理されるソース文番号と処
理が定義か使用かを含み、さらに、検査対象配列データ
の各要素が処理されたときの前記アクセス情報によって
、前記ソースプログラム部分で検査対象配列をアクセス
するソース文の少なくとも一つがベクトル化を疎外しう
るかどうかを検証することからなるプログラム検証方法
16. A method for testing a source program to be translated into an object program in which at least one loop included therein is processed by a vector processor, the method comprising: translating the source program into an object program to be sequentially executed on a computer; , this object program is executed sequentially on a computer, and during execution of this object program, access information is generated each time one or more elements of array data to be inspected are processed as definitions or uses, and this access information is contains at least a subscript value, a source statement number to be processed, and whether the process is defined or used for each element, and further includes the access information when each element of the array data to be inspected is processed. A program verification method comprising verifying whether at least one of the source statements that accesses an array to be tested can preclude vectorization.
【請求項17】請求項16において、検証ステップは検
査対象配列の同一要素に対して、その要素を使用するソ
ース文番号がその要素を定義する文番号より小さいとき
にベクトル処理を疎外することを検出するプログラム検
証方法。
17. According to claim 16, the verification step excludes vector processing for the same element of the array to be inspected when the source statement number that uses that element is smaller than the statement number that defines that element. A program verification method to detect.
【請求項18】請求項16において、該翻訳のときに検
査ソースプログラム部分で検査対象配列要素への処理が
行われるソース文を見つけ、その処理が定義か使用かを
見つけて、このオブジェクトプログラムが実行されたと
きに処理が行われる毎に前記アクセス情報を出力するよ
うにオブジェクトプログラムを生成し、アクセス情報の
生成は前記オブジェクトプログラムの実行によって達成
されることを特徴とするプログラム検証方法。
18. In claim 16, at the time of translation, a source statement in which a process is performed on an array element to be inspected is found in the inspection source program portion, and whether the process is a definition or a use is found, and this object program is A program verification method, characterized in that an object program is generated so as to output the access information each time a process is performed when executed, and the generation of the access information is achieved by executing the object program.
【請求項19】請求項18において、検証ステップはオ
ブジェクトプログラムの実行後に実行されることを特徴
とするプログラム検証方法。
19. A program verification method according to claim 18, wherein the verification step is performed after execution of the object program.
【請求項20】請求項19において複数の検査対象配列
の要素に対して生成されたアクセス情報をオブジェクト
プログラムの実行と並列に格納するステップを有し、検
証ステップは、オブジェクトプログラム実行後、格納さ
れたアクセス情報に基づいて実行されるプログラム検証
方法。
20. The method according to claim 19, further comprising the step of storing the access information generated for the elements of the plurality of arrays to be inspected in parallel with the execution of the object program, and the verification step includes the step of storing the access information generated for the elements of the plurality of arrays to be inspected in parallel with the execution of the object program. A program verification method that is executed based on the access information obtained.
【請求項21】請求項16において、複数の検査対象配
列要素に対応する表示領域を1次元または2次元のマト
リックス状に配置し、それらの表示領域で、対応する検
査対象配列要素の不正参照可能性を示す表示を行うこと
を特徴とするトレースデータの表示方法。
21. In claim 16, display areas corresponding to a plurality of array elements to be inspected are arranged in a one-dimensional or two-dimensional matrix, and in these display areas, it is possible to illegally reference the corresponding array elements to be inspected. 1. A method for displaying trace data, characterized by displaying information indicating the nature of the trace data.
【請求項22】請求項21の1次元または2次元のマト
リックスが、多次元の検査対象配列に対してユーザが指
定した1つの次元または2つの次元に関するものである
ことを特徴とするトレースデータ表示方法。
22. A trace data display characterized in that the one-dimensional or two-dimensional matrix according to claim 21 relates to one dimension or two dimensions specified by a user for a multidimensional array to be inspected. Method.
【請求項23】各表示領域で、対応する配列要素の定義
・使用の区別をも表示する請求項9または21のトレー
スデータ表示方法。
23. The trace data display method according to claim 9 or 21, wherein in each display area, distinctions between definitions and uses of corresponding array elements are also displayed.
【請求項24】不正参照可能性を色により区別して表示
すると共に、前記色とは異なる色により定義・使用の区
別を表示する請求項9または21のトレースデータ表示
方法。
24. The trace data display method according to claim 9 or 21, wherein the possibility of unauthorized reference is distinguished and displayed by color, and the distinction between definition and use is displayed by a color different from the color.
【請求項25】各表示領域の輝度を、対応する配列要素
へのアクセスが発生した順に短時間だけ高輝度とするこ
とを特徴とする請求項21から24、または9から10
のいずれかのトレースデータ表示方法。
25. The brightness of each display area is made high for a short time in the order in which the corresponding array element is accessed.
One of the trace data display methods.
【請求項26】ソースプログラムを翻訳してオブジェク
トプログラムを生成する翻訳方法において、検査対象配
列要素の定義・使用の別を示すアクセス種別と、各次元
毎の添字値と、アクセスされた処理番号またはソース文
番号と引数として請求項1あるいは16の該検証ステッ
プを呼び出すためのオブジェクトコードを付加的に生成
することを特徴とする翻訳方法。
26. In a translation method for generating an object program by translating a source program, an access type indicating whether an array element to be inspected is defined or used, a subscript value for each dimension, and an accessed process number or A translation method characterized by additionally generating an object code for calling the verification step according to claim 1 or 16 as a source sentence number and an argument.
JP03029848A 1990-02-26 1991-02-25 Program verification method Expired - Fee Related JP3094475B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP03029848A JP3094475B2 (en) 1990-02-26 1991-02-25 Program verification method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2-44827 1990-02-26
JP4482790 1990-02-26
JP03029848A JP3094475B2 (en) 1990-02-26 1991-02-25 Program verification method

Publications (2)

Publication Number Publication Date
JPH04211831A true JPH04211831A (en) 1992-08-03
JP3094475B2 JP3094475B2 (en) 2000-10-03

Family

ID=26368104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03029848A Expired - Fee Related JP3094475B2 (en) 1990-02-26 1991-02-25 Program verification method

Country Status (1)

Country Link
JP (1) JP3094475B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895787A (en) * 1994-09-21 1996-04-12 Nec Software Ltd Parallel support task image display system
JP2000305809A (en) * 1999-02-04 2000-11-02 Sun Microsyst Inc Memory access analyzing method, memory access tracing device, and computer-readable recording medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0654969U (en) * 1993-01-05 1994-07-26 積水化学工業株式会社 Stop valve

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895787A (en) * 1994-09-21 1996-04-12 Nec Software Ltd Parallel support task image display system
JP2000305809A (en) * 1999-02-04 2000-11-02 Sun Microsyst Inc Memory access analyzing method, memory access tracing device, and computer-readable recording medium

Also Published As

Publication number Publication date
JP3094475B2 (en) 2000-10-03

Similar Documents

Publication Publication Date Title
US5255385A (en) Method of testing program, and compiler and program testing tool for the method
Szárnyas et al. The Train Benchmark: cross-technology performance evaluation of continuous model queries
JP2795244B2 (en) Program debugging system
US8869103B2 (en) Using intermediate representations to verify computer-executable code generated from a model
US5854924A (en) Static debugging tool and method
US9280442B1 (en) System and method for generating coverage reports for software unit tests
US8935672B1 (en) Lazy evaluation of geometric definitions of objects within procedural programming environments
US9418230B2 (en) Automated tools for building secure software programs
US8762784B1 (en) Viewing multi-dimensional metric data from multiple test cases
US20150317236A1 (en) Static analysis of computer code to determine impact of change to a code component upon a dependent code component
US8381175B2 (en) Low-level code rewriter verification
US20060150160A1 (en) Software analyzer
Suh et al. Accelerating MATLAB with GPU computing: a primer with examples
CN112558942A (en) Operator registration method and related product
Nugteren et al. Algorithmic species: A classification of affine loop nests for parallel programming
US10839124B1 (en) Interactive compilation of software to a hardware language to satisfy formal verification constraints
US20230367516A1 (en) Program Detection Method and Apparatus
US10853051B2 (en) Automated candidate repair patch generation
US11892935B2 (en) Verification of control coupling and data coupling analysis in software code
Soubra et al. Towards Universal COSMIC Size Measurement Automation.
JPH04211831A (en) Program verifying method, and trace data displaying method and compiling method for the same
Denisov et al. Automated software testing technologies for realistic computer graphics
Gates et al. DynaMICs: An automated and independent software-fault detection approach
CN112464636A (en) Constraint file comparison method and device, electronic equipment and storage medium
CN114153750B (en) Code checking method and device, code compiling method and electronic equipment

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070804

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080804

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080804

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090804

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100804

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees