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
Links
- 238000000034 method Methods 0.000 claims description 9
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 abstract description 7
- 238000004519 manufacturing process Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
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とから、その主要部が構威されている。
ラムの削減方式の構或を示すブロソク図である。本実施
例の条件文の目的プログラムの削減方式は、コンパイラ
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”が満足されなかったときに行う処理記述である。
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に飛ぶことを指示する中間言語
である。
、データAがデータBより大きくないときにラベルL1
に飛ぶことを指示する中間言語である。また、“Go
L2”は、ラベルL2に飛ぶことを指示する中間言語
である。
データ属性記憶域4は、原始プログラムlで宣言された
データAの値域(a+..at)およびデータBの値域
(b+..bz)を記憶する。
データ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で削減可能な
部分である。
とデータ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, ”を判定す
ることにより、条件文の条件が満足することがないかど
うかが判断されることを示す。
値域に対する検査表を示す図である。この検一査表は、
条件文の比較演算子が“〉“であるときには1at≦b
, ”<”であるときには″b2≦a,
=”であるときには“b,<a1 ”または”a,<b
, “〉=”であるときには“a,<b,
“く=”であるときには“b2<a, ”を判定す
ることにより、条件文の条件が満足することがないかど
うかが判断されることを示す。
次に、このように構戒された本実施例の条件文の目的プ
ログラムの削減方式の動作について説明する。なお、こ
こでは、第1図中に示すように、条件文の比較演算子が
“〉”である場合を例にとって説明する。
ログラムの削減方式の動作について説明する。なお、こ
こでは、第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を生成する。
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)とを比較
することにより行われる。
的プログラム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のオブジェクトの削除を不可と判断す
る。
図の検査表に従ってデータAの最大値a2がデータBの
最小値b,以下かどうかを判定し、以下であればデータ
Aの値がデータBの値よりかならず小さいので、実行時
に条件文“IF A〉 B″の条件が満足されること
はないと判定し、条件文オブジェクトおよび条件或立時
の処理1のオブジェクトの削除を可と判断する。データ
Aの最大値a2がデータBの最小値b.以下でなければ
、実行時に条件文“fF A > B”の条件が
満足される場合があるので、条件オブジェクトおよび条
件成立時の処理lのオブジェクトの削除を不可と判断す
る。
そして、条件文オブジェクトおよび条件或立時の処理l
のオブジェクトの削除を可と判断した場合には、条件文
オブジェクト削減手段221は、ハフクエンド部22で
の目的プログラム5の作或時に目的プログラム5中の〔
〕で囲んだ部分を削除する。
のオブジェクトの削除を可と判断した場合には、条件文
オブジェクト削減手段221は、ハフクエンド部22で
の目的プログラム5の作或時に目的プログラム5中の〔
〕で囲んだ部分を削除する。
なお、条件文オブジェクトおよび条件或立時の処理1の
オブジェクトを削除した場合には、コンパイラ2から使
用者に対してその旨のメッセージ等を通知するようにし
てもよい。
オブジェクトを削除した場合には、コンパイラ2から使
用者に対してその旨のメッセージ等を通知するようにし
てもよい。
ところで、上記実施例の動作の説明では、条件文の比較
演算子が“〉”である場合を例にとって説明したが、比
較演算子が第2図の検査表に示される他の比較演算子で
あっても同様の動作となることはいうまでもない。
演算子が“〉”である場合を例にとって説明したが、比
較演算子が第2図の検査表に示される他の比較演算子で
あっても同様の動作となることはいうまでもない。
以上説明したように本発明は、ソースプログラムで宣言
されたデータの値域に基づいて条件文の対象となるデー
タの値域を判定し、条件文が条件を満足することがない
ときには条件文オブジェクトおよび条件成立時の処理オ
ブジェクトを生成しないようにしたことにより、生成さ
れる目的プログラムの大きさを小さくすることができ、
また目的プログラムの実行速度を速くすることができる
という効果がある。
されたデータの値域に基づいて条件文の対象となるデー
タの値域を判定し、条件文が条件を満足することがない
ときには条件文オブジェクトおよび条件成立時の処理オ
ブジェクトを生成しないようにしたことにより、生成さ
れる目的プログラムの大きさを小さくすることができ、
また目的プログラムの実行速度を速くすることができる
という効果がある。
第l図は本発明の一実施例に係る条件文の目的プログラ
ムの削減方式の構戊を示すブロック図、第2図は第1図
中の条件文オブジェクト削減手段の値域に対する検査表
を示す図である。 図において、 1・・・原始プログラム、 2・・・コンパイラ、 3・・・中間言語、 4・・・データ属性記憶域、 5・・・目的プログラム、 21・・フロントエンド部、 22・・バックエンド部、 221・条件文オブジェクト削減手段である。
ムの削減方式の構戊を示すブロック図、第2図は第1図
中の条件文オブジェクト削減手段の値域に対する検査表
を示す図である。 図において、 1・・・原始プログラム、 2・・・コンパイラ、 3・・・中間言語、 4・・・データ属性記憶域、 5・・・目的プログラム、 21・・フロントエンド部、 22・・バックエンド部、 221・条件文オブジェクト削減手段である。
Claims (1)
- 【特許請求の範囲】 原始プログラムを翻訳して目的プログラムを生成するコ
ンパイラにおいて、 原始プログラムで宣言されたデータの値域を記憶するデ
ータ属性記憶域と、 条件文の中間言語が生成されている場合に前記データ属
性記憶域を参照して条件文の対象データが条件文の条件
を満足する値域を有しているか否かを判断して条件を満
足することがないときには条件文オブジェクトおよび条
件成立時の処理オブジェクトを生成しないようにする条
件文オブジェクト削減手段と を有することを特徴とする条件文の目的プログラムの削
減方式。
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)
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 | 三菱電機株式会社 | 情報処理装置、情報処理方法及び情報処理プログラム |
-
1989
- 1989-09-08 JP JP23333889A patent/JPH0395631A/ja active Pending
Cited By (4)
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文最適化方式 |