JPH0395631A - 条件文の目的プログラムの削減方式 - Google Patents

条件文の目的プログラムの削減方式

Info

Publication number
JPH0395631A
JPH0395631A JP23333889A JP23333889A JPH0395631A JP H0395631 A JPH0395631 A JP H0395631A JP 23333889 A JP23333889 A JP 23333889A JP 23333889 A JP23333889 A JP 23333889A JP H0395631 A JPH0395631 A JP H0395631A
Authority
JP
Japan
Prior art keywords
data
program
conditional statement
conditional
condition
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
JP23333889A
Other languages
English (en)
Inventor
Shinji Obara
小原 晋二
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 JP23333889A priority Critical patent/JPH0395631A/ja
Publication of JPH0395631A publication Critical patent/JPH0395631A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は原始プログラムを翻訳して目的プログラムを生
成するコンパイラに関し、特にコンパイラにおける条件
文の目的プログラムの削減方式に関する. 〔従来の技術〕 従来、この種のコンパイラでは、原始プログラムに記述
されている条件文に対して条件文オブジェクト,条件或
立時の処理オブジェクトおよび条件不成立時の処理オブ
ジェクトを無条件で生成していた. 〔発明が解決しようとする課題〕 上述した従来のコンパイラでは、条件文の対象となるデ
ータの値域により条件文の戒立または不成立が明らかな
場合でも、条件文オブジェクト条件成立時の処理オブジ
ェクトおよび条件不成立時の処理オブジェクトを無条件
で生成していたので、生成される目的プログラムが大き
くなり、また目的プログラムの実行速度も遅くなるとい
う欠点がある. 本発明の目的は、上述の点に鑑み、条件文の対象となる
データの値域を判定して条件を満足することかない場合
には条件文オブジェクトおよび条件成立時の処理オブジ
ェクトを生成しないようにして、目的プログラムの大き
さを小さくし、目的プログラムの実行速度を速くするよ
うにした条件文の目的プログラムの削減方式を提供する
ことにある。
〔課題を解決するための手段〕
本発明の条件文の目的プログラムの削減方式は、原始プ
ログラムを翻訳して目的プログラムを生成するコンパイ
ラにおいて、原始プログラムで宣言されたデータの値域
を記憶するデータ属性記憶域と、条件文の中間言語が生
成されている場合に前記データ属性記憶域を参照して条
件文の対象データが条件文の条件を満足する値域を有し
ているか否かを判断して条件を満足することがないとき
には条件文オブジェクトおよび条件成立時の処理オブジ
ェクトを生成しないようにする条件文オブジェクト削減
手段とを有する。
〔作用) 本発明の条件文の目的プログラムの削減方式では、デー
タ属性記憶域が原始プログラムで宣言されたデータの値
域を記憶し、条件文オブジェクト削減手段が条件文の中
間言語が生成されている場合にデータ属性記憶域を参照
して条件文の対象データが条件文の条件を満足する値域
を有しているか否かを判断して条件を満足することがな
いときには条件文オブジェクトおよび条件成立時の処理
オブジェクトを生成しないようにする。
〔実施例〕
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明の一実施例に係る条件文の目的プログ
ラムの削減方式の構或を示すブロソク図である。本実施
例の条件文の目的プログラムの削減方式は、コンパイラ
2が人力する原始プログラム1と、フロントエンド部2
1および条件文オブジェクト削減手段221を有するバ
ックエンド部22を含むコンパイラ2と、フロントエン
ド部21が出力しバックエンド部22が入力する中間言
語3と、フロントエンド部21がデータ属性を出力しバ
ンクエンド部22がデータ属性を入力するデータ属性記
憶域4と、バソクエンド部22が出力する目的プログラ
ム5とから、その主要部が構威されている。
原始プログラム1中の“A  RANGE  a,.a
2”は、データAが最小値a1から最大値a2までの値
域をもつという宣言であり、“BRANGE  tz 
..bz  ”は、データBが最小値b1から最大値b
2までの値域をもつという宣言である。また、“IF 
 A  >  B″は、データAがデータBより大きい
か否かを判定する条件文であり、“THEN  処理1
゜は条件文“IFA>B”が満足されたときに行う処理
記述であり、“ELSE  処理2”は条件文“IFA
>B”が満足されなかったときに行う処理記述である。
中間言語3中の“BF  A  >  B  Ll”は
、データAがデータBより大きくないときにラベルL1
に飛ぶことを指示する中間言語である。また、“Go 
 L2”は、ラベルL2に飛ぶことを指示する中間言語
