(57)【特許請求の範囲】
【請求項１】
高級言語プログラムを第１の中間コード列に変換する中間コード生成手段と、
前記第１の中間コード列から、命令実行状態を判定する比較コードと、特定の資源に対して２つの操作を行う第１、および第２の操作コードと、前記比較コードが判定した命令実行状態が特定条件に合致する時に第１の操作コードを実行させ、合致しない時に第２の操作コードを実行させる条件付きコードとを抽出する最適化対象コード検出手段と、
前記最適化対象コード検出手段が抽出した前記比較コードを、前記条件付きコードの前記特定条件を判定する条件付き比較コードに変更し、前記条件付きコードを削除するとともに、前記第１の操作コードを前記第２の操作コードの後続に配置し、前記第１の操作コードを前記特定条件に合致した時のみ実行する条件成立時実行コードに変更するという処理を施すことより、第１の中間コードを第２の中間コードに変換する条件成立時実行命令適用中間コード最適化手段と、
前記第２の中間コードを機械語命令に変換する機械語命令生成手段と
を備えることを特徴とするコンパイラ。
【請求項２】
前記条件成立時実行命令適用中間コード最適化手段は、前記最適化対象コード検出手段が抽出した前記比較コードを、前記条件付きコードの特定条件を判定する条件付き比較コードに変更するとともに、前記第１の操作コードを特定条件に合致した時のみ実行する条件成立時実行コードに変更するという処理を施すことより、第１の中間コードを第２の中間コードに変換することを特徴とする請求項１記載のコンパイラ。
【請求項３】
前記条件成立時実行コードは、転送を行うコードであることを特徴とする請求項１または２記載のコンパイラ。
【請求項４】
前記条件成立時実行コードは、演算を行うコードであることを特徴とする請求項１または２記載のコンパイラ。
【請求項５】
命令列から、命令実行状態を判定する比較命令と、特定の資源に対して２つの操作を行う第１、および第２の操作命令と、前記比較命令が判定した命令実行状態が特定条件に合致する時に第１の操作命令を実行させ、合致しない時に第２の操作命令を実行させる条件付き命令とを抽出する最適化対象命令検出手段と、
前記最適化対象命令検出手段が抽出した前記比較命令を、前記条件付き命令の前記特定条件を判定する条件付き比較命令に変更し、前記条件付き命令を削除するとともに、前記第１の操作命令を前記第２の操作命令の後続に配置し、前記第１の操作命令を前記特定条件に合致した時のみ実行する条件成立時実行命令に変更するという処理を施すことより、命令列を変換する条件成立時実行命令適用命令列最適化手段と
を備えることを特徴とする命令列変換装置。
【請求項６】
前記条件成立時実行命令適用命令列最適化手段は、前記最適化対象命令検出手段が抽出した前記比較命令を、前記条件付き命令の特定条件を判定する条件付き比較命令に変更するとともに、前記第１の操作命令を特定条件に合致した時のみ実行する条件成立時実行命令に変更するという処理を施すことより、第１の中間コードを第２の中間コードに変換することを特徴とする請求項５記載の命令列変換装置。
【請求項７】
前記条件成立時実行命令は、転送を行う命令であることを特徴とする請求項５または６記載の命令列変換装置。
【請求項８】
前記条件成立時実行命令は、演算を行う命令であることを特徴とする請求項５または６記載の命令列変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プロセッサとそのコンパイラあるいは命令列変換装置に関し、特に条件付き命令を削減することの技術に関する。
【０００２】
【従来の技術】
近年、プロセッサの処理能力が飛躍的に向上し、あらゆる分野で用いられている。
【０００３】
特に近年のプロセッサでは、分岐時にパイプラインが乱れることによる分岐命令のオーバーヘッドを削減するために、分岐命令の代わりに条件付き命令を用いて処理能力を向上させている。例えば、The ARM RISC Chip A Programmer's Guide、Addison-Wesley Publishing Company Inc.参照。
【０００４】
図１３は従来のプロセッサの比較命令、条件付き加算命令、条件付き転送命令、および条件分岐命令の命令仕様の第１の従来例を示す図である。
【０００５】
このプロセッサでは、各条件付き命令が１０種類ずつ（図１３では加算命令、転送命令、および分岐命令のみを示している）存在し、命令ニモニックのオペコードの末尾２文字が条件を指定している。
【０００６】
また、第１の従来例では、各条件付き命令毎に１０種類ずつ実装しなければならないので、指定できる条件を削減した条件付き命令を実装しているプロセッサもある。例えば、日立シングルチップRISCマイコンSH7000/SH7600シリーズプログラミングマニュアル、(株)日立製作所参照。
【０００７】
図１４は従来のプロセッサの比較命令、および条件分岐命令の命令仕様の第２の従来例を示す図である。
【０００８】
このプロセッサでは、比較命令で条件を指定することにより、条件分岐命令は成立／非成立の２種類存在している。
【０００９】
図１５は第１、および第２の従来例より想定できる第３の従来例であり、プロセッサの比較命令、条件付き加算命令、条件付き転送命令、および条件分岐命令の命令仕様を示す図である。
【００１０】
このプロセッサでは、第２の従来例の条件分岐命令のように成立／非成立の２つの条件でのみ指定する考えを第１の条件付き命令に適用したものである。
【００１１】
このプロセッサでは、比較命令で条件を指定することにより、全ての条件付き命令は成立／非成立の２種類ずつ存在している。
【００１２】
このように、分岐命令の代わりに条件付き命令を使用するために、従来のプロセッサでは、条件付き命令は複数の条件を指定するようにしていた。
【００１３】
【発明が解決しようとする課題】
しかしながら上記従来技術によれば、各条件付き命令は１０種類または２種類ずつ存在し、命令割付けにおいて全条件付き命令に対して複数の条件を指定するフィールドが必要となる。例えば、条件付き命令が２０命令あるプロセッサでは、上記第１の従来例では、比較命令１種類、条件付き命令２００種類（各条件付き命令１０種類×２０命令）の合計２０１命令、上記第３の従来例では、比較命令５種類、条件付き命令４０種類（各条件付き命令２種類×２０命令）の合計４５命令もの多数の命令を命令セットに割り付けるためのフィールドが必要となるので、コードサイズが増加するという課題を有していた。
【００１４】
また各条件付き命令において、１０種類または２種類もの複数の条件を判断する必要があるために、命令解読器のハードウェア量が増加するという課題も有していた。
【００１５】
本発明はかかる課題に鑑み、条件付き命令を実装する場合でも、複数の条件を指定する必要がなく、コードサイズの増加を抑止し、かつ、命令解読器のハードウェア量の増加を抑止するプロセッサ、コンパイラおよび命令列変換装置を提供することを目的とする。
【００１６】
【課題を解決するための手段】
この課題を解決するため本発明のコンパイラは、高級言語プログラムを第１の中間コード列に変換する中間コード生成手段と、前記第１の中間コード列から、命令実行状態を判定する比較コードと、特定の資源に対して２つの操作を行う第１、および第２の操作コードと、前記比較コードが判定した命令実行状態が特定条件に合致する時に第１の操作コードを実行させ、合致しない時に第２の操作コードを実行させる条件付きコードとを抽出する最適化対象コード検出手段と、前記最適化対象コード検出手段が抽出した前記比較コードを、前記条件付きコードの前記特定条件を判定する条件付き比較コードに変更し、前記条件付きコードを削除するとともに、前記第１の操作コードを前記第２の操作コードの後続に配置し、前記第１の操作コードを前記特定条件に合致した時のみ実行する条件成立時実行コードに変更するという処理を施すことより、第１の中間コードを第２の中間コードに変換する条件成立時実行命令適用中間コード最適化手段と、前記第２の中間コードを機械語命令に変換する機械語命令生成手段とを備えることを特徴とするものであり、
命令列変換装置は、命令列から命令実行状態を判定する比較命令と、特定の資源に対して２つの操作を行う第１、および第２の操作命令と、前記比較命令が判定した命令実行状態が特定条件に合致する時に第１の操作命令を実行させ、合致しない時に第２の操作命令を実行させる条件付き命令とを抽出する最適化対象命令検出手段と、前記最適化対象命令検出手段が抽出した前記比較命令を、前記条件付き命令の前記特定条件を判定する条件付き比較命令に変更し、前記条件付き命令を削除するとともに、前記第１の操作命令を前記第２の操作命令の後続に配置し、前記第１の操作命令を前記特定条件に合致した時のみ実行する条件成立時実行命令に変更するという処理を施すことより、命令列を変換する条件成立時実行命令適用命令列最適化手段とを備えることを特徴とする。
【００１７】
これにより、コンパイラまたは命令列変換装置は、条件付き命令として条件に合致した時のみ実行する条件成立時実行命令のみを生成することになり、条件付き命令の数を削減することが可能になる。
【００１９】
さらに、コンパイラにおける前記条件成立時実行命令適用中間コード最適化手段は、前記最適化対象コード検出手段が抽出した前記比較コードを、または前記条件付きコードの特定条件を判定する条件付き比較コードに変更するとともに、前記第１の操作コードを特定条件に合致した時のみ実行する条件成立時実行コードに変更するという処理を施すことより、第１の中間コードを第２の中間コードに変換してもよい。
【００２０】
その上、コンパイラにおける前記条件成立時実行コードは、転送を行うコード、または演算を行うコードとしてもよい。
【００２１】
また、命令列変換装置における前記条件成立時実行命令適用命令最適化手段は、前記最適化対象命令検出手段が抽出した前記比較命令を、前記条件付き命令の特定条件を判定する条件付き比較命令に変更するとともに、前記第１の操作命令を特定条件に合致した時のみ実行する条件成立時実行命令に変更するという処理を施すことより、第１の中間コードを第２の中間コードに変換してもよい。
【００２２】
その上、命令列変換装置における前記条件成立時実行命令は、転送を行う命令、または演算を行う命令としてもよい。
【００２３】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を用いて説明する。
【００２４】
図１は、本発明の実施の形態で生成する命令列を実行するプロセッサのブロック構成図である。
【００２５】
このプロセッサは演算フラグ保持手段１０１、命令解読手段１０２、命令実行手段１０３、命令実行停止手段１０４から構成されている。
【００２６】
演算フラグ保持手段１０１は、命令実行の状態を演算フラグとして保持する。
命令解読手段１０２は、機械語命令を解読する。
【００２７】
命令実行手段１０３は、命令解読手段１０２から出力される命令実行手段制御信号に従って、命令を実行する。
【００２８】
命令実行停止手段１０４は、演算フラグ保持手段１０１が保持している命令実行状態を示す演算フラグ状態信号１１１と、演算命令解読手段１０２が条件付き命令を解読していることを示す条件付き命令指示信号１１２を入力し、条件が成立していない場合には、命令実行手段１０３に対して命令実行停止信号１１３を出力し、命令実行を停止するように制御する。
【００２９】
図２は、本発明の実施の形態のコンパイラの概略構成図である。
このコンパイラは中間コード生成手段２０１、最適化対象コード検出手段２０２、条件成立時実行命令適用最適化手段２０３、中間コード最適化手段２０４、機械語命令生成手段２０５から構成されている。プログラムから中間コードを生成する処理と、中間コードを最適化し機械語命令を生成する処理は公知の技術であるため省略し、本発明にかかわる最適化対象コード検出手段２０２、および条件成立時実行命令適用最適化手段２０３の処理に関して図３から図８を用いて説明する。
【００３０】
（実施の形態１）
図３は、本発明の第１の実施の形態におけるコンパイラの条件成立時実行命令適用最適化手段２０３と中間コード最適化手段２０４の動作を記述したフローチャートである。
【００３１】
図４は、本発明の実施の形態の一例におけるプロセッサの比較命令、分岐命令、転送命令、および加算命令の命令仕様である。
【００３２】
図５は、図３で示したフローチャートのｃソースコード２１１に相当するＣ言語で記述されたプログラムである。図５のプログラムはａとｂの比較を行い、等しければｃに１を代入し、そうでなければｃに０を代入し、関数ｆを呼び出す。
【００３３】
図６は、図３で示したフローチャートの第１の中間コード２１２に相当するコードである。図６において「L1」、「L2」は分岐先のラベルを表す。「a cmp b」はａとｂの比較を行い、比較結果は演算フラグに反映される。「beq L1」は条件分岐を行うものであり、演算フラグを参照し、比較結果が等しい場合ラベル「L1」に分岐する。「c=0」、「c=1」は転送を行い、それぞれ０または１の即値をｃに転送する。「jmp L2」は無条件分岐を行うものであり、ラベル「L2」に分岐する。「jsr f」は「f」で指定される関数ｆに関数呼び出しを行うものである。
【００３４】
図７は、図３で示したフローチャートの第２の中間コード２１３に相当するコードである。図７において「a cmpeq b」は条件付き比較コードであり、ａとｂの比較を行い、比較結果が等しければ演算フラグをセットし、等しくなければ演算フラグをクリアする。「c=:true 1」は条件成立時実行コードで、比較コードで設定した条件が成立している（フラグがセットされている）場合にのみ、即値１をｃに転送する。
【００３５】
以下、図３のフローチャートの動作を順を追って説明する。
（１）図６の第１の中間コードを入力する。入力した時点のフローチャートのｎの値は１とする。
（２）３―ｂの判定がＹＥＳになるまでｎを増加し処理を繰り返す。図６の第１の中間コードの場合、ｎ＝１の時にＹＥＳとなり、３―ｃの判定に進む。
（３）３―ｃの判定を行う。２番目のコードは条件分岐コード「beq L1」であるので、３―ｃの判定はＹＥＳとなり、３―ｄの判定に進む。
（４）３―ｄの判定を行う。３番目のコードは転送コード「c=0」であるので、３―ｄの判定はＹＥＳとなり、３―ｅの判定に進む。
（５）３―ｅの判定を行う。４番目のコードは無条件分岐コード「jmp L2」であるので、３―ｅの判定はＹＥＳとなり、３―ｆの判定に進む。
（６）３―ｆの判定を行う。５番目のコードは転送コード「c=1」であり、３番目のコードと同一の変数への転送コードであるので、３―ｆの判定はＹＥＳとなり、３―ｇの処理に進む。
（７）２番目の条件分岐コードの条件は「eq（等しい）」なので、１番目の比較命令を「a cmpeq  b」に変更し、３―ｈの処理に進む。
（８）２番目の条件分岐コードを削除し、３―ｉの処理に進む。
（９）４番目の無条件分岐コードを削除し、３―ｊの処理に進む。
（１０）５番目の転送コードを条件成立時条件転送コード「c=:true 1」に変更し、３―ｋに進み、以下上記（２）以下のステップを繰り返す。
以上の動作により、図７に示す第２の中間コードが生成される。
【００３６】
図８は、図３で示したフローチャートの機械語命令２１５に相当する。「cmpeq r0,r1」は条件付き比較命令であり、レジスタｒ０とｒ１の内容を比較し、比較結果が等しければ演算フラグをセットし、等しくなければ演算フラグをクリアする。「mov 0,r2」は転送命令で、レジスタｒ２に即値０を転送する。「movt 1,r2」は条件成立時条件転送命令で、比較命令で設定した条件が成立している（フラグがセットされている）場合にのみ、レジスタｒ２に即値１を転送する。
【００３７】
（実施の形態２）
図９は、本発明の第２の実施の形態におけるコンパイラの条件成立時実行命令適用最適化手段２０３と中間コード最適化手段２０４の動作を記述したフローチャートである。
【００３８】
コンパイラが生成する命令列を実行するプロセッサの命令仕様は、図４と同様なものとする。
【００３９】
図１０は、図９で示したフローチャートに図５のプログラムを入力した時の第１の中間コード２１２に相当するコードである。図１０において「c=:eq 1」は条件成立時実行転送コードで、比較コードで設定した条件が成立している（フラグがセットされている）場合にのみ、即値１をｃに転送する。
【００４０】
図１０の第１の中間コード２１２を図９に示すフローチャートに従う処理を行った後の第２の中間コード２１３は図７と同様になり、実施の形態１と同様、機械語命令２１５は図８の命令列となる。
【００４１】
以下、図９のフローチャートの動作を順を追って説明する。
（１）図１０の第１の中間コードを入力する。入力した時点のフローチャートのｎの値は１とする。
（２）９―ｂの判定がＹＥＳになるまでｎを増加し処理を繰り返す。図１０の第１の中間コードの場合、ｎ＝１の時にＹＥＳとなり、９―ｃの判定に進む。
（３）９―ｃの判定を行う。２番目のコードは転送コード「c=0」であるので、９―ｃの判定はＹＥＳとなり、９―ｄの判定に進む。
（４）９―ｄの判定を行う。３番目のコードは条件転送コード「c=:eq 1」であり、２番目のコードと同一の変数への条件転送コードであるので、９―ｄの判定はＹＥＳとなり、９―ｅの処理に進む。
（５）３番目の条件転送コードの条件は「eq（等しい）」なので、１番目の比較命令を「a cmpeq  b」に変更し、９―ｆの処理に進む。
（１０）２番目の転送コードを条件成立時条件転送コード「c=:true 1」に変更し、９―ｇに進み、以下上記（２）以下のステップを繰り返す。
以上の動作により、図７に示す第２の中間コードが生成される。
【００４２】
（実施の形態３）
図１１は、本発明の第３の実施の形態におけるコンパイラの条件成立時実行命令適用最適化手段２０３と中間コード最適化手段２０４の動作を記述したフローチャートである。
【００４３】
コンパイラが生成する命令列を実行するプロセッサの命令仕様は、図４と同様なものとする。
【００４４】
図１２は、図１１で示したフローチャートに図５のプログラムを入力した時の第１の中間コード２１２に相当するコードである。図１２において「c=:ne 0」は条件成立時実行転送コードで、比較コードで設定した条件が非成立している（フラグがクリアされている）場合にのみ、即値０をｃに転送する。
【００４５】
図１２の第１の中間コード２１２を図１１に示すフローチャートに従う処理を行った後の第２の中間コード２１３は図７と同様になり、実施の形態１と同様、機械語命令２１５は図８の命令列となる。
【００４６】
以下、図１１のフローチャートの動作を順を追って説明する。
（１）図１２の第１の中間コードを入力する。入力した時点のフローチャートのｎの値は１とする。
（２）１１―ｂの判定がＹＥＳになるまでｎを増加し処理を繰り返す。図１２の第１の中間コードの場合、ｎ＝１の時にＹＥＳとなり、１１―ｃの判定に進む。
（３）１１―ｃの判定を行う。２番目のコードは条件転送コード「c=:ne 0」であるので、１１―ｃの判定はＹＥＳとなり、１１―ｄの判定に進む。
（４）１１―ｄの判定を行う。３番目のコードは条件転送コード「c=:eq 1」であり、２番目のコードと同一の変数への条件転送コードであるので、１１―ｄの判定はＹＥＳとなり、１１―ｅの判定に進む。
（５）１１―ｅの判定を行う。３番目のコードの条件は「eq（等しい）」で、２番目のコードの条件は「ne（等しくない）」であり、お互い排他な条件であるので、１１―ｅの判定はＹＥＳとなり、１１―ｆの処理に進む。
（６）３番目の条件分岐コードの条件は「eq（等しい）」なので、１番目の比較命令を「a cmpeq  b」に変更し、１１―ｇの処理に進む。
（８）２番目の条件転送コードを転送コード「c=0」に変更し、１１―ｈの処理に進む。
（９）３番目の転送コードを条件成立時条件転送コード「c=:true 1」に変更し、３―ｉに進み、以下上記（２）以下のステップを繰り返す。
以上の動作により、図７に示す第２の中間コードが生成される。
【００４７】
以上、本発明に係るプロセッサ、およびコンパイラについて、実施の形態に基づいて説明したが、本発明はこれら実施の形態に限られないことは勿論である。
【００４８】
即ち、
（１）コンパイラで扱う中間コードを条件付き転送コードを用いた中間コードに変換する最適化処理を命令列を命令列に変換する命令列変換装置で行っても同様の効果が得られる。
（２）転送命令の転送値は定数に限らず、レジスタの値も同様に転送できる。
（３）条件付き命令は転送命令に限らず、算術演算命令や論理演算命令であってもよい。
【００４９】
【発明の効果】
以上の説明から明らかなように、本発明のコンパイラは、高級言語プログラムを第１の中間コード列に変換する中間コード生成手段と、前記第１の中間コード列から、命令実行状態を判定する比較コードと、特定の資源に対して２つの操作を行う第１、および第２の操作コードと、前記比較コードが判定した命令実行状態が特定条件に合致する時に第１の操作コードを実行させ、合致しない時に第２の操作コードを実行させる条件付きコードとを抽出する最適化対象コード検出手段と、前記最適化対象コード検出手段が抽出した前記比較コードを、前記条件付きコードの特定条件を判定する条件付き比較コードに変更し、前記条件付きコードを削除するとともに、前記第１の操作コードを前記第２の操作コードの後続に配置し、前記第１の操作コードを特定条件に合致した時のみ実行する条件成立時実行コードに変更するという処理を施すことより、第１の中間コードを第２の中間コードに変換する条件成立時実行命令適用中間コード最適化手段と、前記第２の中間コードを機械語命令に変換する機械語命令生成手段とを備えることを特徴とするものであり、
命令列変換装置は、命令列から命令実行状態を判定する比較命令と、特定の資源に対して２つの操作を行う第１、および第２の操作命令と、前記比較命令が判定した命令実行状態が特定条件に合致する時に第１の操作命令を実行させ、合致しない時に第２の操作命令を実行させる条件付き命令とを抽出する最適化対象命令検出手段と、前記最適化対象命令検出手段が抽出した前記比較命令を、前記条件付き命令の特定条件を判定する条件付き比較命令に変更し、前記条件付き命令を削除するとともに、前記第１の操作命令を前記第２の操作命令の後続に配置し、前記第１の操作命令を特定条件に合致した時のみ実行する条件成立時実行命令に変更するという処理を施すことより、命令列を変換する条件成立時実行命令適用命令列最適化手段とを備えることを特徴とする。
【００５０】
これにより、コンパイラまたは命令列変換装置は、条件付き命令として条件に合致した時のみ実行する条件成立時実行命令のみを生成することになり、条件付き命令の数を削減することが可能になる。従って、全条件付き命令に対して１つの条件を指定するフィールドが必要となるだけなので、コードサイズの増加を抑制できる。例えば、条件付き命令が２０命令あるプロセッサでは、比較命令１０種類、条件付き命令２０種類（各条件付き命令１種類×２０命令）の合計３０命令を命令セットに割り付けるだけでよいので、割り付けるためのフィールドが少なくて済むことになり、コードサイズを削減できる。
【００５１】
またプロセッサは、条件付き命令として条件に合致した時のみ実行する条件成立時実行命令のみを解読するだけで良く、命令解読器のハードウェア量が増大せずに低コストで実現できるという効果がある。
【００５２】
以上のように本発明の技術の実用的価値は大きい。
【図面の簡単な説明】
【図１】本発明の実施の形態で生成する命令列を実行するプロセッサのブロック構成図
【図２】同実施形態におけるコンパイラの概略構成図
【図３】本発明の第１の実施形態におけるコンパイラ動作を記述したフローチャート
【図４】本発明の実施形態における比較命令、分岐命令、転送命令、および加算命令の命令仕様を示す図
【図５】同実施形態のフローチャートにおけるｃソースコード２１１に相当するＣ言語で記述されたプログラムを示す図
【図６】同実施形態のフローチャートにおける第１の中間コード２１２に相当するコードを示す図
【図７】同実施形態のフローチャートにおける第２の中間コード２１３に相当するコードを示す図
【図８】同実施形態のフローチャートにおける機械語命令２１５を示す図
【図９】本発明の第２の実施形態におけるコンパイラ動作を記述したフローチャート
【図１０】同実施形態のフローチャートにおける第１の中間コード２１２に相当するコードを示す図
【図１１】本発明の第３の実施形態におけるコンパイラ動作を記述したフローチャート
【図１２】同実施形態のフローチャートにおける第１の中間コード２１２に相当するコードを示す図
【図１３】従来のプロセッサの比較命令、条件付き加算命令、条件付き転送命令、および条件分岐命令の命令仕様の第１の従来例を示す図
【図１４】従来のプロセッサの比較命令、および条件分岐命令の命令仕様の第２の従来例を示す図
【図１５】第１、および第２の従来例より想定できるプロセッサの比較命令、条件付き加算命令、条件付き転送命令、および条件分岐命令の命令仕様の第３の従来例を示す図
【符号の説明】
１０１  演算フラグ保持手段
１０２  命令解読手段
１０３  命令実行手段
１０４  命令実行停止手段
１１１  演算フラグ状態信号
１１２  条件付き命令指示信号
１１３  命令実行停止信号
２０１  中間コード生成手段
２０２  最適化対象コード検出手段
２０３  条件成立時実行命令適用最適化手段
２０４  中間コード最適化手段
２０５  機械語命令生成手段
２１１  Ｃソースコード
２１２  第１の中間コード
２１３  第２の中間コード
２１４  第３の中間コード
２１５  機械語命令
【図１】
0003843594.tif 000002
【図２】
0003843594.tif 000003
【図３】
0003843594.tif 000004
【図４】
0003843594.tif 000005
【図５】
0003843594.tif 000006
【図６】
0003843594.tif 000007
【図７】
0003843594.tif 000008
【図８】
0003843594.tif 000009
【図９】
0003843594.tif 000010
【図１０】
0003843594.tif 000011
【図１１】
0003843594.tif 000012
【図１２】
0003843594.tif 000013
【図１３】
0003843594.tif 000014
【図１４】
0003843594.tif 000015
【図１５】
0003843594.tif 000016