JPH04323731A - 最適化テキスト編集方式 - Google Patents
最適化テキスト編集方式Info
- Publication number
- JPH04323731A JPH04323731A JP11949391A JP11949391A JPH04323731A JP H04323731 A JPH04323731 A JP H04323731A JP 11949391 A JP11949391 A JP 11949391A JP 11949391 A JP11949391 A JP 11949391A JP H04323731 A JPH04323731 A JP H04323731A
- Authority
- JP
- Japan
- Prior art keywords
- source program
- constant
- variable
- text
- editing
- 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
- 238000005457 optimization Methods 0.000 claims abstract description 24
- 238000000034 method Methods 0.000 claims description 16
- 238000005206 flow analysis Methods 0.000 claims description 6
- 230000007704 transition Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は電子計算機システムのテ
キストエディタにおける最適化テキスト編集方式に関す
るものである。
キストエディタにおける最適化テキスト編集方式に関す
るものである。
【0002】
【従来の技術】電子計算機システムにおいて、プログラ
ムの実行速度を向上させることは、常に重要な課題であ
る。
ムの実行速度を向上させることは、常に重要な課題であ
る。
【0003】プログラムの実行速度を向上させる手法の
一つとして、定数計算最適化がある。これは、プログラ
ム中に含まれる定数同士の計算を予め計算して新たな定
数に置き換えておき、実行時の演算回数を減らして実行
時間の短縮化を図るものである。
一つとして、定数計算最適化がある。これは、プログラ
ム中に含まれる定数同士の計算を予め計算して新たな定
数に置き換えておき、実行時の演算回数を減らして実行
時間の短縮化を図るものである。
【0004】ところで、一般に、この種の最適化は、高
級プログラミング言語で記述されたソースプログラムを
実行可能なオブジェクトプログラムに変換するコンパイ
ラにおいて行われている。
級プログラミング言語で記述されたソースプログラムを
実行可能なオブジェクトプログラムに変換するコンパイ
ラにおいて行われている。
【0005】
【発明が解決しようとする課題】上述したように、従来
の最適化処理はコンパイラにおいてのみ行われていたた
め、最適化機能を有していないコンパイラにおいては、
当然のことながら、最適化が行えず、実行速度の向上が
図れないものであった。なお、コンパイラは大規模かつ
複雑なプログラムであるため、当該機能を有したコンパ
イラを即座に導入することや、当該機能を移植すること
は容易ではない。
の最適化処理はコンパイラにおいてのみ行われていたた
め、最適化機能を有していないコンパイラにおいては、
当然のことながら、最適化が行えず、実行速度の向上が
図れないものであった。なお、コンパイラは大規模かつ
複雑なプログラムであるため、当該機能を有したコンパ
イラを即座に導入することや、当該機能を移植すること
は容易ではない。
【0006】本発明は上記の点に鑑み提案されたもので
あり、その目的とするところは、コンパイラに入力する
ソースプログラムを作成・編集するテキストエディタの
段階において定数最適化の機能を付加することにより、
容易に定数最適化による実行速度の向上を図ることので
きる最適化テキスト編集方式を提供することにある。
あり、その目的とするところは、コンパイラに入力する
ソースプログラムを作成・編集するテキストエディタの
段階において定数最適化の機能を付加することにより、
容易に定数最適化による実行速度の向上を図ることので
きる最適化テキスト編集方式を提供することにある。
【0007】
【課題を解決するための手段】本発明は上記の目的を達
成するため、ソースプログラムの入力を行うと共に、作
成・編集等の指示の受け付けを行う入出力インタフェー
スと、ソースプログラムの編集処理を行うと共に、編集
後のソースプログラムをテキストバッファに格納するテ
キスト編集手段と、ソースプログラムの編集終了後にテ
キストバッファに格納されたソースプログラムに対して
定数計算の最適化を行う定数計算最適化手段とを備える
ようにしている。
成するため、ソースプログラムの入力を行うと共に、作
成・編集等の指示の受け付けを行う入出力インタフェー
スと、ソースプログラムの編集処理を行うと共に、編集
後のソースプログラムをテキストバッファに格納するテ
キスト編集手段と、ソースプログラムの編集終了後にテ
キストバッファに格納されたソースプログラムに対して
定数計算の最適化を行う定数計算最適化手段とを備える
ようにしている。
【0008】
【作用】本発明の最適化テキスト編集方式にあっては、
入出力インタフェースがソースプログラムの入力を行う
と共に作成・編集等の指示の受け付けを行い、テキスト
編集手段がソースプログラムの編集処理を行って編集後
のソースプログラムをテキストバッファに格納し、定数
計算最適化手段がテキストバッファに格納されたソース
プログラムに対して定数計算の最適化を行う。
入出力インタフェースがソースプログラムの入力を行う
と共に作成・編集等の指示の受け付けを行い、テキスト
編集手段がソースプログラムの編集処理を行って編集後
のソースプログラムをテキストバッファに格納し、定数
計算最適化手段がテキストバッファに格納されたソース
プログラムに対して定数計算の最適化を行う。
【0009】
【実施例】以下、本発明の実施例につき図面を参照して
説明する。
説明する。
【0010】図1は本発明の最適化テキスト編集方式を
適用したテキストエディタの一実施例を示す構成図であ
る。なお、図中の矢印を付した実線は制御の流れを、矢
印を付した白抜き太線はデータの流れをそれぞれ示して
いる。
適用したテキストエディタの一実施例を示す構成図であ
る。なお、図中の矢印を付した実線は制御の流れを、矢
印を付した白抜き太線はデータの流れをそれぞれ示して
いる。
【0011】図1において、本実施例のテキストエディ
タ1は、ソースプログラムの入力を行うと共に、作成・
編集等の指示の受け付けを行う入出力インタフェース2
と、ソースプログラムの編集処理を行うと共に編集後の
ソースプログラム5をテキストバッファ4に格納するテ
キスト編集手段3と、ソースプログラムの編集終了後に
テキストバッファ4に格納されたソースプログラム5に
対して定数計算の最適化を行う定数計算最適化手段6と
から構成されている。
タ1は、ソースプログラムの入力を行うと共に、作成・
編集等の指示の受け付けを行う入出力インタフェース2
と、ソースプログラムの編集処理を行うと共に編集後の
ソースプログラム5をテキストバッファ4に格納するテ
キスト編集手段3と、ソースプログラムの編集終了後に
テキストバッファ4に格納されたソースプログラム5に
対して定数計算の最適化を行う定数計算最適化手段6と
から構成されている。
【0012】以下、上記の実施例の動作を説明する。
【0013】テキストエディタ1の動作が開始されると
、先ず、テキスト編集手段3が起動される。
、先ず、テキスト編集手段3が起動される。
【0014】テキスト編集手段3は、入出力インタフェ
ース2を通してプログラミング言語のソースプログラム
を入力し、作成・編集等の処理を行うと共に、利用者の
指示によりソースプログラム5をテキストバッファ4に
出力して定数計算最適化手段6を起動する。
ース2を通してプログラミング言語のソースプログラム
を入力し、作成・編集等の処理を行うと共に、利用者の
指示によりソースプログラム5をテキストバッファ4に
出力して定数計算最適化手段6を起動する。
【0015】定数計算最適化手段6は、図2のフローチ
ャートに示すような処理を行う。
ャートに示すような処理を行う。
【0016】すなわち、定数計算最適化手段6は、テキ
ストバッファ4からソースプログラム5を入力し、入力
したソースプログラム5を分岐文およびラベルで区切っ
て基本ブロックに分割する基本ブロック分割処理を行う
(ステップS1)。
ストバッファ4からソースプログラム5を入力し、入力
したソースプログラム5を分岐文およびラベルで区切っ
て基本ブロックに分割する基本ブロック分割処理を行う
(ステップS1)。
【0017】次いで、基本ブロック間の制御移行を解析
する制御フロー解析と、ソースプログラム5内の各変数
に対して値の設定・参照の関係を解析するデータフロー
解析とを含むフロー解析処理を行う(ステップS2)。
する制御フロー解析と、ソースプログラム5内の各変数
に対して値の設定・参照の関係を解析するデータフロー
解析とを含むフロー解析処理を行う(ステップS2)。
【0018】次いで、ソースプログラム5に対して、制
御フロー上の最初の文から最後の文までの一文毎に、次
の処理を行う。
御フロー上の最初の文から最後の文までの一文毎に、次
の処理を行う。
【0019】先ず、文の有無、すなわち、ソースプログ
ラム5の最後の文まで処理が済んでいるか否かの判定を
行い(ステップS3)、最後の文でない場合(ステップ
S3の有)には、その文に定数同士の演算部分が含まれ
ていればその計算を行う定数計算処理を行う(ステップ
S4)。なお、定数が単独であって計算を要しない場合
であっても、次の定数伝播処理のために一応の対象とす
る。
ラム5の最後の文まで処理が済んでいるか否かの判定を
行い(ステップS3)、最後の文でない場合(ステップ
S3の有)には、その文に定数同士の演算部分が含まれ
ていればその計算を行う定数計算処理を行う(ステップ
S4)。なお、定数が単独であって計算を要しない場合
であっても、次の定数伝播処理のために一応の対象とす
る。
【0020】例えば、テキストバッファ4に図3に示す
ようなソースプログラム5が格納されていて、文51が
出現した場合、右辺に定数が含まれているため、定数計
算処理の対象とする。
ようなソースプログラム5が格納されていて、文51が
出現した場合、右辺に定数が含まれているため、定数計
算処理の対象とする。
【0021】次いで、定数計算処理の対象となった文の
左辺が変数で右辺が定数であり、かつ左辺の変数に右辺
の定数を代入する代入文であった場合に、制御フロー上
でこの代入文より後ろにこの代入文の左辺と同じ変数の
参照が出現し、データフロー解析の結果よりこの代入文
とその変数の参照の出現との間で、その変数に値が再設
定されていないと判定された場合に、その変数の参照を
代入文の右辺の定数の参照に置き換える定数伝播処理を
行う(ステップS5)。
左辺が変数で右辺が定数であり、かつ左辺の変数に右辺
の定数を代入する代入文であった場合に、制御フロー上
でこの代入文より後ろにこの代入文の左辺と同じ変数の
参照が出現し、データフロー解析の結果よりこの代入文
とその変数の参照の出現との間で、その変数に値が再設
定されていないと判定された場合に、その変数の参照を
代入文の右辺の定数の参照に置き換える定数伝播処理を
行う(ステップS5)。
【0022】例えば、図3のソースプログラム5につき
、文51が定数計算処理の対象となった場合、この文5
1は左辺が変数Vaで右辺が定数C1であり、かつ左辺
への代入文であり、その後に文52において文51の左
辺の変数Vaが参照され、その間に変数Vaへの再設定
がされていないため、文52の変数Vaを定数C1に置
き換える処理が行われる。その結果、ソースプログラム
5は図4のようになる。
、文51が定数計算処理の対象となった場合、この文5
1は左辺が変数Vaで右辺が定数C1であり、かつ左辺
への代入文であり、その後に文52において文51の左
辺の変数Vaが参照され、その間に変数Vaへの再設定
がされていないため、文52の変数Vaを定数C1に置
き換える処理が行われる。その結果、ソースプログラム
5は図4のようになる。
【0023】次いで、文の有無判定処理(ステップS3
)に戻り、同様の処理を繰り返す。
)に戻り、同様の処理を繰り返す。
【0024】この過程で、既に定数伝播処理により変数
が定数に置き換えられた文も更に処理の対象となる。例
えば、図4のように変形されたソースプログラム5の文
53は定数計算処理により、図5に示すような文54に
変形される。なお、文53の左辺の変数Vxについても
、後に参照されていて所定の条件を満たせば定数伝播処
理が行われる。
が定数に置き換えられた文も更に処理の対象となる。例
えば、図4のように変形されたソースプログラム5の文
53は定数計算処理により、図5に示すような文54に
変形される。なお、文53の左辺の変数Vxについても
、後に参照されていて所定の条件を満たせば定数伝播処
理が行われる。
【0025】そして、ソースプログラム5の最後の文に
つき処理が終了した場合(ステップS3の無)には、そ
の時点のソースプログラム5の内容をテキストバッファ
4に出力する最適化プログラム出力処理を行う(ステッ
プS6)。
つき処理が終了した場合(ステップS3の無)には、そ
の時点のソースプログラム5の内容をテキストバッファ
4に出力する最適化プログラム出力処理を行う(ステッ
プS6)。
【0026】
【発明の効果】以上説明したように、本発明の最適化テ
キスト編集方式にあっては、最適化機能を持たないコン
パイラを使用している電子計算機システムであっても、
予めテキストエディタによる編集の段階でソースプログ
ラムを自動的に修正して最適化を行っておくため、実行
時に無駄な演算の実行が低減され、実行速度の向上が図
れるという効果がある。
キスト編集方式にあっては、最適化機能を持たないコン
パイラを使用している電子計算機システムであっても、
予めテキストエディタによる編集の段階でソースプログ
ラムを自動的に修正して最適化を行っておくため、実行
時に無駄な演算の実行が低減され、実行速度の向上が図
れるという効果がある。
【図1】本発明の最適化テキスト編集方式を適用したテ
キストエディタの一実施例を示す構成図である。
キストエディタの一実施例を示す構成図である。
【図2】定数計算最適化手段における最適化の処理を示
すフローチャートである。
すフローチャートである。
【図3】最適化前のソースプログラムの例を示す図であ
る。
る。
【図4】最適化の中間処理である定数伝播処理後のソー
スプログラムの例を示す図である。
スプログラムの例を示す図である。
【図5】最適化後のソースプログラムの例を示す図であ
る。
る。
1…テキストエディタ
2…入出力インタフェース
3…テキスト編集手段
4…テキストバッファ
5…ソースプログラム
6…定数計算最適化手段
Claims (2)
- 【請求項1】 ソースプログラムの入力を行うと共に
、作成・編集等の指示の受け付けを行う入出力インタフ
ェースと、ソースプログラムの編集処理を行い、編集後
のソースプログラムをテキストバッファに格納するテキ
スト編集手段と、ソースプログラムの編集終了後にテキ
ストバッファに格納されたソースプログラムに対して定
数計算の最適化を行う定数計算最適化手段とを備えたこ
とを特徴とする最適化テキスト編集方式。 - 【請求項2】 定数計算最適化手段は、テキストバッ
ファからソースプログラムを入力して分岐文およびラベ
ルの出現毎にソースプログラムを分割してそれを基本ブ
ロックとする基本ブロック分割処理と、分割された基本
ブロック間の制御移行を解析すると共に、ソースプログ
ラム中の各変数の値の設定・参照の関係を解析するフロ
ー解析処理と、ソースプログラムの制御フロー上の先頭
から一文ずつ調べることにより任意の文に対して定数同
士の演算部分を計算する定数計算処理と、計算した文の
左辺が変数で右辺が定数であり、かつ左辺の変数に右辺
の定数を代入する代入文であった場合に、制御フロー上
でこの代入文より後ろにこの代入文の左辺と同じ変数の
参照が出現し、データフロー解析の結果よりこの代入文
とその変数の参照の出現との間で、その変数に値が再設
定されていないと判定された場合に、その変数の参照を
代入文の右辺の定数の参照に置き換える最適化を行う定
数伝播処理と、処理の済んだソースプログラムをテキス
トバッファに出力する最適化プログラム出力処理とを行
うことを特徴とする請求項1記載の最適化テキスト編集
方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11949391A JPH04323731A (ja) | 1991-04-23 | 1991-04-23 | 最適化テキスト編集方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11949391A JPH04323731A (ja) | 1991-04-23 | 1991-04-23 | 最適化テキスト編集方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04323731A true JPH04323731A (ja) | 1992-11-12 |
Family
ID=14762635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11949391A Pending JPH04323731A (ja) | 1991-04-23 | 1991-04-23 | 最適化テキスト編集方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04323731A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009110299A (ja) * | 2007-10-30 | 2009-05-21 | Internatl Business Mach Corp <Ibm> | プログラムを最適化するコンパイラ |
-
1991
- 1991-04-23 JP JP11949391A patent/JPH04323731A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009110299A (ja) * | 2007-10-30 | 2009-05-21 | Internatl Business Mach Corp <Ibm> | プログラムを最適化するコンパイラ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH06314203A (ja) | コンパイラの最適化方法および装置 | |
JPH0721033A (ja) | 言語処理装置及びその方法 | |
KR950702721A (ko) | 터미날 에뮬레이터 또는 사용자 프로그램으로부터 선택적 그래픽 사용자 인터페이스 (GUI)제어 및 명령어 라인(TTY) 제어를 인에이블시키는 다중스래드를 실행하는 컴퓨터 프로그램용 제어기. (Controller for computer program running multiple threads enabling selective graphic user Interface (GUI) control and command line (TTY) control from terminal emulator or user program) | |
JPH04323731A (ja) | 最適化テキスト編集方式 | |
JPH10187461A (ja) | 言語処理方式 | |
JP2585793B2 (ja) | コンパイラシステム | |
JPH04181432A (ja) | 最適化テキスト編集方式 | |
JP2682206B2 (ja) | 目的プログラムの最適化方式 | |
JPH0546404A (ja) | 分岐命令削除最適化方式 | |
JPH11195011A (ja) | 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体 | |
JPS62166432A (ja) | プログラム翻訳制御方式 | |
JPH04278635A (ja) | テキストエディタ | |
JPS6297031A (ja) | 仮数部のビツト数整合方式 | |
JPH02253443A (ja) | プログラム生成方法 | |
JPH02146688A (ja) | データ駆動型マイクロプロセッサにおけるハッシュ衝突回避方法 | |
JPH0644082A (ja) | 最適化テキスト作成方式 | |
JPH0417031A (ja) | 定数値伝播最適化方式 | |
JPH05100836A (ja) | ソースプログラム注釈行編集装置 | |
JPH06208470A (ja) | 目的コード最適化装置 | |
JPH04343140A (ja) | コンパイラの最適化処理方法 | |
JPH03127133A (ja) | 計算機シミュレーション方法 | |
JPH04248624A (ja) | プログラム変換処理装置 | |
JPH05204699A (ja) | デバッグ時識別子探索方式 | |
JPH0385639A (ja) | プログラム言語翻訳機 | |
JPH05120323A (ja) | If文下ベクトル演算最適化方式 |