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
Application number
JP20996689A
Other languages
English (en)
Inventor
Yuichi Iijima
裕一 飯島
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP20996689A priority Critical patent/JPH0373025A/ja
Publication of JPH0373025A publication Critical patent/JPH0373025A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は原始プログラム整形コンパイル方式に関し、特
に他のコンパイラ(以下、ブリコンパイラという〉が生
成した原始プログラムを入力して翻訳するコンパイラを
備える翻訳系での原始プログラム整形コンパイル方式に
関する。
〔従来の技術〕
従来、コンパイラは、原始プログラムがブリコンパイラ
で生成されたか否かにかかわらず、原始プログラムをそ
のまま入力して翻訳していた。
ところで、例えば第4世代言語(非手続き型言語、デー
タ中心型言語等ともいう)を通常の手続き型言語(例え
ばC0BOL等)に翻訳するブリコンパイラが生成する
原始プログラムは、非常に冗長な記述が多く、その原始
プログラムをコンパイラがそのまま翻訳しても最適な目
的プログラムは生成されなかった。
〔発明が解決しようとする課題〕
上述した従来のコンパイラは、目的プログラムの最適化
を図っているものの、そのための改造は通常のユーザプ
ログラムには現れない記述に対する最適化であることが
多かったので、改造量の割には効果がでる確率が低いと
いう欠点がある。
また、一般に、コンパイラによる目的プログラムの最適
化は、目的プログラムの前後関係から最適化できるとこ
ろを最適化するような局所的なものが実現されているに
すぎず、プログラム構造自体を変えるといったような大
局的な最適化は行われていなかった。
本発明の目的は、上述の点に鑑み、ブリコンパイラが生
成した原始プログラムは通常正常系であり、また同等の
機能さえ満足していればプログラムの構造を変えても構
わないということを利用して原始プログラムレベルで整
形を行って目的プログラムの最適化を図るようにした原
始プログラム整形コンパイル方式を提供することにある
〔課題を解決するための手段〕
本発明の原始プログラム整形コンパイル方式は、コンパ
イラに入力される原始プログラムが他のコンパイラで生
成されたものであるような翻訳系において、原始プログ
ラムを入力し原始プログラムの構造を解析し下位のコン
パイラが最適な目的プログラムを生成できるように原始
プログラムを整形する原始プログラム整形部を有する。
〔作用〕
本発明の原始プログラム整形コンパイル方式では、原始
プログラム整形部が原始プログラムを入力し原始プログ
ラムの構造を解析し下位のコンiくイラが最適な目的プ
ログラムを生成できるよう番こ原始プログラムを整形す
る。
〔実施例〕
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明の一実施例に係る原始プログラム整形
コンパイル方式が適用されたコンパイラ2の構成を示す
ブロック図である。このコンパイラ2は、原始プログラ
ム1および原始プログラム1がブリコンパイラ(図示せ
ず)によって生成されたものであるかどうかを指示する
パラメータ8とを人力して目的プログラム3を出力する
ものであり、コンパイラ制御部4と、原始プログラム整
形部5と、整形後原始プログラム6と、既存のコンパイ
ラであるコンパイラ本体7とを含んで構成されている。
次に、このように構成された本実施例の原始プログラム
整形コンパイル方式の動作について説明する。
コンパイラ2が起動されると、コンパイラ制御部4は、
パラメータ8を参照して原始プログラム1がブリコンパ
イラによって生成されたものであるかどうかを判定する
原始プログラム1がブリコンパイラによって生成された
ものである場合には、コンパイラ制御部4は、原始プロ
グラム整形部5を起動させ、そうでない場合には、原始
プログラムlをそのままコンパイラ本体7に入力させて
コンパイラ本体7を起動させる。
原始プログラム整形部5は、原始プログラム1を人力し
、そのプログラム構造を解析し、コンパイラ本体7が最
適な目的プログラム3を出力できるように原始プログラ
ム1の冗長な記述を整形し、整形後原始プログラム6を
出力する。
コンパイラ本体7は、原始プログラム1がブリコンパイ
ラによって生成されたものである場合には整形後原始プ
ログラム6を入力して目的プログラム3を出力し、そう
でない場合には原始プログラム1をそのまま入力して目
的プログラム3を出力する。
第2図は、原始プログラム整形部5が整形する整形前の
原始プログラム1のソースイメージと整形後原始プログ
ラム6のソースイメージとをそれぞれ例示する図である
。本例は、−度しか呼ばれない内部手続きを呼んでいる
場所に内部手続きを直接展開するようにしたものである
。このように整形することにより、手続きからの戻りを
保証するための復帰機構などのオブジェクトコードの生
成等を省くことができる。
なお、上記実施例では、原始プログラム整形部5をコン
パイラ2内に含めた場合について説明したが、原始プロ
グラム整形部を下位のコンパイラ(コンパイラ本体7)
とは別処理として下位のコンパイラの前段で実行するよ
うにしてもよい。
〔発明の効果〕
以上説明したように本発明は、ブリコンパイラが生成し
た原始プログラムは通常正常系であり、また同等の機能
さえ満足していればプログラムの構造を変えても構わな
いことを利用することによリ、ブリコンパイラが生成し
た原始プログラムに対する最適化を既存のコンパイラよ
り独立させ、複雑なフェーズ構成を持つ既存のコンパイ
ラに手を加えるよりも少ない規模で原始プログラムレベ
ルでの最適化に対する改造を行うことができるという効
果がある。
また、原始プログラム整形部は整形する原始プログラム
の言語タイプであればフェーズ構成の違うコンパイラ間
の違いにはよらないので、原始プログラム整形部を他機
種間で共通に使用することによって、他機種の同様のコ
ンパイラで同等の最適化を行うことができ、機種それぞ
れでのコンパイラの最適化の改造を行う必要がなくなる
という効果がある。
さらに、第2図に例示したように、原始プログラムが整
形された場合には、プログラムのコード部はシーケンシ
ャルにアクセスされるようになるため、ベージング方式
が採用されている計算機システム上での実行においては
、ベージング/アウトの回数が減り、実行性能も向上す
るという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例に係る原始プログラム整形コ
ンパイル方式が適用されたコン7くイラの構成を示すブ
ロック図、 第2図は第1図中の原始プログラム整形部が整形する前
の原始プログラムのソースイメージと整形後原始プログ
ラムのソースイメージとをそれぞれ例示する図である。 図において、 l・・・原始プログラム、 2・・・コンパイラ、 4・・・コンパイラ制御部、 5・・・原始プログラム整形部、 6・・・整形後原始プログラム、 7・・・コンパイラ本体、 8・・・パラメータである。

Claims (1)

  1. 【特許請求の範囲】 コンパイラに入力される原始プログラムが他のコンパイ
    ラで生成されたものであるような翻訳系において、 原始プログラムを入力し原始プログラムの構造を解析し
    下位のコンパイラが最適な目的プログラムを生成できる
    ように原始プログラムを整形する原始プログラム整形部
    を有することを特徴とする原始プログラム整形コンパイ
    ル方式。
JP20996689A 1989-08-14 1989-08-14 原始プログラム整形コンパイル方式 Pending JPH0373025A (ja)

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)

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)