JPH0540780A - ベクトル化処理方式 - Google Patents
ベクトル化処理方式Info
- Publication number
- JPH0540780A JPH0540780A JP3197995A JP19799591A JPH0540780A JP H0540780 A JPH0540780 A JP H0540780A JP 3197995 A JP3197995 A JP 3197995A JP 19799591 A JP19799591 A JP 19799591A JP H0540780 A JPH0540780 A JP H0540780A
- Authority
- JP
- Japan
- Prior art keywords
- character
- relational expression
- intermediate text
- unit
- integer type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 230000014509 gene expression Effects 0.000 claims description 38
- 238000004458 analytical method Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 5
- 238000003672 processing method Methods 0.000 claims description 4
- 238000000034 method Methods 0.000 claims description 2
- 239000000284 extract Substances 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 8
- 238000003491 array Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【構成】ベクトル化部22において、条件判定部221
は、文字関係式に対して並列実行可能な条件を満足する
かどうかを判定する。ループ構成部222は、条件判定
部221で並列実行可能と判定された文字関係式につい
て、文字型要素を整数型の配列とみなし、かつ関係式を
整数型の配列の一要素毎の比較の繰り返しで実行するル
ープとして第二の中間テキスト25を構成する。 【効果】従来ベクトル化していなかった文字関係式をベ
クトル化できるため、ベクトルプロセッサにおいてプロ
グラムの実行時間を短縮することができる。
は、文字関係式に対して並列実行可能な条件を満足する
かどうかを判定する。ループ構成部222は、条件判定
部221で並列実行可能と判定された文字関係式につい
て、文字型要素を整数型の配列とみなし、かつ関係式を
整数型の配列の一要素毎の比較の繰り返しで実行するル
ープとして第二の中間テキスト25を構成する。 【効果】従来ベクトル化していなかった文字関係式をベ
クトル化できるため、ベクトルプロセッサにおいてプロ
グラムの実行時間を短縮することができる。
Description
【0001】
【産業上の利用分野】本発明は、ベクトル化処理方式に
関する。
関する。
【0002】
【従来の技術】従来、ベクトル演算機能を有するベクト
ルプロセッサには、文字型演算を直接実行するベクトル
命令は備えられておらず、文字関係式は、スカラ命令に
よって実行されていた。
ルプロセッサには、文字型演算を直接実行するベクトル
命令は備えられておらず、文字関係式は、スカラ命令に
よって実行されていた。
【0003】
【発明が解決しようとする課題】ベクトル演算機能を有
するベクトルプロセッサにおいては、一般に、目的プロ
グラムのうちのベクトル命令によって実行される部分の
割合を大きくするほど、実行時間を短縮することができ
る。ところが、上述の従来技術では、文字関係式は、ベ
クトル化できず、スカラ命令で実行されているため、実
行時間を短縮できない。
するベクトルプロセッサにおいては、一般に、目的プロ
グラムのうちのベクトル命令によって実行される部分の
割合を大きくするほど、実行時間を短縮することができ
る。ところが、上述の従来技術では、文字関係式は、ベ
クトル化できず、スカラ命令で実行されているため、実
行時間を短縮できない。
【0004】また、文字関係式を人手によって並列実行
に適合するように書き直すことにより、ベクトル化する
ことも可能であるが、書き直し可能な文字関係式の発見
やプログラムの書き直しに多大な時間を必要とする。更
に、書き直し時に、誤りを生むおそれがある。
に適合するように書き直すことにより、ベクトル化する
ことも可能であるが、書き直し可能な文字関係式の発見
やプログラムの書き直しに多大な時間を必要とする。更
に、書き直し時に、誤りを生むおそれがある。
【0005】
【課題を解決するための手段】本発明によるコンパイラ
のベクトル化処理方式は、ベクトル演算機能を有するベ
クトルプロセッサに対して、高級言語で書かれたソース
プログラムを読み込み、構文解析を行なって第一の中間
テキストを生成する構文解析部と、前記第一の中間テキ
ストから並列実行可能部分の認識を行ない、かつ第二の
中間テキストを生成するベクトル化部と、前記第二の中
間テキストから目的プログラムを生成して出力するコー
ド生成部とを有し、前記ベクトル化部が、文字関係式に
ついて並列実行可能な条件を満足するかどうかを判定す
る条件判定部と、前記条件判定部で並列実行可能と判定
された文字関係式について、文字型要素を整数型の配列
とみなし、かつ関係式を整数型の配列の一要素毎の比較
の繰り返しで実行するループとして前記第二の中間テキ
ストを構成することにより、文字関係式をベクトル化す
るループ構成部とを有している。
のベクトル化処理方式は、ベクトル演算機能を有するベ
クトルプロセッサに対して、高級言語で書かれたソース
プログラムを読み込み、構文解析を行なって第一の中間
テキストを生成する構文解析部と、前記第一の中間テキ
ストから並列実行可能部分の認識を行ない、かつ第二の
中間テキストを生成するベクトル化部と、前記第二の中
間テキストから目的プログラムを生成して出力するコー
ド生成部とを有し、前記ベクトル化部が、文字関係式に
ついて並列実行可能な条件を満足するかどうかを判定す
る条件判定部と、前記条件判定部で並列実行可能と判定
された文字関係式について、文字型要素を整数型の配列
とみなし、かつ関係式を整数型の配列の一要素毎の比較
の繰り返しで実行するループとして前記第二の中間テキ
ストを構成することにより、文字関係式をベクトル化す
るループ構成部とを有している。
【0006】
【実施例】次に、本発明の一実施例を示した図面を参照
して、より詳細に説明する。
して、より詳細に説明する。
【0007】図1を参照すると、本発明の一実施例にお
いて、コンパイラ2は、高級言語で書かれたソースプロ
グラム1を読み込み、構文解析を行なって第一の中間テ
キスト24を生成する構文解析部21と、第一の中間テ
キスト24から並列実行可能部分の認識を行ないかつ第
二の中間テキスト25を生成するベクトル化部22と、
第二の中間テキスト25から目的プログラム3を生成し
て出力するコード生成部23とから構成されている。
いて、コンパイラ2は、高級言語で書かれたソースプロ
グラム1を読み込み、構文解析を行なって第一の中間テ
キスト24を生成する構文解析部21と、第一の中間テ
キスト24から並列実行可能部分の認識を行ないかつ第
二の中間テキスト25を生成するベクトル化部22と、
第二の中間テキスト25から目的プログラム3を生成し
て出力するコード生成部23とから構成されている。
【0008】ベクトル化部22は、文字関係式に対して
並列実行可能な条件を満足するかどうかを判定する条件
判定部221と、条件判定部221で並列実行可能と判
定された文字関係式について文字型要素を整数型の配列
とみなし、かつ関係式を整数型の配列の一要素毎の比較
の繰り返しで実行するループとして第二の中間テキスト
25を構成するループ構成部222とを備えている。
並列実行可能な条件を満足するかどうかを判定する条件
判定部221と、条件判定部221で並列実行可能と判
定された文字関係式について文字型要素を整数型の配列
とみなし、かつ関係式を整数型の配列の一要素毎の比較
の繰り返しで実行するループとして第二の中間テキスト
25を構成するループ構成部222とを備えている。
【0009】コンパイラ2内の構文解析部21は、ソー
スプログラム1を読み込み第一の中間テキスト24を生
成する。例えば、図2に示したソースプログラムに対し
て図3に示した第一の中間テキストを生成する。ベクト
ル化部22は、第一の中間テキストを変更して図4のよ
うな第二の中間テキスト25を生成する。コード生成部
3は、第二の中間テキストから目的プログラム3を生成
して出力する。
スプログラム1を読み込み第一の中間テキスト24を生
成する。例えば、図2に示したソースプログラムに対し
て図3に示した第一の中間テキストを生成する。ベクト
ル化部22は、第一の中間テキストを変更して図4のよ
うな第二の中間テキスト25を生成する。コード生成部
3は、第二の中間テキストから目的プログラム3を生成
して出力する。
【0010】ベクトル演算機能を有するベクトルプロセ
ッサに対するコンパイラは、図1に示すような構成をし
ており、与えられたソースプログラムを可能な限り並列
実行可能な形で目的プログラムに変換することが望まれ
る。しかし、図5のようなソースプログラムが与えられ
たとすると、これは、右辺が文字関係式である代入文の
ため、並列実行不可としてスカラ命令による順次実行を
余儀なくされていた。
ッサに対するコンパイラは、図1に示すような構成をし
ており、与えられたソースプログラムを可能な限り並列
実行可能な形で目的プログラムに変換することが望まれ
る。しかし、図5のようなソースプログラムが与えられ
たとすると、これは、右辺が文字関係式である代入文の
ため、並列実行不可としてスカラ命令による順次実行を
余儀なくされていた。
【0011】本実施例においては、図5に示すような文
字関係式を含むソースプログラムが与えられた場合にお
いても、文字型要素を整数型の配列とみなし、かつ関係
式を整数型の配列の一要素毎の比較の繰り返しで実行す
るループとすることにより、並列実行可能な形で処理す
るようにしている。例えば、図5に示すプログラムで
は、図6に示すように、文字型変数CH1*256とC
H2*256を整数型配列1A(64)と1B(64)
とみなし、かつ関係式を1A(I)と1B(I)とが一
致するか否かを判定繰り返し数63のループ、および一
致するか否かの判定のついた繰り返し数を添字とする整
数型配列の比較で置き換えることにより、この文字関係
式を置き換えたループの部分がベクトル長62で並列実
行可能となる。
字関係式を含むソースプログラムが与えられた場合にお
いても、文字型要素を整数型の配列とみなし、かつ関係
式を整数型の配列の一要素毎の比較の繰り返しで実行す
るループとすることにより、並列実行可能な形で処理す
るようにしている。例えば、図5に示すプログラムで
は、図6に示すように、文字型変数CH1*256とC
H2*256を整数型配列1A(64)と1B(64)
とみなし、かつ関係式を1A(I)と1B(I)とが一
致するか否かを判定繰り返し数63のループ、および一
致するか否かの判定のついた繰り返し数を添字とする整
数型配列の比較で置き換えることにより、この文字関係
式を置き換えたループの部分がベクトル長62で並列実
行可能となる。
【0012】図5のソースプログラムから図7に示す第
一の中間テキストが得られ、ベクトル化部22に入力さ
れ、文字関係式が認識されると、条件判定部221は次
の処理を行なう。
一の中間テキストが得られ、ベクトル化部22に入力さ
れ、文字関係式が認識されると、条件判定部221は次
の処理を行なう。
【0013】(1) 文字関係式に対する第一の中間テキス
トから、関係式のオペランド1とオペランド2の文字型
要素の長さを取り出す。オペランド1とオペランド2の
文字型要素の長さが等しく、かつその長さが整数型要素
の長さで割り切れれば、並列実行可能と判定する。長さ
が上記条件を満たさなければ、並列実行不可と判定す
る。本実施例では、整数型要素の一要素の長さを「4」
と仮定しており、並列実行可能と判定する。
トから、関係式のオペランド1とオペランド2の文字型
要素の長さを取り出す。オペランド1とオペランド2の
文字型要素の長さが等しく、かつその長さが整数型要素
の長さで割り切れれば、並列実行可能と判定する。長さ
が上記条件を満たさなければ、並列実行不可と判定す
る。本実施例では、整数型要素の一要素の長さを「4」
と仮定しており、並列実行可能と判定する。
【0014】(2) 文字関係式に対する第一の中間テキス
トから、関係式の関係演算子を取り出す。関係演算子が
「.EQ.」と「.NE.」の場合は並列実行可能と判
定する。関係演算子が「.GT.」、「.G
E.」、「.LT.」および「.LE.」の大小比較を
行なう関係演算子の場合は、文字の大小比較を整数型の
一要素長で行なえる文字コード体系を使用するシステム
では、並列実行可能と判定する。文字の大小比較を整数
型の一要素長で行なえない文字コード体系を使用するシ
ステムでは、並列実行不可と判定する。本実施例では、
文字の大小比較を整数型の一要素長で行なえる文字コー
ド体系を使用するシステムであることを仮定しており、
関係演算子「.GT.」では並列実行可能と判定する。
トから、関係式の関係演算子を取り出す。関係演算子が
「.EQ.」と「.NE.」の場合は並列実行可能と判
定する。関係演算子が「.GT.」、「.G
E.」、「.LT.」および「.LE.」の大小比較を
行なう関係演算子の場合は、文字の大小比較を整数型の
一要素長で行なえる文字コード体系を使用するシステム
では、並列実行可能と判定する。文字の大小比較を整数
型の一要素長で行なえない文字コード体系を使用するシ
ステムでは、並列実行不可と判定する。本実施例では、
文字の大小比較を整数型の一要素長で行なえる文字コー
ド体系を使用するシステムであることを仮定しており、
関係演算子「.GT.」では並列実行可能と判定する。
【0015】条件判定部221では、並列実行可能と判
定された文字関係式に対して、ループ構成部222は次
の処理を行なう。
定された文字関係式に対して、ループ構成部222は次
の処理を行なう。
【0016】(1) オペランド1、オペランド2の文字型
要素について第一の整数型配列、第二の整数型配列を作
成し、文字型要素と結合する。ここで作成する整数型配
列の次元数は、「文字型要素の次元数+1」であり、そ
の追加する次元の寸法は、「文字型要素の長さ/整数型
要素の一要素の長さ」である。本実施例では、整数型配
列の次元数は「1」、寸法は「64」である。
要素について第一の整数型配列、第二の整数型配列を作
成し、文字型要素と結合する。ここで作成する整数型配
列の次元数は、「文字型要素の次元数+1」であり、そ
の追加する次元の寸法は、「文字型要素の長さ/整数型
要素の一要素の長さ」である。本実施例では、整数型配
列の次元数は「1」、寸法は「64」である。
【0017】(2) 整数型配列が一致するか否かを判定す
る部分を、ベクトル長が「(整数型要素の長さ)/整数
型要素の長さ)−1」となるように、第二の中間テキス
トを作成する。本実施例では、ベクトル長は「63」と
なる。
る部分を、ベクトル長が「(整数型要素の長さ)/整数
型要素の長さ)−1」となるように、第二の中間テキス
トを作成する。本実施例では、ベクトル長は「63」と
なる。
【0018】(3) 第一の整数型変数を作成し、整数型配
列が一致するか否かの判定のついた繰り返し数を格納す
る第二の中間テキストを作成する。
列が一致するか否かの判定のついた繰り返し数を格納す
る第二の中間テキストを作成する。
【0019】(4) 第一の論理型変数を作成し、第一の整
数型変数を添字とする整数型配列で元の文字関係式の文
字型要素を置き換えた関係式の結果を第一の論理型変数
へ格納する第二の中間テキストを作成する。
数型変数を添字とする整数型配列で元の文字関係式の文
字型要素を置き換えた関係式の結果を第一の論理型変数
へ格納する第二の中間テキストを作成する。
【0020】(5) 元の関係式を第一の論理型変数で置き
換えた第二の中間テキストを作成する。
換えた第二の中間テキストを作成する。
【0021】本実施例では、ループ構成部222により
図8に示す第二の中間テキストが得られ、文字関係式の
整数型配列が一致するか否かを判定する部分がベクトル
長「63」のベクトル命令により実行される。
図8に示す第二の中間テキストが得られ、文字関係式の
整数型配列が一致するか否かを判定する部分がベクトル
長「63」のベクトル命令により実行される。
【0022】以上のように、本実施例においては、文字
関係式をベクトル化することができる。
関係式をベクトル化することができる。
【0023】
【発明の効果】以上説明したように、本発明において
は、従来ベクトル化していなかった文字関係式をベクト
ル化できるため、ベクトルプロセッサにおいてプログラ
ムの実行時間を短縮することができる。
は、従来ベクトル化していなかった文字関係式をベクト
ル化できるため、ベクトルプロセッサにおいてプログラ
ムの実行時間を短縮することができる。
【図1】本発明の一実施例に使用されるコンパイラの機
能ブロック図である。
能ブロック図である。
【図2】ソースプログラムの一例を示す図である。
【図3】図2に示したソースプログラムに対する第一の
中間テキストを示す図である。
中間テキストを示す図である。
【図4】図2に示したソースプログラムに対する第二の
中間テキストを示す図である。
中間テキストを示す図である。
【図5】ソースプログラムの他の例を示す図である。
【図6】図5に示したソースプログラムを変形すること
で文字関係式を並列実行可能にできることを示す図であ
る。
で文字関係式を並列実行可能にできることを示す図であ
る。
【図7】図5に示したソースプログラムに対する第一の
中間テキストを示す図である。
中間テキストを示す図である。
【図8】図5に示したソースプログラムに対する第二の
中間テキストを示す図である。
中間テキストを示す図である。
【符号の説明】 1 ソースプログラム 2 コンパイラ 3 目的プログラム 21 構文解析部 22 ベクトル化部 23 コード生成部 24 第一の中間テキスト 25 第二の中間テキスト 221 条件判定部 222 ループ構成部
Claims (3)
- 【請求項1】 ベクトル演算機能を有するベクトルプロ
セッサに対して、高級言語で書かれたソースプログラム
を読み込み、構文解析を行なって第一の中間テキストを
生成する構文解析部と、 前記第一の中間テキストから並列実行可能部分の認識を
行ない、かつ第二の中間テキストを生成するベクトル化
部と、 前記第二の中間テキストから目的プログラムを生成して
出力するコード生成部とを有するコンパイラのベクトル
化処理方式において、 前記ベクトル化部が、 文字関係式について並列実行可能な条件を満足するかど
うかを判定する条件判定部と、 前記条件判定部で並列実行可能と判定された文字関係式
について、文字型要素を整数型の配列とみなし、かつ関
係式を整数型の配列の一要素毎の比較の繰り返しで実行
するループとして前記第二の中間テキストを構成するこ
とにより、文字関係式をベクトル化するループ構成部と
を有することを特徴とするベクトル化処理方式。 - 【請求項2】 前記条件判定部が、 文字関係式に対する第一の中間テキストから、関係式の
第一のオペランドと第二のオペランドの文字型要素の長
さを取り出し、第一および第二のオペランドの文字型要
素の長さが等しくかつその長さが整数型要素の長さで割
り切れれば、並列実行可能と判定することを特徴とする
請求項1記載のベクトル化処理方式。 - 【請求項3】 前記条件判定部が、 文字関係式に対する第一の中間テキストから、関係式の
関係演算子を取り出し、関係演算子が大小比較を行なう
関係演算子の場合は、文字の大小比較を整数型の一要素
長で行なえる文字コード体系を使用するシステムでは、
並列実行可能と判定し、文字の大小比較を整数型の一要
素長で行なえない文字コード体系を使用するシステムで
は、並列実行不可と判定することを特徴とする請求項2
記載のベクトル化方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3197995A JPH0540780A (ja) | 1991-08-07 | 1991-08-07 | ベクトル化処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3197995A JPH0540780A (ja) | 1991-08-07 | 1991-08-07 | ベクトル化処理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0540780A true JPH0540780A (ja) | 1993-02-19 |
Family
ID=16383764
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3197995A Withdrawn JPH0540780A (ja) | 1991-08-07 | 1991-08-07 | ベクトル化処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0540780A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1754725A2 (en) | 2005-08-17 | 2007-02-21 | Nippon Shokubai Co.,Ltd. | Production method of water-absorbent resin, water-absorbent resin, and usage of water-absorbent resin |
| US7960469B2 (en) | 2003-06-24 | 2011-06-14 | Nippon Shokubai Co., Ltd. | Water absorbent resin composition and production method thereof |
| WO2017119378A1 (ja) * | 2016-01-04 | 2017-07-13 | 日本電気株式会社 | プログラム変換装置、プログラム変換方法、プログラム変換プログラムが記録された記録媒体 |
-
1991
- 1991-08-07 JP JP3197995A patent/JPH0540780A/ja not_active Withdrawn
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7960469B2 (en) | 2003-06-24 | 2011-06-14 | Nippon Shokubai Co., Ltd. | Water absorbent resin composition and production method thereof |
| EP1754725A2 (en) | 2005-08-17 | 2007-02-21 | Nippon Shokubai Co.,Ltd. | Production method of water-absorbent resin, water-absorbent resin, and usage of water-absorbent resin |
| EP2287215A2 (en) | 2005-08-17 | 2011-02-23 | Nippon Shokubai Co., Ltd. | Production method of water-absorbent resin, water-absorbent resin and usage of water-absorbent resin |
| WO2017119378A1 (ja) * | 2016-01-04 | 2017-07-13 | 日本電気株式会社 | プログラム変換装置、プログラム変換方法、プログラム変換プログラムが記録された記録媒体 |
| US10824407B2 (en) | 2016-01-04 | 2020-11-03 | Nec Corporation | Program conversion device, program conversion method, and non-transitory recording medium having program conversion program recorded therein |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20060075305A1 (en) | Method and system for source-code model-based testing | |
| Taneja et al. | Llm-vectorizer: Llm-based verified loop vectorizer | |
| Fauth et al. | Automated generation of DSP program development tools using a machine description formalism | |
| Mazzotta et al. | Compilation of aggregates in ASP systems | |
| JPH0795274B2 (ja) | 配列添字解析方法 | |
| JPH05189472A (ja) | コンパイラのベクトル化処理方式 | |
| Koppel et al. | Automatically deriving control-flow graph generators from operational semantics | |
| JPH0540780A (ja) | ベクトル化処理方式 | |
| Macedo et al. | Expressing disambiguation filters as combinators | |
| Siek et al. | Essentials of Compilation | |
| Ulle | Source Code Analysis and Type Inference for R | |
| Aronsson et al. | Meta Programming and Function Overloading in OpenModelica | |
| Pit-Claudel | Relational compilation: Functional-to-imperative code generation for performance-critical applications | |
| JPH04220727A (ja) | ベクトル化処理方式 | |
| Rababaah | A new simple programming language for education | |
| Olsson | The art of writing specifications for the ADATE automatic programming system | |
| JP2956591B2 (ja) | ループ外への条件付き飛び出しがあるループの並列化方法及び装置 | |
| JPH06290206A (ja) | ベクトル化変換システム | |
| Saraiva et al. | Expressing disambiguation filters as combinators | |
| JP2004246924A (ja) | アプリケーションジェネレータ開発支援装置及びアプリケーションジェネレータ開発支援方法 | |
| Asheim | Smeil: A domain-specific language for synchronous message exchange networks | |
| Hjort Blindell | Tree Covering | |
| JPH0895957A (ja) | ベクトル化処理方法 | |
| JP3124000B2 (ja) | 構造型の利用者定義演算のインライン展開装置 | |
| de Carvalho | A meta-language and framework for aspect-oriented programming |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19981112 |