である。
データ属性記憶域4は、原始プログラムlで宣言された
データAの値域(a+..at)およびデータBの値域
(b+..bz)を記憶する。
目的フ゜ログラム5は、“CLA,B“でデータAの値
とデータBの値とを比較し、データAの値がデータBの
値より大きければ処理1のオブジェクトを実行し、“B
  L2”でラベルL2に飛ぶことを示す。また、目的
プログラム5は、“CLA,B″でデータAのイ直がデ
ータBのイ直より大きくなければ、”BNHLI″でラ
ベルL1に飛び、処理2のオブジェクトを実行すること
を示す。なお、目的プログラム5中の〔 〕で囲んだ部
分は、条件文オブジェクト削減手段221で削減可能な
部分である。
第2図は、条件文オブジェクト削減千段221における
値域に対する検査表を示す図である。この検一査表は、
条件文の比較演算子が“〉“であるときには1at≦b
,    ”<”であるときには″b2≦a,    
=”であるときには“b,<a1 ”または”a,<b
,    “〉=”であるときには“a,<b,   
 “く=”であるときには“b2<a,  ”を判定す
ることにより、条件文の条件が満足することがないかど
うかが判断されることを示す。
次に、このように構戒された本実施例の条件文の目的プ
ログラムの削減方式の動作について説明する。なお、こ
こでは、第1図中に示すように、条件文の比較演算子が
“〉”である場合を例にとって説明する。
コンパイラ2が起動されると、まずフロントエンド部2
lは、原始プログラム1を入力し、原始プログラム1で
宣言されたデータAの値域〔a..am)およびデータ
Bの値域(b...b,〕をデータ属性記憶域4に出力
する。また、フロントエンド部2lは、ソースプログラ
ム1を入力して中間言語3を出力する。特に、ソースプ
ログラム1中の条件文’IF  A  >  B  T
HEN処理I  ELSE  処理2”を入力した場合
には、第1図中に示すような中間言語3を生成する。
次に、バノクエンド部22は、中間言語3を入力して目
的プログラム5を出力する。特に、第1図中に示す中間
言語3を入力すると、バックエンド部22は、条件文オ
ブジェクト削減手段221によりデータ属性記憶域4の
データAの値域〔a..at〕およびデータBの値域(
b+ ..bz〕を人力し、第1図中に示すような中間
言語3に対する条件文オブジェクトおよび条件成立時の
処理lのオブジェクトを目的プログラム5中に出力する
か否かの判定を行う。この判定は、データAの値域(a
+..az)とデータBの値域〔b..bz)とを比較
することにより行われる。
詳しくは、条件文オブジェクト削減手段221は、第2
図の検査表に従ってデータAの最大値a2がデータBの
最小値b,以下かどうかを判定し、以下であればデータ
Aの値がデータBの値よりかならず小さいので、実行時
に条件文“IF  A〉 B″の条件が満足されること
はないと判定し、条件文オブジェクトおよび条件或立時
の処理1のオブジェクトの削除を可と判断する。データ
Aの最大値a2がデータBの最小値b.以下でなければ
、実行時に条件文“fF  A  >  B”の条件が
満足される場合があるので、条件オブジェクトおよび条
件成立時の処理lのオブジェクトの削除を不可と判断す
る。
そして、条件文オブジェクトおよび条件或立時の処理l
のオブジェクトの削除を可と判断した場合には、条件文
オブジェクト削減手段221は、ハフクエンド部22で
の目的プログラム5の作或時に目的プログラム5中の〔
 〕で囲んだ部分を削除する。
なお、条件文オブジェクトおよび条件或立時の処理1の
オブジェクトを削除した場合には、コンパイラ2から使
用者に対してその旨のメッセージ等を通知するようにし
てもよい。
ところで、上記実施例の動作の説明では、条件文の比較
演算子が“〉”である場合を例にとって説明したが、比
較演算子が第2図の検査表に示される他の比較演算子で
あっても同様の動作となることはいうまでもない。
〔発明の効果〕
以上説明したように本発明は、ソースプログラムで宣言
されたデータの値域に基づいて条件文の対象となるデー
タの値域を判定し、条件文が条件を満足することがない
ときには条件文オブジェクトおよび条件成立時の処理オ
ブジェクトを生成しないようにしたことにより、生成さ
れる目的プログラムの大きさを小さくすることができ、
また目的プログラムの実行速度を速くすることができる
という効果がある。
【図面の簡単な説明】
第l図は本発明の一実施例に係る条件文の目的プログラ
ムの削減方式の構戊を示すブロック図、第2図は第1図
中の条件文オブジェクト削減手段の値域に対する検査表
を示す図である。 図において、 1・・・原始プログラム、 2・・・コンパイラ、 3・・・中間言語、 4・・・データ属性記憶域、 5・・・目的プログラム、 21・・フロントエンド部、 22・・バックエンド部、 221・条件文オブジェクト削減手段である。

Claims (1)

  1. 【特許請求の範囲】 原始プログラムを翻訳して目的プログラムを生成するコ
    ンパイラにおいて、 原始プログラムで宣言されたデータの値域を記憶するデ
    ータ属性記憶域と、 条件文の中間言語が生成されている場合に前記データ属
    性記憶域を参照して条件文の対象データが条件文の条件
    を満足する値域を有しているか否かを判断して条件を満
    足することがないときには条件文オブジェクトおよび条
    件成立時の処理オブジェクトを生成しないようにする条
    件文オブジェクト削減手段と を有することを特徴とする条件文の目的プログラムの削
    減方式。
JP23333889A 1989-09-08 1989-09-08 条件文の目的プログラムの削減方式 Pending JPH0395631A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23333889A JPH0395631A (ja) 1989-09-08 1989-09-08 条件文の目的プログラムの削減方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23333889A JPH0395631A (ja) 1989-09-08 1989-09-08 条件文の目的プログラムの削減方式

Publications (1)

Publication Number Publication Date
JPH0395631A true JPH0395631A (ja) 1991-04-22

Family

ID=16953586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23333889A Pending JPH0395631A (ja) 1989-09-08 1989-09-08 条件文の目的プログラムの削減方式

Country Status (1)

Country Link
JP (1) JPH0395631A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009098739A1 (ja) * 2008-02-05 2009-08-13 Panasonic Corporation プログラム最適化装置およびプログラム最適化方法
CN102278044A (zh) * 2011-04-20 2011-12-14 同济大学 抗挤压变形门
WO2018096588A1 (ja) * 2016-11-22 2018-05-31 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009098739A1 (ja) * 2008-02-05 2009-08-13 Panasonic Corporation プログラム最適化装置およびプログラム最適化方法
JPWO2009098739A1 (ja) * 2008-02-05 2011-05-26 パナソニック株式会社 プログラム最適化装置およびプログラム最適化方法
CN102278044A (zh) * 2011-04-20 2011-12-14 同济大学 抗挤压变形门
WO2018096588A1 (ja) * 2016-11-22 2018-05-31 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Similar Documents

Publication Publication Date Title
JPH0395631A (ja) 条件文の目的プログラムの削減方式
US7425956B1 (en) System and method for occlusion testing with deferred rendering
US8898625B2 (en) Optimized storage of function variables
JPH01277934A (ja) パラメータリスト参照方法の切換え方式
JPH07141192A (ja) 翻訳処理方法
JPH0327444A (ja) 代入文の例外検査オブジェクト削除方式
JP2585793B2 (ja) コンパイラシステム
JPH0378031A (ja) 例外検査/代入文オブジェクトの削除方式
JPH0546404A (ja) 分岐命令削除最適化方式
JP2002099425A (ja) グローバル変数のローカル変数変換方法
JPS62267832A (ja) コンパイル方式
JPH05324009A (ja) エージェント制御方式
Sahlin Finding the least fixed point using wait-declarations in Prolog
JP2979108B2 (ja) データ処理装置における非同期処理の同期化方式
JPH06119184A (ja) 計算式最適化方法
JPH04178731A (ja) オブジェクト指向処理系におけるメソッド・キャッシュ情報の再利用方式
JPH02110734A (ja) 中央処理装置
JPH03255534A (ja) 高級プログラム言語のポインタ修飾データ参照方式
JPH01274241A (ja) 命令列生成方式
JP2002304293A (ja) プロセッサ装置、並びにアドレス更新方法及び繰り返しカウンタ更新方法
JPS63141133A (ja) パラメ−タの値渡しによる手続き呼出し方法
JPH02135529A (ja) コンパイル方式
JPH02130637A (ja) ソースコード翻訳方式
JPH04343140A (ja) コンパイラの最適化処理方法
JPH0337726A (ja) Case文最適化方式