JP2533938B2 - Vector arithmetic processing method - Google Patents
Vector arithmetic processing methodInfo
- Publication number
- JP2533938B2 JP2533938B2 JP1169131A JP16913189A JP2533938B2 JP 2533938 B2 JP2533938 B2 JP 2533938B2 JP 1169131 A JP1169131 A JP 1169131A JP 16913189 A JP16913189 A JP 16913189A JP 2533938 B2 JP2533938 B2 JP 2533938B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- expression
- vcr
- nest
- processing
- 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.)
- Expired - Fee Related
Links
Landscapes
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Description
【発明の詳細な説明】 〔概要〕 プログラム翻訳処理において,プログラム中に記述さ
れたベクトル演算式の処理方式に関し,特に1つの式内
に異なる配列形状のベクトルが含まれる場合の処理方式
に関し, ベクトル演算中に,ベクトル形状の異なるベクトル演
算が含まれるとき,ネスト化することなく処理できるよ
うにすることを目的とし, 入力されたプログラムを解析してベクトル演算式を見
付ける意味解析部と,意味解析部が見付けたベクトル演
算式について基本的なベクトル演算による展開を行うと
ともに,展開したベクトル演算式のベクトル制御範囲の
先頭と末尾に,それぞれベクトル開始言とベクトル終了
言とを挿入した中間テキストを作成するLJNDA言変換部
とをそなえ,上記LINDA言変換部は,処理対象のベクト
ル演算式中に異なるベクトル形状のベクトル演算を検出
したとき順次別のベクトル制御範囲としてネストとして
管理し,その後,各管理されているネストのベクトル制
御範囲をネストの深い方から順次,最も親のベクトル演
算式の前に移動し,ネストを解消する処理を行う構成を
もつ。DETAILED DESCRIPTION OF THE INVENTION [Outline] In a program translation process, the present invention relates to a processing method of a vector operation expression described in a program, and particularly to a processing method when a vector having a different array shape is included in one expression. Semantic analysis unit that analyzes the input program and finds the vector arithmetic expression when the arithmetic operations include vector arithmetics with different vector shapes so that they can be processed without nesting. The vector arithmetic expression found by the department is expanded by basic vector arithmetic, and an intermediate text is created by inserting a vector start phrase and a vector end phrase at the beginning and end of the vector control range of the expanded vector arithmetic formula, respectively. The LJNDA language conversion unit, which is different from the LJNDA language conversion unit described above, is used in the vector arithmetic expression to be processed. When a vector operation of a vector shape is detected, it is managed as a nest as a separate vector control range, and then the vector control range of each managed nest is sequentially searched from the deepest nest, before the most parent vector operation expression. It has a configuration to move to and delete the nest.
本発明は,プログラム翻訳処理において,プログラム
中に記述されたベクトル演算式の処理方式に関し,特に
1つの式内に異なる配列形状のベクトルが含まれる場合
の処理方式に関する。The present invention relates to a processing method of a vector operation expression described in a program in a program translation processing, and more particularly to a processing method when vectors of different array shapes are included in one expression.
FORTRAN 77までは,ベクトル演算が言語仕様上許され
ていなかった。したがって,ベクトル演算処理に対する
考慮は必要がなかった。Up to FORTRAN 77, vector operations were not allowed in the language specifications. Therefore, it was not necessary to consider the vector operation processing.
FORTRAN 8Xでは,言語仕様上,ベクトル演算が許され
ている。そしてその言語仕様で,以下の場合はそのオペ
ランドの形状が等しいことを定義している。ただし,他
方がスカラの場合はベクトル側に形状が合わせられる。In FORTRAN 8X, vector operations are allowed due to the language specifications. The language specification defines that the operands have the same shape in the following cases. However, if the other is a scalar, the shape is adjusted to the vector side.
(i)組み込み演算のオペランド (ii)代入の右辺・左辺 (iii)要素引用関数の引数 ここで形状とは,ベクトルオペランドの次元とその次
元の要素数で決まるものであり,たとえば形状(d1,d2,
…,dn)は,n次元で,各次元の要素数が,それぞれ,d1,d
2,…dnであるベクトルを表わす。(I) Operand of built-in operation (ii) Right and left sides of assignment (iii) Argument of element quoting function Here, the shape is determined by the dimension of the vector operand and the number of elements in that dimension. For example, the shape (d1, d2,
…, Dn) is n-dimensional and the number of elements in each dimension is d1, d
Represents a vector that is 2, ... dn.
すなわちこの言語仕様は,1つの式(代入も含む)にお
いては,それを構成する各オペランドの形状は,基本的
に同じでなければならない。というもとを示している。That is, this language specification requires that, in one expression (including assignment), the shape of each operand that constitutes it is basically the same. It means that.
このような言語仕様をもつFORTRAN 8Xにより記述され
たプログラムを対象とする従来のベクトル演算処理方式
について次に説明する。A conventional vector operation processing method for a program written in FORTRAN 8X having such a language specification will be described below.
この従来のベクトル演算処理方式は,プログラム翻訳
(コンパイル)処理の意味解析部でベクトル演算部分を
検出して,LINDA言変換部でその範囲を規定し,式を要素
演算形に展開した中間テキストLINDA言を作成し,イン
タフェース情報として最適化処理部に渡す。このLINDA
言は,形状が同一のベクトル演算の制御範囲をVCRで表
わし,その開始をベクトル開始言OVCR,終了をベクトル
終了言CVCRでそれぞれ指示する。最適化処理部では,LIN
DA言中のOVCRおよびCVCRで挟まれたベクトル制御範囲VC
Rを取り出し、ループ化により展開する処理を行う。This conventional vector operation processing method detects the vector operation part in the semantic analysis part of the program translation (compilation) process, defines the range in the LINDA language conversion part, and expands the expression into the element operation form. Create a message and pass it to the optimization processing unit as interface information. This LINDA
The VCR represents the control range of vector operations with the same shape, and the start is indicated by the vector start word OVCR and the end is indicated by the vector end word CVCR. In the optimization processing section, LIN
Vector control range VC sandwiched between OVCR and CVCR in DA
R is taken out and expanded by looping.
第9図にこの従来方式による具体的な処理例を示す。 FIG. 9 shows a specific processing example according to this conventional method.
第9図において,1はソースプログラム,2は中間テキス
ト(LINDA言),3はベクトル制御簿(CVR簿),4は意味解
析部,5はLINDA言変換部,6は最適化処理部である。In FIG. 9, 1 is a source program, 2 is an intermediate text (LINDA language), 3 is a vector control book (CVR book), 4 is a semantic analysis unit, 5 is a LINDA language conversion unit, and 6 is an optimization processing unit. .
ソースプログラム1はFORTRAN 8Xで記述が認められる
ベクトル演算式を記述した例を示す。ここで,宣言部の
“REAL*4"は配列要素が実数4バイトである旨を表わ
し,“A(100)”は配列Aが配列要素を100個持つこと
を表わしている。同様に配列B,C,Xも配列要素を100個そ
れぞれ持つ。また,ベクトル演算式 X=A+B*C ……(1) は,宣言部で宣言された各配列A,B,C,Xについての演算
式である。これを本実施例は,後述する手順によってル
ープ展開する。Source program 1 shows an example in which a vector operation expression that can be described in FORTRAN 8X is described. Here, "REAL * 4" in the declaration section indicates that the array element is a real number of 4 bytes, and "A (100)" indicates that the array A has 100 array elements. Similarly, arrays B, C, and X each have 100 array elements. Further, the vector operation expression X = A + B * C (1) is an operation expression for each array A, B, C, X declared in the declaration section. In this embodiment, the loop expansion is performed according to the procedure described later.
中間テキスト(LINDA言)2は,ソースプログラム1
中に記述されたベクトル演算式(1)を図示のようにい
わばベクトル演算レベルで書き換えて展開したものであ
る。ここで,“OVCR"はベクトル演算式のベクトル開始
言を表わし,“CVCR"はベクトル演算式のベクトル終了
言を表わす。これらOVCRとCVCRとの間に挟まれたベクト
ル演算が,ソースプログラム1中に記述されたベクトル
演算式“X=A+B+*C"をいわばベクトル演算レベル
で展開したものである。このVt1,Vt2は,中間変数であ
る。Intermediate text (LINDA language) 2 is source program 1
The vector operation expression (1) described therein is rewritten and expanded at a vector operation level as shown in the figure. Here, "OVCR" represents the vector start expression of the vector operation expression, and "CVCR" represents the vector end expression of the vector operation expression. The vector operation sandwiched between these OVCR and CVCR is the vector operation expression "X = A + B + * C" described in the source program 1 developed at the vector operation level. These Vt1 and Vt2 are intermediate variables.
ベクトル制御簿(VCR簿)3は,ベクトル演算式を書
き換えて生成した中間テキスト2中のベクトル演算式の
ベクトル制御の開始および終了をポイントするポインタ
を格納するものである。The vector control book (VCR book) 3 stores pointers that point to the start and end of vector control of the vector operation expression in the intermediate text 2 generated by rewriting the vector operation expression.
意味解析部4は,入力された式を解析してベクトル演
算部分を抽出するものである。The semantic analysis unit 4 analyzes the input expression and extracts a vector operation part.
LINDA言変換部5は,式から抽出したベクトル演算部
分についてベクトルへの書き換えを行うと共に,この書
き換えたベクトル演算の先頭および末尾にベクトル開始
言(OVCR言)およびベクトル終了言(CVCR言)を挿入し
た中間テキスト(LINDA言)2を生成するものである。The LINDA word conversion unit 5 rewrites the vector operation part extracted from the expression into a vector, and inserts a vector start word (OVCR word) and a vector end word (CVCR word) at the beginning and end of this rewritten vector operation. The generated intermediate text (LINDA language) 2 is generated.
最適化処理部6は,生成した中間テキスト2のベクト
ル開始言およびベクトル終了言をポイントするポインタ
を格納したベクトル制御簿(VCR簿)3を作成すると共
に,この書き換えたベクトル演算について不変などであ
って外に取り出し得るものを取り出してベクトル演算レ
ベルで最適化を行った後,ループ展開するものである。The optimization processing unit 6 creates a vector control book (VCR book) 3 in which pointers pointing to the vector start words and the vector end words of the generated intermediate text 2 are stored, and the rewritten vector operation remains unchanged. It takes out what can be taken out and optimizes it at the vector operation level, then expands the loop.
ところでベクトル演算には,第10図および第11図に示
すような例外(式において,形状が異なる場合)が存在
し得る。By the way, there may be an exception (when the shape is different in the formula) as shown in FIG. 10 and FIG. 11 in the vector operation.
第10図に示す例外は,演算式中にユーザ関数IFUNを含
む場合である。この時IFUNの結果はスカラであるが,こ
の引数(ii)は〔5,5,5〕の形状を持つベクトルであ
り,代入文(i)について見ると,形状は〔10,10〕と
なる。The exception shown in Fig. 10 is when the user function IFUN is included in the arithmetic expression. At this time, the result of IFUN is a scalar, but this argument (ii) is a vector having the shape of [5,5,5], and looking at the assignment statement (i), the shape is [10,10]. .
また第11図に示す例外は,配列構成子を持つ場合であ
る。配列構成子は言語仕様において必ず1次元の配列と
なるが,これは異なった形状の中に現われてもよいこと
になっている。The exception shown in Fig. 11 is when there is an array constructor. The array constructor is always a one-dimensional array in the language specification, but it is supposed that it may appear in different shapes.
この第10図および第11図に示すような例外を含むプロ
グラムの処理では次のような問題が生じる。The following problems occur in the processing of the program including the exception as shown in FIGS. 10 and 11.
1)前述した従来のベクトル演算処理方式では,ベクト
ル演算の開始と終了とをVCR簿によって管理するという
方法をとっている。ここで,1つのベクトル制御範囲VCR
内では,その形状が等しいことが条件となる(なぜなら
ば,形状によってベクトル演算のループ展開の展開数が
決定されるからである)。したがって第10図および第11
図に示される例外は,1つのVCR内に記述することができ
ない。1) In the above-described conventional vector operation processing method, the start and end of vector operation are managed by the VCR book. Where one vector control range VCR
Within, the condition is that the shapes are the same (because the shape determines the number of loop expansions of vector operations). Therefore, Figs. 10 and 11
The exceptions shown in the figure cannot be described in one VCR.
2)このため式処理の流れからすれば,第12図に例示さ
れるように,形状の異なるベクトル演算をVCRでネスト
させるのが自然であるが,次の理由から,VCRをネスト
(入れ子)するには問題がある。2) Therefore, from the flow of formula processing, it is natural to nest vector operations of different shapes with VCR, as shown in Fig. 12, but for the following reasons, VCR is nested. To have a problem.
プログラムの意味が変わる可能性がある(たとえ
ば,ループごとに通過をカウントする処理の場合)。The meaning of the program may change (for example, in the case of counting passages for each loop).
仮にプログラムの意味が不変としても,性能上の問
題がある。つまりVCRをネストすると,ループ回数がそ
れぞれのかけ算になってしまうため,処理に時間がかか
る。Even if the meaning of the program does not change, there is a performance problem. In other words, if you nest VCRs, the number of loops will be multiplied by each, so it will take time to process.
本発明は,ベクトル演算中にベクトル形状の異なるベ
クトル演算が含まれるとき,ネスト化することなく処理
できるようにすることを目的としている。It is an object of the present invention to enable processing when vector operations having different vector shapes are included in the vector operations without nesting.
本発明は前述した従来方式における問題を解決するた
め,プログラム翻訳処理のLINDA言変換部において,ベ
クトル制御範囲VCRの開始と終了とを指定する処理を行
う際,1つのベクトル制御範囲VCRの中に別のベクトル形
状をもつベクトル演算の開始すなわちネストが現われた
場合,それを式処理の先頭に移し,ネストを解消するよ
うにしたものである。In order to solve the above-mentioned problems in the conventional method, the present invention uses a vector control range VCR within one vector control range VCR when performing the process of designating the start and end of the vector control range VCR in the LINDA language conversion unit of the program translation process. When a vector operation having a different vector shape starts, that is, when a nest appears, it is moved to the beginning of expression processing to eliminate the nest.
第1図は,本発明の原理的構成図であり,4は意味解析
部,5はLINDA言変換部である、これらは第9図中の従来
方式のものに対応している。また7はVCRネスト管理簿
であり,第9図中のベクトル制御簿(VCR簿)を拡張し
たものであり,ネストのVCRごとに作成され,連鎖され
る。FIG. 1 is a block diagram showing the principle of the present invention, 4 is a semantic analysis unit, and 5 is a LINDA speech conversion unit, which correspond to the conventional system shown in FIG. Reference numeral 7 is a VCR nest management book, which is an extension of the vector control book (VCR book) in FIG. 9, and is created and chained for each VCR of the nest.
第1図の意味解析部4およびLINDA言変換部5に示さ
れている処理フローにしたがって構成の機能を説明す
る。The function of the configuration will be described according to the processing flow shown in the semantic analysis unit 4 and the LINDA language conversion unit 5 in FIG.
では,式がベクトル演算を含むか否かを判定し,処
理をととに切り分ける。Then, it is determined whether or not the expression includes a vector operation, and the processing is divided into and.
は,ベクトル演算を含まない場合の処理であり,通
常の式と同様に式処理に対する言を出力する。Is the processing when the vector operation is not included, and outputs a word for the expression processing as in a normal expression.
は、ベクトル演算を含む場合の処理であり,VCRネス
ト管理簿を作成し,LINDA言変換処理を行う。VCRネスト
管理簿の構成は第2図ないし第5図に7−1,7−2とし
て示されており,詳細は後に実施例中で説明される。Is a process including a vector operation, creates a VCR nest management book, and performs LINDA language conversion processing. The structure of the VCR nest management book is shown as 7-1 and 7-2 in FIGS. 2 to 5, and the details will be described later in the embodiment.
では、親式のベクトル演算の開始を示すベクトル開
始言OVCRを出力する。Then, the vector start word OVCR indicating the start of the vector operation of the parent expression is output.
では,ベクトルの形状変化を検出し,処理をと
とに切り分ける。Now, the shape change of the vector is detected, and the process is divided into and.
では,形状変化があるためネストとなるベクトル制
御範囲VCRの開始を示すベクトル開始言OVCRを出力し,
次にを実行する。Then, because there is a change in shape, the vector start word OVCR indicating the start of the vector control range VCR that becomes a nest is output,
Then run
では,式処理に対する言を出力する。 Then, the words for the expression processing are output.
では,同一形状の演算の終了を検出し,終了すれば
を実行し,終了しなければへ戻る。Then, when the end of the operation of the same shape is detected, the process is executed if it is completed, and the process returns to if not completed.
では,同一形状のベクトル制御範囲VCRの終了によ
りベクトル終了言CVCRを出力する。次にを実行する。Then, the vector end word CVCR is output when the vector control range VCR of the same shape ends. Then run
では,ネストのVCRのCVCRか親式のCVCRかを判定
し,前者の場合はを実行し,後者の場合は終了する。Then, it is judged whether it is a CVCR of a nested VCR or a CVCR of a parent expression. In the former case, is executed, and in the latter case, it ends.
では,最も深いネストのVCRから順に親式の前に移
動する処理を行い,ネストを解消してへ戻る。Then, the process of moving from the deepest nesting VCR to the front of the parent expression in order is performed, the nesting is resolved, and the process returns.
このようにして,中間テキストのLINDA言を作成し,
図示されていない最適化処理部に渡し,各ベクトル制御
範囲VCRごとに,ループによる処理形式に展開させる。In this way, create the LINDA word of the intermediate text,
It is passed to an optimization processing unit (not shown), and is expanded into a loop processing format for each vector control range VCR.
第1図に示された本発明のベクトル演算処理方式によ
れば,1つのベクトル演算式(親式とする)中に形状の異
なるベクトルが含まれている場合,その部分はその親式
の外に移されるためネストが作られず効率的な処理が可
能となる。According to the vector operation processing method of the present invention shown in FIG. 1, when one vector operation expression (referred to as a parent expression) includes vectors of different shapes, that part is outside the parent expression. Since it is moved to, the nest is not created and efficient processing is possible.
たとえばベクトル演算式 A=B+F1(C+F2(D+E)) において,ベクトルBとベクトルC,ベクトルCとベクト
ルD,Eが異なる形状をもっている場合,ネストの深い方
から演算式F2(D+E),F1(C+F2)が順に取り出さ
れ,親式A=B+F1の前に配列される。For example, in the vector arithmetic expression A = B + F 1 (C + F 2 (D + E)), when the vector B and the vector C and the vector C and the vectors D and E have different shapes, the arithmetic expression F 2 (D + E), F 1 (C + F 2 ) is taken out in order and arranged before the parent expression A = B + F 1 .
F2(D+E) F1(C+F2) A=B+F1 この結果,形状の異なるベクトルをもつ演算のネスト
処理は解消され,最適化処理部は,それぞれの演算につ
いて通常のループ展開を行えばよい。F 2 (D + E) F 1 (C + F 2 ) A = B + F 1 As a result, nest processing of operations having vectors of different shapes is eliminated, and the optimization processing unit may perform normal loop expansion for each operation. .
このような本発明のLINDA言変換により1つの演算式
ネスト構造として含まれる異なるベクトル形状の演算部
分を親式の外に移動する処理は,各ネストの演算部分を
独立したベクトル制御範囲VCRとして扱って,それぞれV
CRネスト管理簿によりネスト管理し,処理過程を制御す
ることによって確実に行うことができる。In the processing of moving the operation parts of different vector shapes included as one operation expression nest structure by the LINDA language conversion of the present invention to the outside of the parent expression, the operation parts of each nest are treated as an independent vector control range VCR. Respectively V
This can be done reliably by performing nest management and controlling the processing process with the CR nest management book.
またこのようにネストのVCRを親式の外側に移動して
も,プログラムの意味は変らない。これは, 内側のネストのVCRの結果の値は,外側に対して不変
となること VCRは必ず内側から閉じられること によって保証される。さらにこの移動処理は,式処理の
流れに沿っているため,プログラム翻訳時間のオーバヘ
ッドは小さくできる。Also, moving the nested VCR outside the parent expression in this way does not change the meaning of the program. This is ensured by the VCR result value of the inner nest being invariant to the outer VCR being always closed from the inner side. Furthermore, since this movement processing follows the flow of expression processing, the overhead of program translation time can be reduced.
〔実施例〕 次に本発明の実施例を説明する。Example Next, an example of the present invention will be described.
第2図ないし第5図は,本発明によるLINDA言変換処
理過程を具体例で示したものである。これらの図におい
て,7−1,7−2はVCRネスト管理簿であり,また処理対象
のプログラムとしては,第12図に例示されているものが
用いられる。2 to 5 show the LINDA speech conversion processing process according to the present invention in a concrete example. In these figures, 7-1 and 7-2 are VCR nest management books, and the programs to be processed are those shown in FIG.
LINDA言は,区切りを示すCONT言,形状を示すVSHAPE
言,VCRの先頭を示すOVCR言,ベクトル演算の式処理を表
わすVLOAD言等,VCRの末尾を示すCVCR言を含む。The LINDA word is a CONT word that indicates a break, VSHAPE that indicates a shape
The word, the OVCR word indicating the beginning of the VCR, the VLOAD word indicating the expression processing of the vector operation, and the CVCR word indicating the end of the VCR are included.
VCRネスト管理簿は,LINDA言中のCONT言,OVCR言,CVCR
言をそれぞれ指票(ポイント)するCONT言指票,OVCR言
指票,CVCR言指票と,外側の親またはネストのVCRネスト
管理簿を指票する親連鎖指票と,内側のネストのVCRネ
スト管理簿を指票する子連鎖指票とをもつ。The VCR nest management book includes CONT words, OVCR words, and CVCR words in LINDA.
CONT Voting, OVCR Voting, CVCR Voting, and Parent Chained Voting, which commands the parent or nest VCR Nest Management Book, and VCR of the Inner Nest It has a child chain instruction to instruct the nest management book.
第2図は,ベクトル演算式 A=B+IFUN(C+D) …… のうち左からBまでをLINDA言変換の解析処理を行った
ときのVCRネスト管理簿7−1とLINDA言の様子を示す。
形状は〔10,10〕である。またCVCR言と,親および子のV
CRネスト管理簿とは存在しないので,VCRネスト管理簿7
−1の該当するエントリは空白である。Figure 2 shows the VCR nest management book 7-1 and the LINDA language when the analysis processing of the LINDA language conversion is performed from the left to B of the vector arithmetic expression A = B + IFUN (C + D) ....
The shape is [10,10]. CVCR words and parent and child V
Since there is no CR nest management book, VCR nest management book 7
The corresponding entry of -1 is blank.
第3図は,式の関数IFUNの引数の解析が始まり,形
状が〔10,10〕から〔5,5,5〕へ変化したため,ネストの
VCRが開始され,子のVCRネスト管理簿7−2が作成され
る。そしてVCRネスト管理簿7−2とVCRネスト管理簿7
−1との間には,親連鎖指票と子連鎖指票によるチェー
ンが張られる。Fig. 3 shows that the parsing of the argument of the function IFUN of the expression started and the shape changed from [10,10] to [5,5,5].
The VCR is started and the child VCR nest management book 7-2 is created. And VCR Nest Management Book 7-2 and VCR Nest Management Book 7
Between -1 and -1, a chain consisting of a parent chain and a child chain is set up.
第4図は,式の関数IFUNの解析が終了してCVCR言を
出力した直後のVCRネスト管理簿とLINDA言の様子を示
す。Figure 4 shows the state of the VCR nest management book and LINDA language immediately after the analysis of the function IFUN of the expression is completed and the CVCR language is output.
第5図は、式の関数IFUNの解析が終了してVCRの移
動が行われた後のVCRネスト管理簿とLINDA言の様子を示
している。FIG. 5 shows the state of the VCR nest management book and the LINDA language after the analysis of the function IFUN of the expression is completed and the VCR is moved.
VCRネスト管理簿7−2によって管理されているCONT
言からCVCR言までがVCRネスト管理簿7−1によって管
理されているCONT言の前に移動される。この結果,VCRネ
スト管理簿7−2は解放される。CONT managed by VCR Nest Management Book 7-2
The words to the CVCR words are moved before the CONT words managed by the VCR nest management book 7-1. As a result, the VCR nest management book 7-2 is released.
第6図は,LINDA言変換処理の実施例フローである。次
に各手順を説明する。FIG. 6 is an example flow of LINDA language conversion processing. Next, each procedure will be described.
今から処理する式の中にベクトル演算が含まれてい
るか否かを判断する。先行する意味解析部(フェーズ)
からの情報によって判断できる。It is determined whether or not the expression to be processed now includes a vector operation. The preceding semantic analysis part (phase)
It can be judged by the information from.
VCRネスト管理簿を作成する。この処理の詳細は第
7図により後述される。Create a VCR nest management book. Details of this processing will be described later with reference to FIG.
ベクトル演算部分を見付ける。 Find the vector operation part.
ベクトル開始言(OVCR言)を出力する。 Outputs the vector start word (OVCR word).
式がベクトル演算を含まない場合,式処理の該当す
る言を出力する。If the expression does not contain a vector operation, output the corresponding expression processing statement.
′ 式がベクトル演算を含む場合,式処理の該当する
言を出力する。この処理はと同じものである。′ If the expression includes a vector operation, output the corresponding word of the expression processing. This process is the same as.
式処理が終了したか否かを判断する。 It is determined whether or not the expression processing is completed.
ベクトル終了言(CVCR言)の出力処理を行う。 Performs output processing of vector end word (CVCR word).
この処理の詳細は,第8図により後述される。 Details of this processing will be described later with reference to FIG.
第7図により,VCRネスト管理簿の作成処理について説
明する。The process of creating the VCR nest management book will be described with reference to FIG.
式の形状変化の有無を調べて,形状変化を検出する
と,現在処理中の式(部分)に対するVCRネスト管理簿
を獲得する。獲得したVCRネスト管理簿は,基点から指
票(ポイント)されるが,第3図に例示されているよう
に親のVCRネスト管理簿が存在する場合には,最も内側
の(真上の)VCRネスト管理簿の子連鎖指票から指票さ
れる。If the shape change of the expression is checked and the shape change is detected, the VCR nest management book for the expression (part) currently being processed is acquired. The obtained VCR nest management list is pointed from the base point, but if the parent VCR nest management list exists as shown in Figure 3, the innermost (uppermost) It is ordered from the child chain instruction of the VCR nest management book.
最後にCONT言を出力し,獲得したVCRネスト管理簿のC
ONT言指票から指票させる。Finally, the CONT message is output, and C of the acquired VCR nest management book is acquired.
Let the ONT say your vote.
次に第8図により,ベクトル終了言(CVCR言)出力処
理について説明する。Next, the vector end word (CVCR word) output processing will be described with reference to FIG.
まず式処理が終了すると(第6図),CVCR言を出力す
る。出力したCVCR言に対しては,VCRネスト管理簿から指
票させる。First, when the equation processing is completed (Fig. 6), the CVCR word is output. The output CVCR words are ordered from the VCR nest management book.
ここで現処理中の式に対するVCRネスト管理簿が基点
の管理簿である場合には,そこからOVCR言指票とCVCR言
指票とをクリアし,他方,VCRネスト管理簿が基点のもの
でない場合には,そのCONT言指票からCVCR言指票までの
言を基点あるいは真近上位のVCRネスト管理簿のCOND言
指票によって指票されるCONT言の直前に移動する(第5
図の例参照)。そして移動した元のVCRネスト管理簿か
らCONT言,OVCR言,CVCR言の各指票をクリアする。Here, if the VCR nest management book for the expression currently being processed is the management book of the base point, the OVCR statement register and the CVCR statement catalog are cleared from that, while the VCR nest management book is not the base material. In that case, the words from the CONT word vote to the CVCR word vote are moved to the base point or immediately before the CONT word that is pointed to by the COND word vote in the VCR nest management book of the immediately upper level (the fifth point).
See the example in the figure). Then, clear the CONT words, OVCR words, and CVCR words from the original VCR nest management list.
本発明によれば,ベクトル演算式中にベクトル形状が
異なる関数引用や配列構成子が含まれる場合の対応処理
を,コンパイラのLINDA言変換部(フェーズ)を一部改
良することによって実現することができる。またこの場
合,最適化処理部(フェーズ)等の他のフェーズには影
響が及ばないため,将来のシステムの拡張を行う際都合
が良い。According to the present invention, the corresponding processing in the case where a vector operation expression includes a function reference or an array constructor having different vector shapes can be realized by partially improving the LINDA language conversion unit (phase) of the compiler. it can. Further, in this case, other phases such as the optimization processing unit (phase) are not affected, which is convenient when the system is expanded in the future.
第1図は本発明の原理的構成図,第2図ないし第5図は
それぞれ本発明によるLINDA言変換処理過程の具体例
(その1ないしその4)の説明図,第6図はLINDA言変
換処理の実施例のフロー図,第7図は第6図におけるVC
Rネスト管理簿の作成処理のフロー図,第8図は第6図
におけるベクトル終了言(CVCR言)出力処理のフロー
図,第9図は従来のベクトル演算処理方式による処理例
の説明図,第10図は異なる形状のベクトルをもつ例外の
説明図,第11図は異なる配列構成子をもつ例外の説明
図,第12図はVCRをネストした場合に出力されるLINDA言
の説明図である。 第1図中 4:意味解析部 5:LINDA言変換部 7:VCRネスト管理簿FIG. 1 is a block diagram of the principle of the present invention, FIGS. 2 to 5 are explanatory diagrams of specific examples (No. 1 to No. 4) of the LINDA speech conversion processing process according to the present invention, and FIG. 6 is a LINDA speech conversion processing. Fig. 7 is a flow chart of an embodiment of processing, Fig. 7 is a VC in Fig. 6.
Fig. 8 is a flow chart of the R nest management book creation process, Fig. 8 is a flow diagram of the vector end word (CVCR word) output process in Fig. 6, and Fig. 9 is an explanatory diagram of a processing example by the conventional vector operation processing method. Figure 10 is an illustration of exceptions with differently shaped vectors, Figure 11 is an illustration of exceptions with different array constructors, and Figure 12 is an illustration of the LINDA language output when VCRs are nested. In Fig. 1: 4: Semantic analysis part 5: LINDA language conversion part 7: VCR nest management book
Claims (1)
展開処理を行うベクトル演算処理方式において, 入力されたプログラムを解析してベクトル演算式を見付
ける意味解析部(4)と, 意味解析部(4)が見付けたベクトル演算式について基
本的なベクトル演算による展開を行うとともに展開した
ベクトル演算式のベクトル制御範囲(VCR)の先頭と末
尾に,それぞれベクトル開始言(OVCR言)とベクトル終
了言(CVCR言)とを挿入した中間テキスト(LINDA言)
を作成するLINDA言変換部(5)とをそなえ, 上記LINDA言変換部(5)は,処理対象のベクトル演算
式中に異なるベクトル形状のベクトル演算を検出したと
き順次別のベクトル制御範囲(VCR)としてネストとし
て管理し,その後,各管理されているネストのベクトル
制御範囲(VCR)をネストの深い方から順次,最も親の
ベクトル演算式の前に移動し,ネストを解消する処理を
行うことを特徴とするベクトル演算処理方式。1. A semantic analysis unit (4) for analyzing a inputted program to find a vector arithmetic expression in a vector arithmetic processing method for expanding a vector arithmetic during translation processing of a program, and a semantic analysis unit (4). The vector operation expression found by is expanded by basic vector operation, and the vector start expression (OVCR expression) and vector end expression (CVCR expression) are added at the beginning and end of the vector control range (VCR) of the expanded vector operation expression. ) Intermediate text with and (in LINDA)
And a LINDA word conversion unit (5) for creating a vector control range (VCR) that sequentially detects different vector control ranges (VCR) when vector operations of different vector shapes are detected in the vector operation expression to be processed. ) As a nest, and then move the vector control range (VCR) of each managed nest sequentially from the deepest of the nest to the front of the parent vector operation expression, and perform processing to eliminate the nest. Vector processing method characterized by.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1169131A JP2533938B2 (en) | 1989-06-30 | 1989-06-30 | Vector arithmetic processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1169131A JP2533938B2 (en) | 1989-06-30 | 1989-06-30 | Vector arithmetic processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0334066A JPH0334066A (en) | 1991-02-14 |
JP2533938B2 true JP2533938B2 (en) | 1996-09-11 |
Family
ID=15880857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1169131A Expired - Fee Related JP2533938B2 (en) | 1989-06-30 | 1989-06-30 | Vector arithmetic processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2533938B2 (en) |
-
1989
- 1989-06-30 JP JP1169131A patent/JP2533938B2/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
ParallelComputingVol.10No.1P.51−64 |
Also Published As
Publication number | Publication date |
---|---|
JPH0334066A (en) | 1991-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5375242A (en) | Compiler architecture for cross-module optimization | |
US5321606A (en) | Data transforming method using externally provided transformation rules | |
US5485619A (en) | Array variable transformation system employing subscript table mapping to scalar loop indices | |
JPH0814817B2 (en) | Automatic vectorization method | |
JPH06103463B2 (en) | Code generation method | |
JP2533938B2 (en) | Vector arithmetic processing method | |
US6055627A (en) | Compiling method of accessing a multi-dimensional array and system therefor | |
Mossin | Partial evaluation of general parsers | |
Alblas | Incremental attribute evaluation | |
JP2860383B2 (en) | Compiler unit | |
Boyland et al. | Attributed transformational code generation for dynamic compilers | |
JPH0414144A (en) | Compiling processing method | |
Richardson | Automating changes of data type in functional programs | |
Doh | Action transformation by partial evaluation | |
Lubbers et al. | First-Class Data Types in Shallow Embedded Domain-Specific Languages using Metaprogramming | |
JPH0425969A (en) | Compiling system which is made into definition arrangement vector under if sentence | |
JP2564904B2 (en) | Program optimization processing method | |
Rohmer | APL2M: Cross-computer software for straightforward language definition and code generation | |
JP2004246924A (en) | Application generator development support device and application generator development support method | |
JPS63187365A (en) | Under-if text stipulated variable vectorizing compilation system | |
JP3327640B2 (en) | Instruction code selection device | |
JPH03220669A (en) | Multiple loop vectorization compiling system | |
Napper et al. | RCC—A user-extensible systems implementation language | |
JPH05334094A (en) | Assembler | |
JPH0795272B2 (en) | Compile method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |