JPH0644082A - 最適化テキスト作成方式 - Google Patents

最適化テキスト作成方式

Info

Publication number
JPH0644082A
JPH0644082A JP10445492A JP10445492A JPH0644082A JP H0644082 A JPH0644082 A JP H0644082A JP 10445492 A JP10445492 A JP 10445492A JP 10445492 A JP10445492 A JP 10445492A JP H0644082 A JPH0644082 A JP H0644082A
Authority
JP
Japan
Prior art keywords
branch
text
statement
source program
label
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
Application number
JP10445492A
Other languages
English (en)
Inventor
Kazuyo Masuda
和代 増田
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 JP10445492A priority Critical patent/JPH0644082A/ja
Publication of JPH0644082A publication Critical patent/JPH0644082A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 最適化機能を搭載しないコンパイラを使って
コンパイルシタときにも、最適化されたプログラムが得
られる。 【構成】 テキスト編集手段113が入出力インタフェ
ース112からプログラムを入力し、編集を行うと共に
分岐変形手段116と不要ラベル削除手段122と非実
行文削除手段132を起動する。分岐変形手段116で
プログラム中の分岐に変形を加え、不要ラベル削除手段
122で不要になったラベルを削除し、更に非実行文削
除手段132で生後の移行がない文を削除する。 【効果】 最適化機能を持たないコンパイラでコンパイ
ルしても、最適化されたプログラムを得られプログラム
の実行速度が速くなる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は電子計算機システムのエ
ディタにおける最適化テキスト作成方式に関する。
【0002】
【従来の技術】従来、定数計算の最適化は最適化機能を
搭載したコンパイラによってプログラムをコンパイルす
るときに行われていた。
【0003】
【発明が解決しようとする課題】上述した従来の最適化
テキスト作成方式では、コンパイラによって最適化機能
を搭載しているものとがあり、最適化機能を搭載してい
ないコンパイラによってコンパイルしたプログラムは最
適化されないという欠点がある。
【0004】
【課題を解決するための手段】本発明の最適化テキスト
作成方式は、ソースプログラムを保持するテキストバッ
ファからソースプログラムを入力し、分岐文及びラベル
の出現ごとにソースプログラムを分割しそれを基本ブロ
ックとし、分割された基本ブロック間の制御移行を解析
する制御フロー解析及びソースプログラム中の変数の値
の設定と参照の関係を解析するデータフロー解析を行っ
た後、ソースプログラムにおいて制御フロー上の先頭か
ら一文ずつ調べ、分岐文の分岐先が無条件分岐のときは
元の分岐文から無条件分岐の分岐先に直接分岐させ、分
岐文の分岐先のラベルが重複しているときは重複したラ
ベルを1つに統一させ、条件分岐が無条件分岐を飛び越
すだけの分岐のときは条件分岐の分岐先をこの無条件分
岐の分岐先に変えて、条件分岐の条件式を逆転させ、ま
た分岐文の分岐先がその分岐文の直後のときは、その分
岐文を削除して分岐変形テキストを作成する分岐変形手
段と、入出力インタフェースを通してプログラミング言
語で記述されたソースプログラムを入力して編集を行っ
た後、前記テキストバッファに出力して前記分岐変形手
段を起動するテキスト編集手段とを含むことを特徴とす
る。
【0005】
【実施例】次に、本発明について図面を参照して説明す
る。
【0006】本発明の第1の実施例を示す図1を参照す
ると、本実施例は入出力インタフェース112,テキス
ト編集手段113,ソースプログラム115および分岐
変形テキスト117を含むテキストバッファ114並び
に分岐変形手段116で構成される。
【0007】分岐変形手段116の処理を示すフローチ
ャートを示す図4を参照して本実施例の動作を具体的に
説明する。
【0008】テキスト編集手段113が起動されると、
テキスト編集手段113は、入出力インタフェース11
2を通してプログラミング言語のソースプログラムを入
力し、編集を行うと共に利用者の指示によりソースプロ
グラム115をテキストバッファ114に出力して分岐
変形手段116を起動する。分岐変形手段116は、テ
キストバッファ114からソースプログラム115を入
力する。
【0009】図4のステップ201では、入力したソー
スプログラム115を分岐文及びラベルで区切り基本ブ
ロックに分割する。次に、基本ブロック間の制御移行を
解析し、ループ構造の初期値を設定する文を含む初期化
ブロック、ループ終了条件を表す文を含む入口ブロッ
ク、ループの終了条件を判定するために使う帰納加算式
を含む掛け金ブロックなどを決定する制御フロー解析と
ソースプログラム115内の変数に対して値の設定と参
照の関係を解析するデータフロー解析を行う(ステップ
202)。
【0010】ステップ202の処理の後、ソースプログ
ラム115に対して制御フロー上最初の文から最後の文
まで、一文ごとに文の有無判定処理を行う(ステップ2
03)。
【0011】この分の有無判定処理は、ソースプログラ
ム115の一文ずつに対して、ソースプログラム115
の最後の文かどうかの判定を行い、最後の文ではない文
5−1(図7に示す)のときは、この文に対して分岐の
変形処理を行い(ステップ204)、最後の文5−5
(図5に示す)のときは、分岐変形テキスト出力処理を
行う(ステップ205)。
【0012】分岐の変形処理(ステップ204)は、文
の有無判定処理(ステップ203)でプログラムの最後
の文ではないと判定された文5−1が分岐文のとき、こ
の分岐文の分岐先L1が定義されているところを探し、
その定義文5−3(図7に示す)に記述されている文が
無条件分岐ならば、その無条件分岐文5−3の分岐先L
2を分岐文5−1の分岐先とし、分岐文6−1(図6参
照)とし、ソースプログラム115から新たに1つの文
を読み込み、文の有無判定処理(ステップ203)に処
理を移す。
【0013】文5−5が文の有無判定処理(ステップ2
03)の対象となったとき、プログラムの最後の文であ
ると判定して、分岐変形テキスト出力処理を行う(ステ
ップ205)。
【0014】分岐変形テキスト出力処理(ステップ20
5)は、分岐の変形処理で変形された分岐変形テキスト
117をテキストバッファ114に出力する。
【0015】本発明の第2の実施例を示す図2を参照す
ると、本実施例は図1に示した第1の実施例に対して、
不要ラベル削除手段122および不要ラベル削除テキス
ト123が追加されている。
【0016】不要ラベル削除手段122は、テキストバ
ッファ114から分岐変形テキスト117を入力する。
不要ラベル削除手段122における処理を示す図5を参
照すると、まず、不要ラベル検索処理(ステップ30
1)で、入力した分岐変形テキスト117を1文ずつ調
べ、ソースプログラム中で1度も参照されることのない
ラベルの定義文6−3(図8参照)を検出する。
【0017】次に、不要ラベル削除処理(ステップ30
2)では、不要ラベルの定義文として検出された文6−
3を分岐変形テキストから削除する。分岐変形テキスト
の最後の文6−5(図8参照)が不要ラベル検索処理
(ステップ301)の対象となったとき、不要ラベル削
除テキスト出力処理(ステップ303)に処理を移す。
【0018】不要ラベル削除テキスト出力処理(ステッ
プ303)では、テキストバッファ114に不要ラベル
削除テキスト123を出力する。
【0019】本発明の第3の実施例を示す図3を参照す
ると、本実施例は図2に示した第2の実施例に対して、
非実行文削除手段132および非実行文削除テキスト1
33が追加されている。
【0020】非実行文削除手段132は不要ラベル削除
テキスト123を入力する。非実行文削除手段132に
おける処理を示す図6を参照すると、まず非実行文検索
処理(ステップ401)では、フロー解析処理(図4に
おけるステップ202)を行ったときの情報を基に入力
された不要ラベル削除テキスト123のなかから、プロ
グラムのどこからも制御が移行されないブロック7−2
(図9参照)を検出する。
【0021】次に、非実行文削除処理(ステップ40
2)では、非実行文検索処理(ステップ401)で検出
されたブロック7−2を不要ラベル削除テキスト123
から削除し、不要ラベル削除テキスト123中で制御が
移行されない全てのブロックを削除した後、非実行文削
除テキスト出力処理(ステップ403)に制御を移す。
非実行文削除テキスト出力処理(ステップ403)で、
テキストバッファ114に非実行文削除テキスト133
を出力する。
【0022】
【発明の効果】以上説明したように本発明は、最適化機
能を持たないコンパイラによってコンパイルしても、予
めソースプログラムを修正して最適化を行うので、分岐
の変形を行い不要なラベルや非実行文を削除する最適化
を行ったプログラムを得ることができ、プログラムの実
行速度が速くなるという効果がある。
【図面の簡単な説明】
【図1】本発明の第1の実施例のブロック図である。
【図2】本発明の第2の実施例のブロック図である。
【図3】本発明の第3の実施例のブロック図である。
【図4】本発明における分岐変形手段で行われる処理の
フローチャートである。
【図5】本発明における不要ラベル削除手段で行われる
処理のフローチャートである。
【図6】本発明における非実行文削除手段で行われる処
理のフローチャートである。
【図7】分岐の変形を行う前のソースプログラムを示す
図である。
【図8】分岐の変形を行った後の分岐変形テキストを示
す図である。
【図9】不要ラベルの削除を行った後の不要ラベル削除
テキストを示す図である。
【図10】非実行文の削除を行った後の非実行文削除テ
キストを示す図である。
【符号の説明】
101 テキストエディタ 112 入出力インタフェース 113 テキスト編集手段 114 テキストバッファ 115 ソースプログラム 116 分岐変形手段 117 分岐変形テキスト 122 不要ラベル削除手段 123 不要ラベル削除テキスト 132 非実行文削除手段 133 非実行文削除テキスト

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】ソースプログラムを保持するテキストバッ
    ファからソースプログラムを入力し、分岐文及びラベル
    の出現ごとにソースプログラムを分割しそれを基本ブロ
    ックとし、分割された基本ブロック間の制御移行を解析
    する制御フロー解析及びソースプログラム中の変数の値
    の設定と参照の関係を解析するデータフロー解析を行っ
    た後、ソースプログラムにおいて制御フロー上の先頭か
    ら一文ずつ調べ、分岐文の分岐先が無条件分岐のときは
    元の分岐文から無条件分岐の分岐先に直接分岐させ、分
    岐文の分岐先のラベルが重複しているときは重複したラ
    ベルを1つに統一させ、条件分岐が無条件分岐を飛び越
    すだけの分岐のときは条件分岐の分岐先をこの無条件分
    岐の分岐先に変えて、条件分岐の条件式を逆転させ、ま
    た分岐文の分岐先がその分岐文の直後のときは、その分
    岐文を削除して分岐変形テキストを作成する分岐変形手
    段と、 入出力インタフェースを通してプログラミング言語で記
    述されたソースプログラムを入力して編集を行った後、
    前記テキストバッファに出力して前記分岐変形手段を起
    動するテキスト編集手段とを含むことを特徴とする最適
    化テキストエディタにおけるテキスト作成方式。
  2. 【請求項2】前記テキストバッファから分岐変形テキス
    トを入力し、分岐文の分岐先として1度も参照されるこ
    とのないラベルを検出し、検出したラベルを削除して不
    要ラベル削除テキストを作成する不要ラベル削除手段を
    設けたことを特徴とする請求項1記載の最適化テキスト
    作成方式。
  3. 【請求項3】前記不要ラベル削除テキストを保持するテ
    キストバッファから不要ラベル削除テキストを入力し、
    制御フロー上他のどのブロックからも制御が移行されな
    いブロックがあるとき、そのブロック内の非実行文を削
    除して非実行文削除テキストを作成する非実行文削除手
    段とを設けたことを特徴とする請求項2記載の最適化テ
    キスト作成方式。
JP10445492A 1992-04-23 1992-04-23 最適化テキスト作成方式 Withdrawn JPH0644082A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10445492A JPH0644082A (ja) 1992-04-23 1992-04-23 最適化テキスト作成方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10445492A JPH0644082A (ja) 1992-04-23 1992-04-23 最適化テキスト作成方式

Publications (1)

Publication Number Publication Date
JPH0644082A true JPH0644082A (ja) 1994-02-18

Family

ID=14381068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10445492A Withdrawn JPH0644082A (ja) 1992-04-23 1992-04-23 最適化テキスト作成方式

Country Status (1)

Country Link
JP (1) JPH0644082A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002534735A (ja) * 1998-12-30 2002-10-15 マイクロソフト コーポレイション インタプリティブ・ランタイム環境のためのコンパイル・プログラムの生成

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002534735A (ja) * 1998-12-30 2002-10-15 マイクロソフト コーポレイション インタプリティブ・ランタイム環境のためのコンパイル・プログラムの生成

Similar Documents

Publication Publication Date Title
JP3288798B2 (ja) ラベル印刷及びデータ収集プログラム発生器
JPH0644082A (ja) 最適化テキスト作成方式
JPH11195011A (ja) 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体
JPH0546404A (ja) 分岐命令削除最適化方式
JPH0744397A (ja) プログラム処理高速化方式
JP2000242504A (ja) コンパイラ装置
JPH04323731A (ja) 最適化テキスト編集方式
JPH0683632A (ja) 整定数乗算最適化方法
JPH05181652A (ja) プログラムリバース装置
JP3922699B2 (ja) ループ内不変な式の移動に関する最適化方式およびプログラム
JPH04278635A (ja) テキストエディタ
JPH03233725A (ja) 自動コメント生成方式
JPH0561687A (ja) コンパイラの処理方式
JPH064299A (ja) 最適化オブジェクトプログラム生成方式
JPH01140236A (ja) プログラムの逆コンパイル方式
JPH04116756A (ja) アプリケーション内のユーザ定義コマンドのダイナミックリンクシステム
JPH0319041A (ja) 制御項目自動管理方式
JPH05100866A (ja) コンパイル・リンク方式
JPH03223930A (ja) ソース生成支援システム
JPH05143354A (ja) テキストフアイル変換方式
JPH04299449A (ja) 文章入力装置
JPH05204699A (ja) デバッグ時識別子探索方式
JPH06318152A (ja) プログラム保守ドキュメント作成方式
JPH02285424A (ja) コンパイラの不要名標出力方式および不要名標削除方式
JPH0495139A (ja) 言語処理プログラムのクロスリファレンス出力方式

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: 19990706