JPH0950429A - コンパイラにおけるポインタベクトル化システム - Google Patents
コンパイラにおけるポインタベクトル化システムInfo
- Publication number
- JPH0950429A JPH0950429A JP20414795A JP20414795A JPH0950429A JP H0950429 A JPH0950429 A JP H0950429A JP 20414795 A JP20414795 A JP 20414795A JP 20414795 A JP20414795 A JP 20414795A JP H0950429 A JPH0950429 A JP H0950429A
- Authority
- JP
- Japan
- Prior art keywords
- pointer
- data
- intermediate text
- unit
- vectorized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000006243 chemical reaction Methods 0.000 claims abstract description 40
- 239000000284 extract Substances 0.000 claims description 6
- 238000000034 method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 8
- 238000007796 conventional method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【課題】プログラム中に存在するポインタ変数をベクト
ル化する。 【解決手段】コンパイラ1はソースプログラム7を読み
込み、構文解析/意味解析部2により構文要素/意味要
素を取り出して中間テキスト8を生成する。ベクトル化
部3の判定部4は、該中間テキスト8中にポインタデー
タがあるか否かを判定し、ポインタデータがあればさら
に該ポインタデータがベクトル化可能か否かを判定し、
ベクトル化可能の場合に、ベクトル化部3の変換部5
は、該ポインタデータにより参照されるデータのオペラ
ンドを、仮想的にメモリの0番地から割り付けられたダ
ミー配列を参照するオペランドに変換する。ベクトル化
部3は、変換部5によりダミー配列を参照するように変
換されたポインタデータをベクトル化して中間テキスト
8にする。コード生成部6は、ベクトル化された中間テ
キスト8を読み込み、ベクトル化された目的プログラム
9を生成する。
ル化する。 【解決手段】コンパイラ1はソースプログラム7を読み
込み、構文解析/意味解析部2により構文要素/意味要
素を取り出して中間テキスト8を生成する。ベクトル化
部3の判定部4は、該中間テキスト8中にポインタデー
タがあるか否かを判定し、ポインタデータがあればさら
に該ポインタデータがベクトル化可能か否かを判定し、
ベクトル化可能の場合に、ベクトル化部3の変換部5
は、該ポインタデータにより参照されるデータのオペラ
ンドを、仮想的にメモリの0番地から割り付けられたダ
ミー配列を参照するオペランドに変換する。ベクトル化
部3は、変換部5によりダミー配列を参照するように変
換されたポインタデータをベクトル化して中間テキスト
8にする。コード生成部6は、ベクトル化された中間テ
キスト8を読み込み、ベクトル化された目的プログラム
9を生成する。
Description
【発明の属する技術分野】本発明は、ソースプログラム
を入力して目的プログラムを生成するコンパイラに関
し、特にソースプログラム中のポインタデータによって
指される配列データをベクトル化して目的プログラムを
生成するコンパイラにおけるポインタベクトル化システ
ムに関する。
を入力して目的プログラムを生成するコンパイラに関
し、特にソースプログラム中のポインタデータによって
指される配列データをベクトル化して目的プログラムを
生成するコンパイラにおけるポインタベクトル化システ
ムに関する。
【0001】
【従来の技術】C言語のように、ポインタデータを利用
者が自由に使用することができる言語においては、該ポ
インタデータを使って、図2に示すようにベクトルデー
タを記述することができる。
者が自由に使用することができる言語においては、該ポ
インタデータを使って、図2に示すようにベクトルデー
タを記述することができる。
【0002】図2において、(a)はポインタ変数pが
指すint属性の領域にiの値を代入し、(b)はポイ
ンタ変数pの内容に(xの値)×(pの指す領域の大き
さ)を加算して、pに代入することを意味している。こ
こで、xの内容はコンパイル時には不明であるものとす
る。この例では、ポインタ変数がfor文の制御変数i
とともに変化していき、そのポインタ変数pが指す領域
も変化する。for文のすべてを繰り返すことにより、
このポインタ変数pの指す領域全体がベクトルデータと
なる。
指すint属性の領域にiの値を代入し、(b)はポイ
ンタ変数pの内容に(xの値)×(pの指す領域の大き
さ)を加算して、pに代入することを意味している。こ
こで、xの内容はコンパイル時には不明であるものとす
る。この例では、ポインタ変数がfor文の制御変数i
とともに変化していき、そのポインタ変数pが指す領域
も変化する。for文のすべてを繰り返すことにより、
このポインタ変数pの指す領域全体がベクトルデータと
なる。
【0003】従来のポインタのベクトル化方式が特開平
5−303500号公報に記載されている。この特開平
5−303500号公報記載の技術においては、図2
(a)が示す式が配列の添字式(例えばd[i]のよう
な式)ではないため、ベクトルデータとは見なさずに、
ベクトル化できないという問題があった。
5−303500号公報に記載されている。この特開平
5−303500号公報記載の技術においては、図2
(a)が示す式が配列の添字式(例えばd[i]のよう
な式)ではないため、ベクトルデータとは見なさずに、
ベクトル化できないという問題があった。
【0004】この特開平5−303500号公報記載の
技術においては、該問題を解決する手段として、プログ
ラムのループ内を検索してポインタ変数を取り出し、取
り出したポインタ変数pについてループ内で更新があ
り、更新する値が定数であり、更新が1回であり、*p
があり、*(p+△)がなく、p[△]もないときに、
該ポインタ変数pを配列型に変換可能と判定し、該ポイ
ンタ変数pの初期値(図2の場合はq)を取り出し、*
pをq[i]に置換し、配列型に変換してベクトル化を
行っている。
技術においては、該問題を解決する手段として、プログ
ラムのループ内を検索してポインタ変数を取り出し、取
り出したポインタ変数pについてループ内で更新があ
り、更新する値が定数であり、更新が1回であり、*p
があり、*(p+△)がなく、p[△]もないときに、
該ポインタ変数pを配列型に変換可能と判定し、該ポイ
ンタ変数pの初期値(図2の場合はq)を取り出し、*
pをq[i]に置換し、配列型に変換してベクトル化を
行っている。
【0005】具体的には、特開平5−303500号公
報記載の技術は図8のように構成されている。図9のソ
ースプログラムを例にとって説明すると、図9の第1行
でポインタ変数p、配列型変数aが倍精度である旨を宣
言し、第3行のforループ以降がループを表す。この
ループは、i=0からi=n−1までのn回、pの指す
領域にiを倍精度型に型変換して代入することを表して
いる。図10は該公報の動作説明フローチャートを示
す。図10において、S1は構文解析処理であり、図9
のソースプログラムを図8のソースプログラム解析部8
3が解析する。S2はループの構造変換処理であり、S
1で解析したループ構造のうちのベクトル不可のfor
ループについて、図8の最適化部84を構成するループ
構造変換部85が、ベクトル化が可能な回転数を用いた
ループ構造に変換する。S3はループ内を検索して、ポ
インタ変数を取り出す処理であり、図9のループ内を検
索してポインタ変数として、pを取り出す。S4はポイ
ンタ変数があるか否かを判定する処理であり、ポインタ
変数がある場合にはS5以降に進む。一方、ポインタ変
数がない場合にはS5以降の処理を行わない。S5はポ
インタ変数を1つ取り出し、配列型に変換可能か否かを
調べる処理であり、図11のフローチャートに従って、
取り出したポインタ変数による表現が配列型に変換可能
か調べ、その結果を保持する。S6はS5でポインタ変
数を配列型に変換可能と判定した場合の処理であり、図
12のフローチャートに従って、配列型に変換可能と判
定されたポインタ変数を配列型に変換する。S7は、す
べてのポインタ変数について処理が終了したか否かを判
定する処理であり、すべて終了したと判定した場合には
S8に進む。未だ終了していないポインタ変数がある場
合には、次のポインタ変数についてS5、S6を繰り返
し行う。S8はポインタ変数がすべて配列型に変換でき
たか否かを判定する処理であり、変換できた場合にはS
9でベクトル化が可能であることを通知する。以上の処
理によって、ループ内からポインタ変数を取り出し、図
11のフローチャートによって配列型に変換可能と判定
された場合に、図12のフローチャートによってポイン
タ変数を配列型に変換する。これにより、位置の変わる
ポインタを配列型に変換し、この配列をベクトルと考え
てこれに続くベクトル化部89でベクトル化することが
可能となる。
報記載の技術は図8のように構成されている。図9のソ
ースプログラムを例にとって説明すると、図9の第1行
でポインタ変数p、配列型変数aが倍精度である旨を宣
言し、第3行のforループ以降がループを表す。この
ループは、i=0からi=n−1までのn回、pの指す
領域にiを倍精度型に型変換して代入することを表して
いる。図10は該公報の動作説明フローチャートを示
す。図10において、S1は構文解析処理であり、図9
のソースプログラムを図8のソースプログラム解析部8
3が解析する。S2はループの構造変換処理であり、S
1で解析したループ構造のうちのベクトル不可のfor
ループについて、図8の最適化部84を構成するループ
構造変換部85が、ベクトル化が可能な回転数を用いた
ループ構造に変換する。S3はループ内を検索して、ポ
インタ変数を取り出す処理であり、図9のループ内を検
索してポインタ変数として、pを取り出す。S4はポイ
ンタ変数があるか否かを判定する処理であり、ポインタ
変数がある場合にはS5以降に進む。一方、ポインタ変
数がない場合にはS5以降の処理を行わない。S5はポ
インタ変数を1つ取り出し、配列型に変換可能か否かを
調べる処理であり、図11のフローチャートに従って、
取り出したポインタ変数による表現が配列型に変換可能
か調べ、その結果を保持する。S6はS5でポインタ変
数を配列型に変換可能と判定した場合の処理であり、図
12のフローチャートに従って、配列型に変換可能と判
定されたポインタ変数を配列型に変換する。S7は、す
べてのポインタ変数について処理が終了したか否かを判
定する処理であり、すべて終了したと判定した場合には
S8に進む。未だ終了していないポインタ変数がある場
合には、次のポインタ変数についてS5、S6を繰り返
し行う。S8はポインタ変数がすべて配列型に変換でき
たか否かを判定する処理であり、変換できた場合にはS
9でベクトル化が可能であることを通知する。以上の処
理によって、ループ内からポインタ変数を取り出し、図
11のフローチャートによって配列型に変換可能と判定
された場合に、図12のフローチャートによってポイン
タ変数を配列型に変換する。これにより、位置の変わる
ポインタを配列型に変換し、この配列をベクトルと考え
てこれに続くベクトル化部89でベクトル化することが
可能となる。
【0006】
【発明が解決しようとする課題】この従来の技術におい
ては、ループ中のベクトルデータが配列の添字式で記述
されているか、もしくはポインタ変数pについて、ルー
プ内で更新があり、更新する値が定数であり、更新が1
回であり、*pがあり、*(p+△)がなく、p[△]
もないの場合にのみ、該ポインタ変数pを配列型に変換
可能判定し、該ポインタ変数pの初期値を取り出し、*
pをq[i]に置き換え、配列型に変換してベクトル化
を行っているが、このような多くの条件に合致しない場
合には、該ポインタ変数はベクトル化されず、ベクトル
プロセッサの性能を十分に発揮できないという問題点が
ある。
ては、ループ中のベクトルデータが配列の添字式で記述
されているか、もしくはポインタ変数pについて、ルー
プ内で更新があり、更新する値が定数であり、更新が1
回であり、*pがあり、*(p+△)がなく、p[△]
もないの場合にのみ、該ポインタ変数pを配列型に変換
可能判定し、該ポインタ変数pの初期値を取り出し、*
pをq[i]に置き換え、配列型に変換してベクトル化
を行っているが、このような多くの条件に合致しない場
合には、該ポインタ変数はベクトル化されず、ベクトル
プロセッサの性能を十分に発揮できないという問題点が
ある。
【0007】本発明の目的は、プログラムの実行性能を
向上させることにある。
向上させることにある。
【0008】本発明の他の目的は、ベクトルプロセッサ
を効率良く利用してプログラムを実行することにある。
を効率良く利用してプログラムを実行することにある。
【0009】本発明の他の目的は、プログラム中に存在
するポインタ変数をベクトル化することにある。
するポインタ変数をベクトル化することにある。
【0010】
【課題を解決するための手段】本発明の第1のコンパイ
ラにおけるポインタベクトル化システムは、ソースプロ
グラムを読み出し、構文要素/意味要素を取り出して、
第1の中間テキストを生成する構文解析/意味解析部
と、前記第1の中間テキストのループ中のポインタデー
タによって指されるデータを、仮想的にメモリの0番地
から割り付けられた配列データに置換してベクトル化
し、第2の中間テキストとして出力するベクトル化部
と、前記ベクトル化部によりベクトル化された前記第2
の中間テキストを入力し、ベクトル命令を含む目的プロ
グラムを作成するコード生成部とから構成されている。
ラにおけるポインタベクトル化システムは、ソースプロ
グラムを読み出し、構文要素/意味要素を取り出して、
第1の中間テキストを生成する構文解析/意味解析部
と、前記第1の中間テキストのループ中のポインタデー
タによって指されるデータを、仮想的にメモリの0番地
から割り付けられた配列データに置換してベクトル化
し、第2の中間テキストとして出力するベクトル化部
と、前記ベクトル化部によりベクトル化された前記第2
の中間テキストを入力し、ベクトル命令を含む目的プロ
グラムを作成するコード生成部とから構成されている。
【0011】本発明の第2のコンパイラにおけるポイン
タベクトル化システムは、ソースプログラムを読み出
し、構文要素/意味要素を取り出して、第1の中間テキ
ストを生成する構文解析/意味解析部と、前記第1の中
間テキスト中のポインタデータによって参照されるデー
タのオペランドを、仮想的にメモリの0番地から割り付
けられた配列データを表現するダミーのオペランドに置
換してベクトル化し、第2の中間テキストとして出力す
るベクトル化部と、前記ベクトル化部によりベクトル化
された前記第2の中間テキストを入力し、ベクトル命令
を含む目的プログラムを作成するコード生成部とから構
成されている。
タベクトル化システムは、ソースプログラムを読み出
し、構文要素/意味要素を取り出して、第1の中間テキ
ストを生成する構文解析/意味解析部と、前記第1の中
間テキスト中のポインタデータによって参照されるデー
タのオペランドを、仮想的にメモリの0番地から割り付
けられた配列データを表現するダミーのオペランドに置
換してベクトル化し、第2の中間テキストとして出力す
るベクトル化部と、前記ベクトル化部によりベクトル化
された前記第2の中間テキストを入力し、ベクトル命令
を含む目的プログラムを作成するコード生成部とから構
成されている。
【0012】本発明の第3のコンパイラにおけるポイン
タベクトル化システムは、ソースプログラム中に含まれ
るポインタデータによって指される配列データをベクト
ル化し、目的プログラムを生成するコンパイラにおける
ポインタベクトル化システムであって、前記ソースプロ
グラムを読み出し、構文要素/意味要素を取り出して、
第1の中間テキストを生成する構文解析/意味解析部
と、前記第1の中間テキストのループ中にポインタデー
タによって指されるデータがあるか否かを判定し、該ポ
インタデータであると判定した場合には、該ポインタデ
ータがベクトル化することができるか否かを判定し、該
ポインタデータをベクトル化することができると判定し
た場合には、該ポインタデータによって指されるデータ
を、仮想的にメモリの0番地から割り付けられた配列デ
ータに置換してベクトル化し、第2の中間テキストとし
て出力するベクトル化部と、前記ベクトル化部によりベ
クトル化された前記第2の中間テキストを入力し、ベク
トル命令を含む目的プログラムを作成するコード生成部
とから構成されている。
タベクトル化システムは、ソースプログラム中に含まれ
るポインタデータによって指される配列データをベクト
ル化し、目的プログラムを生成するコンパイラにおける
ポインタベクトル化システムであって、前記ソースプロ
グラムを読み出し、構文要素/意味要素を取り出して、
第1の中間テキストを生成する構文解析/意味解析部
と、前記第1の中間テキストのループ中にポインタデー
タによって指されるデータがあるか否かを判定し、該ポ
インタデータであると判定した場合には、該ポインタデ
ータがベクトル化することができるか否かを判定し、該
ポインタデータをベクトル化することができると判定し
た場合には、該ポインタデータによって指されるデータ
を、仮想的にメモリの0番地から割り付けられた配列デ
ータに置換してベクトル化し、第2の中間テキストとし
て出力するベクトル化部と、前記ベクトル化部によりベ
クトル化された前記第2の中間テキストを入力し、ベク
トル命令を含む目的プログラムを作成するコード生成部
とから構成されている。
【0013】本発明の第4のコンパイラにおけるポイン
タベクトル化システムは、ソースプログラム中に含まれ
るポインタデータによって指される配列データをベクト
ル化し、目的プログラムを生成するコンパイラにおける
ポインタベクトル化システムであって、前記ソースプロ
グラムを読み出し、構文要素/意味要素を取り出して、
第1の中間テキストを生成する構文解析/意味解析部
と、前記第1の中間テキストのオペランドを1つずつポ
インタデータか否かを判定し、該オペランドがポインタ
データであると判定した場合には、該ポインタデータが
ベクトル化することができるか否かを判定し、該ポイン
タデータをベクトル化することができると判定した場合
には、該ポインタデータによって参照されるデータのオ
ペランドを、仮想的にメモリの0番地から割り付けられ
た配列データを表現するダミーのオペランドに置換して
ベクトル化し、第2の中間テキストとして出力するベク
トル化部と、前記ベクトル化部によりベクトル化された
前記第2の中間テキストを入力し、ベクトル命令を含む
目的プログラムを作成するコード生成部とから構成され
ている。
タベクトル化システムは、ソースプログラム中に含まれ
るポインタデータによって指される配列データをベクト
ル化し、目的プログラムを生成するコンパイラにおける
ポインタベクトル化システムであって、前記ソースプロ
グラムを読み出し、構文要素/意味要素を取り出して、
第1の中間テキストを生成する構文解析/意味解析部
と、前記第1の中間テキストのオペランドを1つずつポ
インタデータか否かを判定し、該オペランドがポインタ
データであると判定した場合には、該ポインタデータが
ベクトル化することができるか否かを判定し、該ポイン
タデータをベクトル化することができると判定した場合
には、該ポインタデータによって参照されるデータのオ
ペランドを、仮想的にメモリの0番地から割り付けられ
た配列データを表現するダミーのオペランドに置換して
ベクトル化し、第2の中間テキストとして出力するベク
トル化部と、前記ベクトル化部によりベクトル化された
前記第2の中間テキストを入力し、ベクトル命令を含む
目的プログラムを作成するコード生成部とから構成され
ている。
【0014】本発明の第5のコンパイラにおけるポイン
タベクトル化システムは、ソースプログラム中に含まれ
るポインタデータによって指される配列データをベクト
ル化し、目的プログラムを生成するポインタベクトル化
システムであって、前記ソースプログラムを読み出し、
構文要素/意味要素を取り出して、第1の中間テキスト
を生成する構文解析/意味解析部と、前記第1の中間テ
キストのループ中にポインタデータによって指されるデ
ータがあるか否かを判定し、該ポインタデータであると
判定した場合には、該ポインタデータがベクトル化する
ことができるか否かを判定する判定部と、前記判定部が
前記ポインタデータをベクトル化することができると判
定した場合には、該ポインタデータによって指されるデ
ータを、仮想的にメモリの0番地から割り付けられた配
列データに置換するように前記第1の中間テキストを変
換する変換部と、前記判定部と前記変換部とを含み、前
記第1の中間テキスト中の前記変換部によって変換され
た配列データをベクトル化し、第2の中間テキストとし
て出力するベクトル化部と、前記ベクトル化部によりベ
クトル化された前記第2の中間テキストを入力し、ベク
トル命令を含む目的プログラムを作成するコード生成部
とから構成されている。
タベクトル化システムは、ソースプログラム中に含まれ
るポインタデータによって指される配列データをベクト
ル化し、目的プログラムを生成するポインタベクトル化
システムであって、前記ソースプログラムを読み出し、
構文要素/意味要素を取り出して、第1の中間テキスト
を生成する構文解析/意味解析部と、前記第1の中間テ
キストのループ中にポインタデータによって指されるデ
ータがあるか否かを判定し、該ポインタデータであると
判定した場合には、該ポインタデータがベクトル化する
ことができるか否かを判定する判定部と、前記判定部が
前記ポインタデータをベクトル化することができると判
定した場合には、該ポインタデータによって指されるデ
ータを、仮想的にメモリの0番地から割り付けられた配
列データに置換するように前記第1の中間テキストを変
換する変換部と、前記判定部と前記変換部とを含み、前
記第1の中間テキスト中の前記変換部によって変換され
た配列データをベクトル化し、第2の中間テキストとし
て出力するベクトル化部と、前記ベクトル化部によりベ
クトル化された前記第2の中間テキストを入力し、ベク
トル命令を含む目的プログラムを作成するコード生成部
とから構成されている。
【0015】本発明の第6のコンパイラにおけるポイン
タベクトル化システムは、ソースプログラム中に含まれ
るポインタデータによって指される配列データをベクト
ル化し、目的プログラムを生成するポインタベクトル化
システムであって、前記ソースプログラムを読み出し、
構文要素/意味要素を取り出して、第1の中間テキスト
を生成する構文解析/意味解析部と、前記第1の中間テ
キストのオペランドを1つずつポインタデータか否かを
判定し、該オペランドがポインタデータであると判定し
た場合には、該ポインタデータがベクトル化することが
できるか否かを判定する判定部と、前記判定部が前記ポ
インタデータをベクトル化することができると判定した
場合には、該ポインタデータによって参照されるデータ
のオペランドを、仮想的にメモリの0番地から割り付け
られた配列データを表現するダミーのオペランドに置換
するように前記第1の中間テキストを変換する変換部
と、前記判定部と前記変換部とを含み、前記第1の中間
テキスト中の前記変換部によって変換された配列データ
を表現するダミーのオペランドをベクトル化し、第2の
中間テキストとして出力するベクトル化部と、前記ベク
トル化部によりベクトル化された前記第2の中間テキス
トを入力し、ベクトル命令を含む目的プログラムを作成
するコード生成部とから構成されている。
タベクトル化システムは、ソースプログラム中に含まれ
るポインタデータによって指される配列データをベクト
ル化し、目的プログラムを生成するポインタベクトル化
システムであって、前記ソースプログラムを読み出し、
構文要素/意味要素を取り出して、第1の中間テキスト
を生成する構文解析/意味解析部と、前記第1の中間テ
キストのオペランドを1つずつポインタデータか否かを
判定し、該オペランドがポインタデータであると判定し
た場合には、該ポインタデータがベクトル化することが
できるか否かを判定する判定部と、前記判定部が前記ポ
インタデータをベクトル化することができると判定した
場合には、該ポインタデータによって参照されるデータ
のオペランドを、仮想的にメモリの0番地から割り付け
られた配列データを表現するダミーのオペランドに置換
するように前記第1の中間テキストを変換する変換部
と、前記判定部と前記変換部とを含み、前記第1の中間
テキスト中の前記変換部によって変換された配列データ
を表現するダミーのオペランドをベクトル化し、第2の
中間テキストとして出力するベクトル化部と、前記ベク
トル化部によりベクトル化された前記第2の中間テキス
トを入力し、ベクトル命令を含む目的プログラムを作成
するコード生成部とから構成されている。
【0016】
【発明の実施の形態】以下、本発明の一実施例につい
て、図を参照しながら詳細に説明する。
て、図を参照しながら詳細に説明する。
【0017】図1を参照すると、本発明の一実施例であ
るコンパイラにおけるポインタベクトル化システムは、
コンパイラ1、ソースプログラム7、および目的プログ
ラム9とから構成される。
るコンパイラにおけるポインタベクトル化システムは、
コンパイラ1、ソースプログラム7、および目的プログ
ラム9とから構成される。
【0018】コンパイラ1は、構文解析/意味解析部
2、ベクトル化部3、およびコード生成部6を含み、ベ
クトル化部3は、判定部4および変換部5を有してい
る。
2、ベクトル化部3、およびコード生成部6を含み、ベ
クトル化部3は、判定部4および変換部5を有してい
る。
【0019】コンパイラ1は、ソースプログラム7を読
み込み、目的プログラム9を作成するものであって、構
文解析/意味解析部2、ベクトル化部3、コード生成部
6を順次起動する。
み込み、目的プログラム9を作成するものであって、構
文解析/意味解析部2、ベクトル化部3、コード生成部
6を順次起動する。
【0020】ソースプログラム7は、本実施例において
は図2に示すようにC言語で記述したソースプログラム
であり、ループ内においてポインタ変数pを参照する。
は図2に示すようにC言語で記述したソースプログラム
であり、ループ内においてポインタ変数pを参照する。
【0021】構文解析/意味解析部2は、ソースプログ
ラム7からC言語の構文要素/意味要素を取り出して中
間テキスト8を生成する。
ラム7からC言語の構文要素/意味要素を取り出して中
間テキスト8を生成する。
【0022】ベクトル化部3は、中間テキスト8を読み
込み、ループを構成する中間テキストの並びを検出し、
ベクトル化された中間テキストを出力する。
込み、ループを構成する中間テキストの並びを検出し、
ベクトル化された中間テキストを出力する。
【0023】判定部4は、中間テキスト中にポインタデ
ータがあるか否かを判定し、ポインタデータがあれば、
そのポインタデータがベクトル化可能か否かを判定し、
可能であれば変換部5を起動する。
ータがあるか否かを判定し、ポインタデータがあれば、
そのポインタデータがベクトル化可能か否かを判定し、
可能であれば変換部5を起動する。
【0024】変換部5は、入力した中間テキスト中のポ
インタデータによって参照されるデータのオペランド
を、仮想的にメモリの0番地から割り付けられた配列デ
ータを表現するダミーのオペランドとして、中間テキス
トに出力する。この変換部5によってダミー配列の参照
に変換されたポインタ参照データはベクトル化部3によ
って、ベクトル化された中間テキストとして中間テキス
ト8に出力される。
インタデータによって参照されるデータのオペランド
を、仮想的にメモリの0番地から割り付けられた配列デ
ータを表現するダミーのオペランドとして、中間テキス
トに出力する。この変換部5によってダミー配列の参照
に変換されたポインタ参照データはベクトル化部3によ
って、ベクトル化された中間テキストとして中間テキス
ト8に出力される。
【0025】コード生成部6は、ベクトル化された中間
テキスト8を読み込み、ベクトル化された目的プログラ
ム9を作成する。
テキスト8を読み込み、ベクトル化された目的プログラ
ム9を作成する。
【0026】次に本発明の一実施例の動作について、図
1〜図7を参照して説明する。
1〜図7を参照して説明する。
【0027】本実施例においては、図2のソースプログ
ラムを例に、ポインタ変数pによるポインタ参照の中間
テキストオペランド表現をダミー配列を表す中間テキス
トオペランド表現に変換するための処理を、図3〜図7
を用いて順次具体的に説明する。
ラムを例に、ポインタ変数pによるポインタ参照の中間
テキストオペランド表現をダミー配列を表す中間テキス
トオペランド表現に変換するための処理を、図3〜図7
を用いて順次具体的に説明する。
【0028】図2を参照すると、ソースプログラム7
は、第1行でポインタ変数pをint型を指すポインタ
として宣言している。第2行ではint型をもつ要素数
1000をもつ配列qを宣言している。第3行ではポイ
ンタ変数pに配列qの先頭アドレスを代入している。第
4行以降がループである。このループはiが0から99
までの100回変化し、iをpの指す領域に格納してい
る。pの内容は1回の繰り返しで、xの内容分の要素数
先の、要素の先頭アドレスを保持する。
は、第1行でポインタ変数pをint型を指すポインタ
として宣言している。第2行ではint型をもつ要素数
1000をもつ配列qを宣言している。第3行ではポイ
ンタ変数pに配列qの先頭アドレスを代入している。第
4行以降がループである。このループはiが0から99
までの100回変化し、iをpの指す領域に格納してい
る。pの内容は1回の繰り返しで、xの内容分の要素数
先の、要素の先頭アドレスを保持する。
【0029】まず構文解析/意味解析部2は、図2の状
態のソースプログラム7を読み出し(ステップ21)、
構文要素/意味要素を取り出して、図3に示す中間テキ
スト8を出力する(ステップ22)。
態のソースプログラム7を読み出し(ステップ21)、
構文要素/意味要素を取り出して、図3に示す中間テキ
スト8を出力する(ステップ22)。
【0030】図3の33〜37がループを構成してい
る。図2の*pへ変数iを代入する代入文は中間テキス
ト8において図3の35のようになる。35の*pを表
すオペランドは図6に示すようなシンボルテーブルを指
している。図6において、*pはポインタ変数が指すデ
ータであるので、シンボルテーブル中のベースアドレス
がポインタであることを示すフラグ61が設定されてい
る。また*pの場合、ポインタ変数が指す領域はpの内
容であるので、オフセット62には0が設定されてい
る。例えばオフセットに100が設定されている場合、
ベースアドレス63とオフセット62(この場合100)
の内容を加えたアドレスを参照することになる。ベース
アドレス63はポインタ変数pの内容そのものなので、
ポインタ変数pのシンボルテーブル65のアドレスが格
納されている。また*pにはインデックス修飾がないの
で、インデックス64には0が設定される。インデック
ス修飾とはたとえば、d[i]のように配列dが変数i
によって添字修飾されている状態を言う。
る。図2の*pへ変数iを代入する代入文は中間テキス
ト8において図3の35のようになる。35の*pを表
すオペランドは図6に示すようなシンボルテーブルを指
している。図6において、*pはポインタ変数が指すデ
ータであるので、シンボルテーブル中のベースアドレス
がポインタであることを示すフラグ61が設定されてい
る。また*pの場合、ポインタ変数が指す領域はpの内
容であるので、オフセット62には0が設定されてい
る。例えばオフセットに100が設定されている場合、
ベースアドレス63とオフセット62(この場合100)
の内容を加えたアドレスを参照することになる。ベース
アドレス63はポインタ変数pの内容そのものなので、
ポインタ変数pのシンボルテーブル65のアドレスが格
納されている。また*pにはインデックス修飾がないの
で、インデックス64には0が設定される。インデック
ス修飾とはたとえば、d[i]のように配列dが変数i
によって添字修飾されている状態を言う。
【0031】次にベクトル化部3は、図3の状態の中間
テキスト8を読み出し(ステップ31)、ベクトル化さ
れた中間テキスト8を出力する(ステップ32)。
テキスト8を読み出し(ステップ31)、ベクトル化さ
れた中間テキスト8を出力する(ステップ32)。
【0032】ここでベクトル化部3の判定部4は、入力
した中間テキスト8のオペランドを一つずつポインタデ
ータか否かを判定する(ステップ41)。該オペランド
がポインタデータであると判定した場合には、ポインタ
データを構成している要素にベクトル化不可要因がある
か否かを判定する(ステップ42)。ベクトル化不可要
因としては、例えばポインタデータの構成要素に関数呼
出しなどがある場合である。C言語で記述した場合、ポ
インタを返す関数fの呼出しによって得られるポインタ
データがこれにあたる。一般に、利用者定義の関数の呼
出しはベクトル化ができない。
した中間テキスト8のオペランドを一つずつポインタデ
ータか否かを判定する(ステップ41)。該オペランド
がポインタデータであると判定した場合には、ポインタ
データを構成している要素にベクトル化不可要因がある
か否かを判定する(ステップ42)。ベクトル化不可要
因としては、例えばポインタデータの構成要素に関数呼
出しなどがある場合である。C言語で記述した場合、ポ
インタを返す関数fの呼出しによって得られるポインタ
データがこれにあたる。一般に、利用者定義の関数の呼
出しはベクトル化ができない。
【0033】判定部4は、ポインタデータを構成してい
る要素にベクトル化不可要因がないと判定した場合、ポ
インタ参照データをダミー配列の参照に変換可能である
として変換部5を起動する(ステップ43)。図3の中
間テキスト8の場合、33〜37のループ中の35に*
pとして、ポインタデータの参照があり、36にpとし
てポインタデータの参照があるが、両者のポインタデー
タともにベクトル化不可要因はないので、ポインタデー
タによる修飾参照、図3の場合35の*pがダミー配列
の参照に変換が可能であると判定される。
る要素にベクトル化不可要因がないと判定した場合、ポ
インタ参照データをダミー配列の参照に変換可能である
として変換部5を起動する(ステップ43)。図3の中
間テキスト8の場合、33〜37のループ中の35に*
pとして、ポインタデータの参照があり、36にpとし
てポインタデータの参照があるが、両者のポインタデー
タともにベクトル化不可要因はないので、ポインタデー
タによる修飾参照、図3の場合35の*pがダミー配列
の参照に変換が可能であると判定される。
【0034】変換部5は、図6のポインタデータの修飾
参照に対するシンボルテーブルを入力して、図7に示す
ようなシンボルテーブルを生成し、ダミー配列の参照に
中間テキスト8のオペランドを置換する(ステップ5
1)。図7のシンボルテーブルは、ポインタ変数pをシ
ンボルのベースアドレスとしてではなく、インデックス
として表現している。よって、ベースアドレスがポイン
タ変数であることを示すフラグ71は設定されず、ベー
スアドレス73にも0が設定される。インデックス74
にはポインタ変数pのシンボルテーブルのアドレスが設
定される。これにより、このダミーのシンボルテーブル
は仮想的にメモリの0番地を先頭とした配列をポインタ
変数pの内容をインデックスとした配列参照として扱う
ことができる。C言語で記述すると、dummy[p]
のようになる。図4の45は*pの参照オペランドが図
7のダミーのシンボルテーブルに置換されたことを示
す。
参照に対するシンボルテーブルを入力して、図7に示す
ようなシンボルテーブルを生成し、ダミー配列の参照に
中間テキスト8のオペランドを置換する(ステップ5
1)。図7のシンボルテーブルは、ポインタ変数pをシ
ンボルのベースアドレスとしてではなく、インデックス
として表現している。よって、ベースアドレスがポイン
タ変数であることを示すフラグ71は設定されず、ベー
スアドレス73にも0が設定される。インデックス74
にはポインタ変数pのシンボルテーブルのアドレスが設
定される。これにより、このダミーのシンボルテーブル
は仮想的にメモリの0番地を先頭とした配列をポインタ
変数pの内容をインデックスとした配列参照として扱う
ことができる。C言語で記述すると、dummy[p]
のようになる。図4の45は*pの参照オペランドが図
7のダミーのシンボルテーブルに置換されたことを示
す。
【0035】ベクトル化部3は、変換部5が配列参照に
変換した中間テキストオペランド45に対してベクトル
化を行い、ベクトル化された中間テキスト8を生成す
る。
変換した中間テキストオペランド45に対してベクトル
化を行い、ベクトル化された中間テキスト8を生成す
る。
【0036】最後にコード生成部6は、ベクトル化され
た中間テキスト8を入力して(ステップ61)、ベクト
ル命令を含む目的プログラム9を生成する(ステップ6
2)。
た中間テキスト8を入力して(ステップ61)、ベクト
ル命令を含む目的プログラム9を生成する(ステップ6
2)。
【0037】以上により、本発明の一実施例であるコン
パイラにおけるポインタベクトル化システムの処理が終
了する。
パイラにおけるポインタベクトル化システムの処理が終
了する。
【0038】本発明の一実施例であるコンパイラにおけ
るポインタベクトル化システムによれば、プログラムの
ベクトル化可能なループ内にポインタデータの指す配列
データが存在する場合に、該ポインタデータの指す領域
を仮想的なメモリの0番地から割り付けられた配列デー
タの一部分と見なしてベクトル化することができる効果
を有している。
るポインタベクトル化システムによれば、プログラムの
ベクトル化可能なループ内にポインタデータの指す配列
データが存在する場合に、該ポインタデータの指す領域
を仮想的なメモリの0番地から割り付けられた配列デー
タの一部分と見なしてベクトル化することができる効果
を有している。
【0039】
【発明の効果】以上説明したように、本発明のコンパイ
ラにおけるポインタベクトル化システムは、プログラム
中に存在するポインタ変数をベクトル化することができ
る効果を有し、その結果としてベクトルプロセッサを効
率良く利用してプログラムを実行することができる効果
を有している。
ラにおけるポインタベクトル化システムは、プログラム
中に存在するポインタ変数をベクトル化することができ
る効果を有し、その結果としてベクトルプロセッサを効
率良く利用してプログラムを実行することができる効果
を有している。
【0040】さらに本発明のコンパイラにおけるポイン
タベクトル化システムは、プログラムの実行性能を向上
させることができる効果を有している。
タベクトル化システムは、プログラムの実行性能を向上
させることができる効果を有している。
【図1】図1は本発明の一実施例であるコンパイラにお
けるポインタベクトル化システムの構成を示すブロック
図である。
けるポインタベクトル化システムの構成を示すブロック
図である。
【図2】図2は本発明の一実施例におけるソースプログ
ラム7の内容の例を示す図である。
ラム7の内容の例を示す図である。
【図3】図3は本発明の一実施例における変換前の中間
テキスト8の内容を示す図である。
テキスト8の内容を示す図である。
【図4】図4は本発明の一実施例における変換後の中間
テキスト8の内容を示す図である。
テキスト8の内容を示す図である。
【図5】図5は本発明の一実施例における構文解析/意
味解析部2、ベクトル化部3、判定部4、変換部5、お
よびコード生成部6の処理を示す流れ図である。
味解析部2、ベクトル化部3、判定部4、変換部5、お
よびコード生成部6の処理を示す流れ図である。
【図6】図6は本発明の一実施例における変換前のオペ
ランドテーブルの内容を示す図である。
ランドテーブルの内容を示す図である。
【図7】図7は本発明の一実施例における変換後のオペ
ランドテーブルの内容を示す図である。
ランドテーブルの内容を示す図である。
【図8】図8は従来の技術の構成を示すブロック図であ
る。
る。
【図9】図9は従来の技術におけるソースプログラムの
内容の例を示す図である。
内容の例を示す図である。
【図10】図10は従来の技術における処理を示す流れ
図の一部である。
図の一部である。
【図11】図11は従来の技術における処理を示す流れ
図の一部である。
図の一部である。
【図12】図12は従来の技術における処理を示す流れ
図の一部である。
図の一部である。
1 コンパイラ 2 構文解析/意味解析部 3 ベクトル化部 4 判定部 5 変換部 6 コード生成部 7 ソースプログラム 8 中間テキスト 9 目的プログラム 31〜38 変換前の中間テキスト8 41〜48 変換後の中間テキスト8 61 変換前のシンボルテーブルのベースアドレスが
ポインタ変数であることを示すフラグ 62 変換前のシンボルテーブルのオフセット 63 変換前のシンボルテーブルのベースアドレス 64 変換前のシンボルテーブルのインデックス 65 ポインタ変数pのシンボルテーブル 71 変換後のシンボルテーブルのベースアドレスが
ポインタ変数であることを示すフラグ 72 変換後のシンボルテーブルのオフセット 73 変換後のシンボルテーブルのベースアドレス 74 変換後のシンボルテーブルのインデックス 75 ポインタ変数pのシンボルテーブル 81 従来技術のソース 82 従来技術のコンパイラ 83 従来技術のソースプログラム解析部 84 従来技術の最適化部 85 従来技術のループ構造変換部 86 従来技術のポインタ固定化部 87 従来技術の判定部 88 従来技術の変換部 89 従来技術のベクトル化部 810 従来技術のコード生成部 811 従来技術のオブジェクト
ポインタ変数であることを示すフラグ 62 変換前のシンボルテーブルのオフセット 63 変換前のシンボルテーブルのベースアドレス 64 変換前のシンボルテーブルのインデックス 65 ポインタ変数pのシンボルテーブル 71 変換後のシンボルテーブルのベースアドレスが
ポインタ変数であることを示すフラグ 72 変換後のシンボルテーブルのオフセット 73 変換後のシンボルテーブルのベースアドレス 74 変換後のシンボルテーブルのインデックス 75 ポインタ変数pのシンボルテーブル 81 従来技術のソース 82 従来技術のコンパイラ 83 従来技術のソースプログラム解析部 84 従来技術の最適化部 85 従来技術のループ構造変換部 86 従来技術のポインタ固定化部 87 従来技術の判定部 88 従来技術の変換部 89 従来技術のベクトル化部 810 従来技術のコード生成部 811 従来技術のオブジェクト
Claims (6)
- 【請求項1】 ソースプログラムを読み出し、構文要素
/意味要素を取り出して、第1の中間テキストを生成す
る構文解析/意味解析部と、 前記第1の中間テキストのループ中のポインタデータに
よって指されるデータを、仮想的にメモリの0番地から
割り付けられた配列データに置換してベクトル化し、第
2の中間テキストとして出力するベクトル化部と、 前記ベクトル化部によりベクトル化された前記第2の中
間テキストを入力し、ベクトル命令を含む目的プログラ
ムを作成するコード生成部とを備えたことを特徴とする
コンパイラにおけるポインタベクトル化システム。 - 【請求項2】 ソースプログラムを読み出し、構文要素
/意味要素を取り出して、第1の中間テキストを生成す
る構文解析/意味解析部と、 前記第1の中間テキスト中のポインタデータによって参
照されるデータのオペランドを、仮想的にメモリの0番
地から割り付けられた配列データを表現するダミーのオ
ペランドに置換してベクトル化し、第2の中間テキスト
として出力するベクトル化部と、 前記ベクトル化部によりベクトル化された前記第2の中
間テキストを入力し、ベクトル命令を含む目的プログラ
ムを作成するコード生成部とを備えたことを特徴とする
コンパイラにおけるポインタベクトル化システム。 - 【請求項3】 ソースプログラム中に含まれるポインタ
データによって指される配列データをベクトル化し、目
的プログラムを生成するコンパイラにおけるポインタベ
クトル化システムであって、 前記ソースプログラムを読み出し、構文要素/意味要素
を取り出して、第1の中間テキストを生成する構文解析
/意味解析部と、 前記第1の中間テキストのループ中にポインタデータに
よって指されるデータがあるか否かを判定し、該ポイン
タデータであると判定した場合には、該ポインタデータ
がベクトル化することができるか否かを判定し、該ポイ
ンタデータをベクトル化することができると判定した場
合には、該ポインタデータによって指されるデータを、
仮想的にメモリの0番地から割り付けられた配列データ
に置換してベクトル化し、第2の中間テキストとして出
力するベクトル化部と、 前記ベクトル化部によりベクトル化された前記第2の中
間テキストを入力し、ベクトル命令を含む目的プログラ
ムを作成するコード生成部とを備えたことを特徴とする
コンパイラにおけるポインタベクトル化システム。 - 【請求項4】 ソースプログラム中に含まれるポインタ
データによって指される配列データをベクトル化し、目
的プログラムを生成するコンパイラにおけるポインタベ
クトル化システムであって、 前記ソースプログラムを読み出し、構文要素/意味要素
を取り出して、第1の中間テキストを生成する構文解析
/意味解析部と、 前記第1の中間テキストのオペランドを1つずつポイン
タデータか否かを判定し、該オペランドがポインタデー
タであると判定した場合には、該ポインタデータがベク
トル化することができるか否かを判定し、該ポインタデ
ータをベクトル化することができると判定した場合に
は、該ポインタデータによって参照されるデータのオペ
ランドを、仮想的にメモリの0番地から割り付けられた
配列データを表現するダミーのオペランドに置換してベ
クトル化し、第2の中間テキストとして出力するベクト
ル化部と、 前記ベクトル化部によりベクトル化された前記第2の中
間テキストを入力し、ベクトル命令を含む目的プログラ
ムを作成するコード生成部とを備えたことを特徴とする
コンパイラにおけるポインタベクトル化システム。 - 【請求項5】 ソースプログラム中に含まれるポインタ
データによって指される配列データをベクトル化し、目
的プログラムを生成するポインタベクトル化システムで
あって、 前記ソースプログラムを読み出し、構文要素/意味要素
を取り出して、第1の中間テキストを生成する構文解析
/意味解析部と、 前記第1の中間テキストのループ中にポインタデータに
よって指されるデータがあるか否かを判定し、該ポイン
タデータであると判定した場合には、該ポインタデータ
がベクトル化することができるか否かを判定する判定部
と、 前記判定部が前記ポインタデータをベクトル化すること
ができると判定した場合には、該ポインタデータによっ
て指されるデータを、仮想的にメモリの0番地から割り
付けられた配列データに置換するように前記第1の中間
テキストを変換する変換部と、 前記判定部と前記変換部とを含み、前記第1の中間テキ
スト中の前記変換部によって変換された配列データをベ
クトル化し、第2の中間テキストとして出力するベクト
ル化部と、 前記ベクトル化部によりベクトル化された前記第2の中
間テキストを入力し、ベクトル命令を含む目的プログラ
ムを作成するコード生成部とを備えたことを特徴とする
コンパイラにおけるポインタベクトル化システム。 - 【請求項6】 ソースプログラム中に含まれるポインタ
データによって指される配列データをベクトル化し、目
的プログラムを生成するポインタベクトル化システムで
あって、 前記ソースプログラムを読み出し、構文要素/意味要素
を取り出して、第1の中間テキストを生成する構文解析
/意味解析部と、 前記第1の中間テキストのオペランドを1つずつポイン
タデータか否かを判定し、該オペランドがポインタデー
タであると判定した場合には、該ポインタデータがベク
トル化することができるか否かを判定する判定部と、 前記判定部が前記ポインタデータをベクトル化すること
ができると判定した場合には、該ポインタデータによっ
て参照されるデータのオペランドを、仮想的にメモリの
0番地から割り付けられた配列データを表現するダミー
のオペランドに置換するように前記第1の中間テキスト
を変換する変換部と、 前記判定部と前記変換部とを含み、前記第1の中間テキ
スト中の前記変換部によって変換された配列データを表
現するダミーのオペランドをベクトル化し、第2の中間
テキストとして出力するベクトル化部と、 前記ベクトル化部によりベクトル化された前記第2の中
間テキストを入力し、ベクトル命令を含む目的プログラ
ムを作成するコード生成部とを備えたことを特徴とする
コンパイラにおけるポインタベクトル化システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20414795A JPH0950429A (ja) | 1995-08-10 | 1995-08-10 | コンパイラにおけるポインタベクトル化システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20414795A JPH0950429A (ja) | 1995-08-10 | 1995-08-10 | コンパイラにおけるポインタベクトル化システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0950429A true JPH0950429A (ja) | 1997-02-18 |
Family
ID=16485620
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP20414795A Pending JPH0950429A (ja) | 1995-08-10 | 1995-08-10 | コンパイラにおけるポインタベクトル化システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0950429A (ja) |
-
1995
- 1995-08-10 JP JP20414795A patent/JPH0950429A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5142681A (en) | APL-to-Fortran translators | |
| JPH08202545A (ja) | ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法 | |
| JP2001166949A (ja) | シンボリック実行を用いてソースコードをコンパイルするための方法及び装置 | |
| KR102614967B1 (ko) | 자바스크립트의 중간 언어 기반 의미론 추출 자동화 시스템 및 방법 | |
| US7917899B2 (en) | Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus | |
| CN118312153A (zh) | 编译器后端代码生成方法、装置、存储介质 | |
| JP3318051B2 (ja) | 翻訳処理方法 | |
| McNamara | Rust in Action | |
| JPH0950429A (ja) | コンパイラにおけるポインタベクトル化システム | |
| Mössenböck | Compiler Construction: Fundamentals and Applications | |
| JPH0756745A (ja) | 言語処理プログラムのコンパイラ処理方式 | |
| US20080141230A1 (en) | Scope-Constrained Specification Of Features In A Programming Language | |
| JP5399601B2 (ja) | 実装コード開発システム、及び実装コード開発プログラム | |
| JPH07160490A (ja) | コーディング支援装置 | |
| JPH0235349B2 (ja) | Ruupunaihairetsushoribekutorukashorihoshiki | |
| JPH11195011A (ja) | 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体 | |
| JP2004246924A (ja) | アプリケーションジェネレータ開発支援装置及びアプリケーションジェネレータ開発支援方法 | |
| Wang | Music structure design utilizing computer JavaScript | |
| JP2000132405A (ja) | インライン展開処理装置及び方法 | |
| WO1997007452A1 (en) | Programmable compiler | |
| JP2539070B2 (ja) | コンパイラ処理装置 | |
| CN118394344A (zh) | 一种燃气轮机并行编译方法及装置 | |
| Mössenböck | Compiler Construction | |
| Sestoft | From Concrete Syntax to Abstract Syntax | |
| JPH04142629A (ja) | 高級言語処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19990209 |