JPH0373025A - 原始プログラム整形コンパイル方式 - Google Patents
原始プログラム整形コンパイル方式Info
- Publication number
- JPH0373025A JPH0373025A JP20996689A JP20996689A JPH0373025A JP H0373025 A JPH0373025 A JP H0373025A JP 20996689 A JP20996689 A JP 20996689A JP 20996689 A JP20996689 A JP 20996689A JP H0373025 A JPH0373025 A JP H0373025A
- Authority
- JP
- Japan
- Prior art keywords
- source program
- compiler
- program
- source
- formatting
- 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
- 238000000034 method Methods 0.000 claims description 14
- 238000007493 shaping process Methods 0.000 abstract 1
- 238000005457 optimization Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は原始プログラム整形コンパイル方式に関し、特
に他のコンパイラ(以下、ブリコンパイラという〉が生
成した原始プログラムを入力して翻訳するコンパイラを
備える翻訳系での原始プログラム整形コンパイル方式に
関する。
に他のコンパイラ(以下、ブリコンパイラという〉が生
成した原始プログラムを入力して翻訳するコンパイラを
備える翻訳系での原始プログラム整形コンパイル方式に
関する。
従来、コンパイラは、原始プログラムがブリコンパイラ
で生成されたか否かにかかわらず、原始プログラムをそ
のまま入力して翻訳していた。
で生成されたか否かにかかわらず、原始プログラムをそ
のまま入力して翻訳していた。
ところで、例えば第4世代言語(非手続き型言語、デー
タ中心型言語等ともいう)を通常の手続き型言語(例え
ばC0BOL等)に翻訳するブリコンパイラが生成する
原始プログラムは、非常に冗長な記述が多く、その原始
プログラムをコンパイラがそのまま翻訳しても最適な目
的プログラムは生成されなかった。
タ中心型言語等ともいう)を通常の手続き型言語(例え
ばC0BOL等)に翻訳するブリコンパイラが生成する
原始プログラムは、非常に冗長な記述が多く、その原始
プログラムをコンパイラがそのまま翻訳しても最適な目
的プログラムは生成されなかった。
上述した従来のコンパイラは、目的プログラムの最適化
を図っているものの、そのための改造は通常のユーザプ
ログラムには現れない記述に対する最適化であることが
多かったので、改造量の割には効果がでる確率が低いと
いう欠点がある。
を図っているものの、そのための改造は通常のユーザプ
ログラムには現れない記述に対する最適化であることが
多かったので、改造量の割には効果がでる確率が低いと
いう欠点がある。
また、一般に、コンパイラによる目的プログラムの最適
化は、目的プログラムの前後関係から最適化できるとこ
ろを最適化するような局所的なものが実現されているに
すぎず、プログラム構造自体を変えるといったような大
局的な最適化は行われていなかった。
化は、目的プログラムの前後関係から最適化できるとこ
ろを最適化するような局所的なものが実現されているに
すぎず、プログラム構造自体を変えるといったような大
局的な最適化は行われていなかった。
本発明の目的は、上述の点に鑑み、ブリコンパイラが生
成した原始プログラムは通常正常系であり、また同等の
機能さえ満足していればプログラムの構造を変えても構
わないということを利用して原始プログラムレベルで整
形を行って目的プログラムの最適化を図るようにした原
始プログラム整形コンパイル方式を提供することにある
。
成した原始プログラムは通常正常系であり、また同等の
機能さえ満足していればプログラムの構造を変えても構
わないということを利用して原始プログラムレベルで整
形を行って目的プログラムの最適化を図るようにした原
始プログラム整形コンパイル方式を提供することにある
。
本発明の原始プログラム整形コンパイル方式は、コンパ
イラに入力される原始プログラムが他のコンパイラで生
成されたものであるような翻訳系において、原始プログ
ラムを入力し原始プログラムの構造を解析し下位のコン
パイラが最適な目的プログラムを生成できるように原始
プログラムを整形する原始プログラム整形部を有する。
イラに入力される原始プログラムが他のコンパイラで生
成されたものであるような翻訳系において、原始プログ
ラムを入力し原始プログラムの構造を解析し下位のコン
パイラが最適な目的プログラムを生成できるように原始
プログラムを整形する原始プログラム整形部を有する。
本発明の原始プログラム整形コンパイル方式では、原始
プログラム整形部が原始プログラムを入力し原始プログ
ラムの構造を解析し下位のコンiくイラが最適な目的プ
ログラムを生成できるよう番こ原始プログラムを整形す
る。
プログラム整形部が原始プログラムを入力し原始プログ
ラムの構造を解析し下位のコンiくイラが最適な目的プ
ログラムを生成できるよう番こ原始プログラムを整形す
る。
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明の一実施例に係る原始プログラム整形
コンパイル方式が適用されたコンパイラ2の構成を示す
ブロック図である。このコンパイラ2は、原始プログラ
ム1および原始プログラム1がブリコンパイラ(図示せ
ず)によって生成されたものであるかどうかを指示する
パラメータ8とを人力して目的プログラム3を出力する
ものであり、コンパイラ制御部4と、原始プログラム整
形部5と、整形後原始プログラム6と、既存のコンパイ
ラであるコンパイラ本体7とを含んで構成されている。
コンパイル方式が適用されたコンパイラ2の構成を示す
ブロック図である。このコンパイラ2は、原始プログラ
ム1および原始プログラム1がブリコンパイラ(図示せ
ず)によって生成されたものであるかどうかを指示する
パラメータ8とを人力して目的プログラム3を出力する
ものであり、コンパイラ制御部4と、原始プログラム整
形部5と、整形後原始プログラム6と、既存のコンパイ
ラであるコンパイラ本体7とを含んで構成されている。
次に、このように構成された本実施例の原始プログラム
整形コンパイル方式の動作について説明する。
整形コンパイル方式の動作について説明する。
コンパイラ2が起動されると、コンパイラ制御部4は、
パラメータ8を参照して原始プログラム1がブリコンパ
イラによって生成されたものであるかどうかを判定する
。
パラメータ8を参照して原始プログラム1がブリコンパ
イラによって生成されたものであるかどうかを判定する
。
原始プログラム1がブリコンパイラによって生成された
ものである場合には、コンパイラ制御部4は、原始プロ
グラム整形部5を起動させ、そうでない場合には、原始
プログラムlをそのままコンパイラ本体7に入力させて
コンパイラ本体7を起動させる。
ものである場合には、コンパイラ制御部4は、原始プロ
グラム整形部5を起動させ、そうでない場合には、原始
プログラムlをそのままコンパイラ本体7に入力させて
コンパイラ本体7を起動させる。
原始プログラム整形部5は、原始プログラム1を人力し
、そのプログラム構造を解析し、コンパイラ本体7が最
適な目的プログラム3を出力できるように原始プログラ
ム1の冗長な記述を整形し、整形後原始プログラム6を
出力する。
、そのプログラム構造を解析し、コンパイラ本体7が最
適な目的プログラム3を出力できるように原始プログラ
ム1の冗長な記述を整形し、整形後原始プログラム6を
出力する。
コンパイラ本体7は、原始プログラム1がブリコンパイ
ラによって生成されたものである場合には整形後原始プ
ログラム6を入力して目的プログラム3を出力し、そう
でない場合には原始プログラム1をそのまま入力して目
的プログラム3を出力する。
ラによって生成されたものである場合には整形後原始プ
ログラム6を入力して目的プログラム3を出力し、そう
でない場合には原始プログラム1をそのまま入力して目
的プログラム3を出力する。
第2図は、原始プログラム整形部5が整形する整形前の
原始プログラム1のソースイメージと整形後原始プログ
ラム6のソースイメージとをそれぞれ例示する図である
。本例は、−度しか呼ばれない内部手続きを呼んでいる
場所に内部手続きを直接展開するようにしたものである
。このように整形することにより、手続きからの戻りを
保証するための復帰機構などのオブジェクトコードの生
成等を省くことができる。
原始プログラム1のソースイメージと整形後原始プログ
ラム6のソースイメージとをそれぞれ例示する図である
。本例は、−度しか呼ばれない内部手続きを呼んでいる
場所に内部手続きを直接展開するようにしたものである
。このように整形することにより、手続きからの戻りを
保証するための復帰機構などのオブジェクトコードの生
成等を省くことができる。
なお、上記実施例では、原始プログラム整形部5をコン
パイラ2内に含めた場合について説明したが、原始プロ
グラム整形部を下位のコンパイラ(コンパイラ本体7)
とは別処理として下位のコンパイラの前段で実行するよ
うにしてもよい。
パイラ2内に含めた場合について説明したが、原始プロ
グラム整形部を下位のコンパイラ(コンパイラ本体7)
とは別処理として下位のコンパイラの前段で実行するよ
うにしてもよい。
以上説明したように本発明は、ブリコンパイラが生成し
た原始プログラムは通常正常系であり、また同等の機能
さえ満足していればプログラムの構造を変えても構わな
いことを利用することによリ、ブリコンパイラが生成し
た原始プログラムに対する最適化を既存のコンパイラよ
り独立させ、複雑なフェーズ構成を持つ既存のコンパイ
ラに手を加えるよりも少ない規模で原始プログラムレベ
ルでの最適化に対する改造を行うことができるという効
果がある。
た原始プログラムは通常正常系であり、また同等の機能
さえ満足していればプログラムの構造を変えても構わな
いことを利用することによリ、ブリコンパイラが生成し
た原始プログラムに対する最適化を既存のコンパイラよ
り独立させ、複雑なフェーズ構成を持つ既存のコンパイ
ラに手を加えるよりも少ない規模で原始プログラムレベ
ルでの最適化に対する改造を行うことができるという効
果がある。
また、原始プログラム整形部は整形する原始プログラム
の言語タイプであればフェーズ構成の違うコンパイラ間
の違いにはよらないので、原始プログラム整形部を他機
種間で共通に使用することによって、他機種の同様のコ
ンパイラで同等の最適化を行うことができ、機種それぞ
れでのコンパイラの最適化の改造を行う必要がなくなる
という効果がある。
の言語タイプであればフェーズ構成の違うコンパイラ間
の違いにはよらないので、原始プログラム整形部を他機
種間で共通に使用することによって、他機種の同様のコ
ンパイラで同等の最適化を行うことができ、機種それぞ
れでのコンパイラの最適化の改造を行う必要がなくなる
という効果がある。
さらに、第2図に例示したように、原始プログラムが整
形された場合には、プログラムのコード部はシーケンシ
ャルにアクセスされるようになるため、ベージング方式
が採用されている計算機システム上での実行においては
、ベージング/アウトの回数が減り、実行性能も向上す
るという効果がある。
形された場合には、プログラムのコード部はシーケンシ
ャルにアクセスされるようになるため、ベージング方式
が採用されている計算機システム上での実行においては
、ベージング/アウトの回数が減り、実行性能も向上す
るという効果がある。
第1図は本発明の一実施例に係る原始プログラム整形コ
ンパイル方式が適用されたコン7くイラの構成を示すブ
ロック図、 第2図は第1図中の原始プログラム整形部が整形する前
の原始プログラムのソースイメージと整形後原始プログ
ラムのソースイメージとをそれぞれ例示する図である。 図において、 l・・・原始プログラム、 2・・・コンパイラ、 4・・・コンパイラ制御部、 5・・・原始プログラム整形部、 6・・・整形後原始プログラム、 7・・・コンパイラ本体、 8・・・パラメータである。
ンパイル方式が適用されたコン7くイラの構成を示すブ
ロック図、 第2図は第1図中の原始プログラム整形部が整形する前
の原始プログラムのソースイメージと整形後原始プログ
ラムのソースイメージとをそれぞれ例示する図である。 図において、 l・・・原始プログラム、 2・・・コンパイラ、 4・・・コンパイラ制御部、 5・・・原始プログラム整形部、 6・・・整形後原始プログラム、 7・・・コンパイラ本体、 8・・・パラメータである。
Claims (1)
- 【特許請求の範囲】 コンパイラに入力される原始プログラムが他のコンパイ
ラで生成されたものであるような翻訳系において、 原始プログラムを入力し原始プログラムの構造を解析し
下位のコンパイラが最適な目的プログラムを生成できる
ように原始プログラムを整形する原始プログラム整形部
を有することを特徴とする原始プログラム整形コンパイ
ル方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20996689A JPH0373025A (ja) | 1989-08-14 | 1989-08-14 | 原始プログラム整形コンパイル方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20996689A JPH0373025A (ja) | 1989-08-14 | 1989-08-14 | 原始プログラム整形コンパイル方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0373025A true JPH0373025A (ja) | 1991-03-28 |
Family
ID=16581631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20996689A Pending JPH0373025A (ja) | 1989-08-14 | 1989-08-14 | 原始プログラム整形コンパイル方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0373025A (ja) |
-
1989
- 1989-08-14 JP JP20996689A patent/JPH0373025A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH08202545A (ja) | ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法 | |
JPH07105012A (ja) | 言語処理プログラムのコンパイル処理方式 | |
US6751791B2 (en) | Method of optimizing an MPI procedure by altering to a procedure other than the invoked MPI procedure portion or by altering the execution sequence | |
JPH0373025A (ja) | 原始プログラム整形コンパイル方式 | |
JP3840149B2 (ja) | コンパイラ、演算処理システム及び演算処理方法 | |
GB2420638A (en) | Method of substituting code fragments in Internal Representation | |
JP3226172B2 (ja) | インライン展開システム | |
JP3018783B2 (ja) | コンパイル方式 | |
JPH07121379A (ja) | 複数言語混在コンパイラ | |
KR0169909B1 (ko) | 목표 프로세서용 어셈블리 코드 생성기를 작성하는 방법 | |
JPH04323730A (ja) | 最適化処理方式 | |
JP2682206B2 (ja) | 目的プログラムの最適化方式 | |
JPH04343140A (ja) | コンパイラの最適化処理方法 | |
JP3424596B2 (ja) | シンボル参照情報のキャッシュ方法ならびに装置 | |
JP2585790B2 (ja) | 複数コード系に対応するコンパイル処理方式 | |
JPH05216683A (ja) | 非言語依存のファイル化手順自動生成方法 | |
JPH1083328A (ja) | 単体テスト用疑似入出力実現方式 | |
JPH02231638A (ja) | オブジエクト指向データベース管理システムにおけるメツセージ処理方法 | |
JPH0612259A (ja) | コンパイラ処理方式 | |
JPH02135529A (ja) | コンパイル方式 | |
JPH0358232A (ja) | プリプロセッサ呼び出し方式 | |
JPH05120323A (ja) | If文下ベクトル演算最適化方式 | |
JP2003140891A (ja) | アプリケーション開発装置、その方法およびそのコンピュータ・プログラム | |
JPH056278A (ja) | Fortranコンパイル処理装置 | |
JPH0126091B2 (ja) |