(57)【要約】【課題】  ソースプログラムとオブジェクトプログラムとの乖離が大きくならないよう、コンパイラの最適化オプションの組み合せを選定するシステムを提供する。【解決手段】  ｎ個のソースファイル１００からｋ個の最適化オプションを有するコンパイラ１およびリンカ３により生成されたｎ×ｋ個の評価用オブジェクトファイル３００の１個ごとに、コードサイズ測定部５で測定されたコードサイズおよび実行時間測定部６で測定された実行時間を記録する測定値記録部７と、ｎ個のソースファイル１００から生成する実行用オブジェクトファイルのコードサイズおよび実行時間の目標値を設定する目標値設定部８と、測定値記録部７に記録された測定値と目標値設定部８により設定された目標値とを比較する比較部９と、比較部９の比較結果にもとづいてｎ個のソースファイル１００に設定する最適化オプションを選定する最適化オプション選定部１０と、を備える。【選択図】  図１
2008003840.tif 000002
【特許請求の範囲】
【請求項１】
コードサイズおよび実行時間に対する最適化オプションをｋ個有するコンパイラと、
前記コンパイラのコンパイルにより生成された複数のオブジェクトファイルをリンクして実行用オブジェクトファイルを生成するリンカと、
前記実行用オブジェクトファイルに対するコードサイズおよび実行時間の目標値を任意に設定することのできる目標値設定手段と、
前記実行用オブジェクトファイルのコードサイズを測定するコードサイズ測定手段と、
前記実行用オブジェクトファイルを実行したときの実行時間を測定する実行時間測定手段と、
ｎ個のソースファイルのそれぞれに対し、１つのソースファイルには前記最適化オプションのうちのいずれか１つを順次設定し、残りのソースファイルにはオプションを設定しないように組み合わせてコンパイルおよびリンクを実行し、最適化オプション評価用のｎ×ｋ個の評価用オブジェクトファイルとしての実行用オブジェクトファイルを生成するよう、前記コンパイラおよび前記リンカを制御する評価用オブジェクトファイル生成制御手段と、
前記ｎ×ｋ個の評価用オブジェクトファイルの１個ごとに、前記コードサイズ測定手段により測定されたコードサイズの測定値および前記実行時間測定手段により測定された実行時間の測定値を１組にして記録する測定値記録手段と、
前記測定値記録手段に記録された測定値と前記目標値設定手段により設定された目標値とを比較する比較手段と、
前記比較手段の比較結果にもとづいて前記ｎ個のソースファイルのそれぞれに設定する前記最適化オプションを選定する最適化オプション選定手段と
を備えることを特徴とするコンパイラの最適化オプション組み合せ選定システム。
【請求項２】
前記比較手段は、前記測定値と前記目標値との差を算出し、
前記最適化オプション選定手段は、前記ｎ×ｋ個の評価用オブジェクトファイルの中で前記差が最も小さい値を示す評価用オブジェクトファイルの生成に使用された前記最適化オプションを、その最適化オプションが設定されたソースファイルに対して設定するように選定することを特徴とする請求項１に記載のコンパイラの最適化オプション組み合せ選定システム。
【請求項３】
前記比較手段は、前記ｎ個のソースファイルに最適化オプションを設定しないで生成した実行用オブジェクトファイルのコードサイズに対する前記ｎ×ｋ個の評価用オブジェクトファイルのコードサイズの測定値の比をそれぞれ算出し、その比が所定の値より大きい前記評価用オブジェクトファイルのみを対象に、前記測定値と前記目標値との差を算出することを特徴とする請求項２に記載のコンパイラの最適化オプション組み合せ選定システム。
【請求項４】
前記最適化オプション選定手段が、１つのソースファイルに対しては１つの最適化オプションのみを設定することを特徴とする請求項１乃至３のいずれか１項に記載のコンパイラの最適化オプション組み合せ選定システム。
【請求項５】
前記最適化オプション選定手段が、１つのソースファイルに対して複数の最適化オプションを設定することを特徴とする請求項１乃至３のいずれか１項に記載のコンパイラの最適化オプション組み合せ選定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムのコンパイラのオプションの選定に関し、特にコンパイル時に設定する最適化オプションの組み合せを選定する、コンパイラの最適化オプション組み合せ選定システムに関する。
【背景技術】
【０００２】
マイクロコンピュータを搭載する組み込みシステムには、多機能で安価なことが求められる。そのため、マイクロコンピュータに格納されるプログラムのプログラムサイズおよび実行速度が重要となる。多機能化でプログラムサイズが大きくなると、そのプログラムの格納に必要なメモリ容量が大きくなり、組み込むシステムのコストが増大する。また、要求される実行速度を満たすために高速のマイクロコンピュータを使用すると、やはりコストが増大する。
【０００３】
そこで、このコストの増大を避けるために、コンパイラの最適化技術を用いて、プログラムサイズと実行速度に対するプログラムコードの最適化が行われる。コンパイラが行う最適化には、実行速度の向上を優先する最適化と、プログラムのコードサイズの縮小を優先する最適化の２種類がある。また、最適化の方法も複数種類あり、組み合せて使用することが可能である。そのために、コンパイラには、通常、最適化オプションと呼ばれるオプションが複数用意されており、その中から任意の最適化オプションが選択できるようにされている。
【０００４】
また、複数のソースプログラムがあって、それぞれのソースプログラムをコンパイルした複数のオブジェクトファイルをリンクして実行用のオブジェクトプログラムを生成する場合、それぞれのソースプログラムに対して異なるオプションを選択してコンパイルすることも可能である。
【０００５】
一般に、実行速度の向上を優先するとプログラムサイズは増大し、コードサイズの縮小を優先すると実行速度は低下する。そこで、実行速度とコードサイズに関してコスト評価を行い、コストが最小となるようにプログラムコードを最適化する装置が提案されている（例えば、特許文献１参照。）。
【０００６】
しかし、上述のようなコストが最小になるように最適化を行うと、コンパイル前のソースプログラムとコンパイル後のオブジェクトプログラムの間で命令の実行順序が大きく異なってくることがある。このようなソースプログラムとオブジェクトプログラムの間の乖離が大きくなると、オブジェクトプログラムの実行結果にもとづいてソースプログラムデバッグを行うときに、その両者の対応が分かりづらく、デバッグが困難になるという問題が、従来、発生していた。
【特許文献１】特開平１１−３０６０２６号公報  （第４−５ページ、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、本発明の目的は、ソースプログラムとオブジェクトプログラムとの乖離が大きくならないような最適化オプションの組み合せを選定する、コンパイラの最適化オプション組み合せ選定システムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、コードサイズおよび実行時間に対する最適化オプションをｋ個有するコンパイラと、前記コンパイラのコンパイルにより生成された複数のオブジェクトファイルをリンクして実行用オブジェクトファイルを生成するリンカと、前記実行用オブジェクトファイルに対するコードサイズおよび実行時間の目標値を任意に設定することのできる目標値設定手段と、前記実行用オブジェクトファイルのコードサイズを測定するコードサイズ測定手段と、前記実行用オブジェクトファイルを実行したときの実行時間を測定する実行時間測定手段と、ｎ個のソースファイルのそれぞれに対し、１つのソースファイルには前記最適化オプションのうちのいずれか１つを順次設定し、残りのソースファイルにはオプションを設定しないように組み合わせてコンパイルおよびリンクを実行し、最適化オプション評価用のｎ×ｋ個の評価用オブジェクトファイルとしての実行用オブジェクトファイルを生成するよう、前記コンパイラおよび前記リンカを制御する評価用オブジェクトファイル生成制御手段と、前記ｎ×ｋ個の評価用オブジェクトファイルの１個ごとに、前記コードサイズ測定手段により測定されたコードサイズの測定値および前記実行時間測定手段により測定された実行時間の測定値を１組にして記録する測定値記録手段と、前記測定値記録手段に記録された測定値と前記目標値設定手段により設定された目標値とを比較する比較手段と、前記比較手段の比較結果にもとづいて前記ｎ個のソースファイルのそれぞれに設定する前記最適化オプションを選定する最適化オプション選定手段とを備えることを特徴とするコンパイラの最適化オプション組み合せ選定システムが提供される。
【発明の効果】
【０００９】
本発明によれば、コンパイラの最適化オプションを選択する際に、ソースプログラムとオブジェクトプログラムとの乖離が大きくならないような最適化オプションの組み合せが選定されるので、オブジェクトプログラムの実行結果にもとづいたソースプログラムデバッグを容易に行うことができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施例を図面を参照して説明する。
【実施例１】
【００１１】
図１は、本発明の実施例１に係るコンパイラの最適化オプション組み合せ選定システムの構成の例を示すブロック図である。
【００１２】
本実施例のコンパイラの最適化オプション組み合せ選定システムは、ソースファイル１００のコンパイルを行うときに設定するコードサイズおよび実行時間に対する最適化オプションをｋ個有するコンパイラ１と、コンパイラ１で使用する最適化オプションを設定する最適化オプション設定部２と、コンパイラ１のコンパイルにより生成された複数のオブジェクトファイル２００をリンクして実行用オブジェクトファイルを生成するリンカ３と、最適化オプション評価用のｎ×ｋ個の評価用オブジェクトファイル３００を順次生成するようにコンパイラ１およびリンカ２を制御する評価用オブジェクトファイル生成制御部４と、ｎ×ｋ個の評価用オブジェクトファイル３００のそれぞれのファイルのコードサイズを測定するコードサイズ測定部５と、を備える。
【００１３】
このｎ×ｋ個の評価用オブジェクトファイル３００は、実行部６１および実行時間測定部６を有するデバッガ６０にロードされて、実行部６１で実行され、それぞれのファイルの実行時間が実行時間測定部６で測定される。
【００１４】
さらに、本実施例のコンパイラの最適化オプション組み合せ選定システムは、ｎ×ｋ個の評価用オブジェクトファイル３００の１個ごとに、コードサイズ測定部５で測定されたコードサイズおよび実行時間測定部６で測定された実行時間を１組にして記録する測定値記録部７と、ｎ個のソースファイル１００から生成する実行用オブジェクトファイルに対するコードサイズおよび実行時間の目標値を任意に設定することのできる目標値設定部８と、測定値記録部７に記録された測定値と目標値設定部８により設定された目標値とを比較する比較部９と、比較部９の比較結果にもとづいてｎ個のソースファイル１００のそれぞれに設定する最適化オプションを選定する最適化オプション選定部１０と、を備える。
【００１５】
評価用オブジェクトファイル生成制御部４は、ｎ個のソースファイル１００の中から１個のソースファイルを選択するソースファイル選択部４１と、ソースファイル選択部４１で選択されたソースファイルに設定する最適化オプションを最適化オプション設定部２に対して順次１つずつ指定する最適化オプション指定部４２と、リンカ３に対してリンクするオブジェクトファイル２００の組み合わせを指示するリンク指示部４３と、を有する。
【００１６】
評価用オブジェクトファイル生成制御部４に制御されて、コンパイラ１は、ソースファイル選択部４１で選択されたソースファイルに対して、最適化オプション指定部４２で指定された最適化オプションを設定してコンパイルを行う。また、リンカ３は、そのコンパイル結果を予めコンパイルされていた残りのソースファイルのコンパイル結果とリンクし、最適化オプション評価用の評価用オブジェクトファイルとしての実行用オブジェクトファイルを生成する。
【００１７】
図２に、本実施例におけるｎ×ｋ個の評価用オブジェクトファイル３００の生成手順のフローの例を示す。ここで、ｎ個のソースファイルを番号Ｎ（Ｎ＝１〜ｎ）で区別し、ｋ個の最適化オプションを番号Ｋ（Ｋ＝１〜ｋ）で区別するものとする。
【００１８】
評価用オブジェクトファイル３００の生成にあたっては、まず、最適化オプションを使用せずにｎ個のソースファイル１００全部をコンパイラ１でコンパイルし、出力されたオブジェクトファイル２００を保存する（ステップＳ０１）。
【００１９】
次に、ソースファイル選択部４１で１番目（Ｎ＝１）のソースファイルを選択する（ステップＳ０２）。
【００２０】
また、最適化オプション指定部４２で１番目（Ｋ＝１）の最適化オプションを指定する（ステップＳ０３）。
【００２１】
指定された最適化オプションを最適化オプション設定部２によりコンパイラ１に設定し、選択したソースファイルをコンパイルする（ステップＳ０４）。
【００２２】
このコンパイルで生成されたオブジェクトファイルと、ステップＳ０１で生成済みのオブジェクトファイルのうちソースファイル選択部４１で非選択のソースファイルに対するオブジェクトファイルと、をリンカ３でリンクして実行用オブジェクトファイルを生成する。これを最適化オプション評価用の評価用オブジェクトファイルの１つとする（ステップＳ０５）。
【００２３】
次に、最適化オプションの番号を１つ増加させて（Ｋ＝Ｋ＋１）、最適化オプション指定部４２は次の最適化オプションを指定する（ステップＳ０６）。
【００２４】
このとき、番号Ｋが最大値ｋ以下（Ｋ≦ｋ）であるかどうかをチェックする（ステップＳ０７）。
【００２５】
Ｋ≦ｋであれば（ＹＥＳ）、ステップＳ０４に戻り、以降のステップの処理を繰り返す。
【００２６】
Ｋ≦ｋでなければ（ＮＯ）、ソースファイルの番号を１つ増加させて（Ｎ＝Ｎ＋１）、ソースファイル選択部４１は次のソースファイルを選択する（ステップＳ０８）。
【００２７】
このとき、番号Ｎが最大値ｎ以下（Ｎ≦ｎ）であるかどうかをチェックする（ステップＳ０９）。
【００２８】
Ｎ≦ｎであれば（ＹＥＳ）、ステップＳ０３に戻り、以降のステップの処理を繰り返す。
【００２９】
Ｎ≦ｎでなければ（ＮＯ）、本フローの処理を終了する。
【００３０】
図３に、図２のフローで生成されたｎ×ｋ個の評価用オブジェクトファイル３００の各ファイルにおける最適化オプションの設定の様子を示す。
【００３１】
図３に示すように、ｎ×ｋ個の評価用オブジェクトファイル３００の各ファイルには、そのファイルを構成するソースファイルのいずれか１つに１つの最適化オプションが設定されている。
【００３２】
このｎ×ｋ個の評価用オブジェクトファイル３００に対して、コードサイズ測定部５でコードサイズを測定し、実行時間測定部６で実行時間を測定する。その結果はファイルごとに１組にされて測定値記録部７に記録される。
【００３３】
図４（ａ）に、測定値記録部７に記録された測定値データの例を示す。この測定値は、ソースファイルと最適化オプションの組み合わせの違いによる最適化の効果の違いを示す。
【００３４】
そこで、図４（ｂ）に示す、目標値設定部８で設定された目標値と、この測定値とを比較部９で比較し、その比較の結果にもとづいて、最適化オプション選定部１０は、使用する最適化オプションを選定し、その最適化オプションを設定するソースファイルを指定する。
【００３５】
図５に、本実施例における最適化オプションの選定手順のフローの例を示す。
【００３６】
最適化オプションの選定を開始すると、まず、測定値記録部７に記録された測定値と目標値設定部８で設定された目標値とを比較する（ステップＳ１１）。
【００３７】
その比較により、目標値以下の測定値があるかどうかをチェックする（ステップＳ１２）。
【００３８】
目標値以下の測定値があれば（ＹＥＳ）、その中で目標値に最も近い測定値を選択し、その測定値が記録された評価用オブジェクトファイルを測定値記録部７のデータから抽出する（ステップＳ１３）。
【００３９】
その評価用オブジェクトファイルで使用されている最適化オプションは、図３に示すように、１つであるので、その使用されている最適化オプションを最適化オプションとして選定する（ステップＳ１４）。
【００４０】
また、その最適化オプションが設定されているソースファイルも図３に示す組み合わせから特定できるので、そのソースファイルを選定した最適化オプションを設定するソースファイルとして指定する（ステップＳ１５）。このソースファイルの指定と、そのソースファイルに対する最適化オプションの選定により、コードサイズと実行時間の目標値を満たすので、本フローによる最適化オプションの選定を終了する。
【００４１】
一方、ステップＳ１２のチェックで、目標値以下の測定値がないときは（ＮＯ）、目標値との差が最も小さい測定値を選択し、その測定値が記録された評価用オブジェクトファイルを測定値記録部７のデータから抽出する（ステップＳ１６）。
【００４２】
その評価用オブジェクトファイルで使用されている最適化オプションは１つであるので、その使用されている最適化オプションを最適化オプションとして選定する（ステップＳ１７）。
【００４３】
また、その最適化オプションが設定されているソースファイルも特定できるので、そのソースファイルを選定した最適化オプションを設定するソースファイルとして指定する（ステップＳ１８）。
【００４４】
この場合、このソースファイルの指定と、そのソースファイルに対する最適化オプションの選定だけでは、コードサイズと実行時間の目標値を満たさないので、次の最適化オプションの選定を行う。このとき、本実施例では、１つのソースファイルには、１つの最適化オプションのみを設定することとして、次の最適化オプションの選定を行う。
【００４５】
そこで、ステップＳ１６で抽出した評価用オブジェクトファイル以外の評価用オブジェクトファイルの中で、ステップＳ１８で指定したソースファイルに最適化オプションを使用していない評価用オブジェクトファイルの中で、目標値との差が最も小さい測定値が記録されている評価用オブジェクトファイルを測定値記録部７のデータから抽出する（ステップＳ１９）。
【００４６】
そして、その評価用オブジェクトファイルで使用されている最適化オプションを最適化オプションとして選定する（ステップＳ２０）。
【００４７】
また、その最適化オプションが設定されているソースファイルを選定した最適化オプションを設定するソースファイルとして指定する（ステップＳ２１）。
【００４８】
これにより、目標値に最も近いコードサイズと実行時間になるように、異なるソースファイルに対してそれぞれ別の最適化オプションの選定を行うことができたので、本フローによる最適化オプションの選定を終了する。
【００４９】
このような本実施例によれば、１つのソースファイルには１つの最適化オプションのみを設定するようにして、コードサイズおよび実行時間が目標値に最も近くなるような最適化オプションの組み合わせを設定する。これにより、従来のコードサイズおよび実行時間の最小化を図る最適化に比べて、ソースプログラムとオブジェクトプログラムとの乖離を小さくすることができる。そのため、オブジェクトプログラムの実行結果にもとづいたソースプログラムデバッグを容易に行うことができる。
【実施例２】
【００５０】
一般に、最適化オプションを設定してコンパイルしたオブジェクトファイルのコードサイズが、最適化オプションを設定しないでコンパイルしたオブジェクトファイルのコードサイズに対して大きいほど、最適化オプションを設定してコンパイルしたオブジェクトファイルと元のソースファイルとの乖離は小さくなる。
【００５１】
本実施例は、この点に着目して、全ソースコードに最適化オプションを設定しないでコンパイルしたオブジェクトファイルのコードサイズに対する評価用オブジェクトファイルのコードサイズの比を求めるようにし、この比が所定値より大きい評価用オブジェクトファイルのみを最適化オプション選定の対象とするようにする。
【００５２】
そこで、本実施例では、実施例１のコンパイラの最適化オプション組み合せ選定システムに、上述のコードサイズの比を求め、この比の値に応じて評価用オブジェクトファイルを選択する手段を追加する。
【００５３】
図６は、図１に示した実施例１に対して本実施例で追加した部分を示すブロック図である。
【００５４】
本実施例のコンパイラの最適化オプション組み合せ選定システムは、ｎ個のソースファイル総てに最適化オプションを設定しないでコンパイルし、その結果をリンクした実行用オブジェクトファイルのコードサイズを基本コードサイズとして格納する基本コードサイズ格納部９１と、測定値記録部７に記録されている評価用オブジェクトファイルのコードサイズの測定値を読み出し、基本コードサイズに対する評価用オブジェクトファイルのコードサイズの測定値の比を算出するコードサイズ比算出部９２と、コードサイズ比算出部９２で算出したコードサイズ比が所定の基準値より大きいかどうかを判定する判定部９３と、測定値記録部７に記録されている測定値のうち、判定部９３でコードサイズ比が所定の基準値より大きいと判定された評価用オブジェクトファイルの測定値のみを選択して比較部９へ送出する選択部９４と、を備える。
【００５５】
本実施例の比較部９は、選択部９４から送出された測定値のみを目標値設定部８により設定された目標値と比較する。
【００５６】
本実施例における最適化オプションの選定は、実施例１と同様、図５に示すフローの手順で行う。
【００５７】
このような本実施例によれば、最適化オプションを設定しないで生成した実行用オブジェクトファイルのコードサイズに対するコードサイズの比が所定値より大きい評価用オブジェクトファイルのみを選択して最適化オプションの選定を行うので、ソースファイルとの乖離の小さなオブジェクトファイルを生成するための最適化オプションの選定を、より容易に行うことができる。
【実施例３】
【００５８】
本実施例のコンパイラの最適化オプション組み合せ選定システムのシステム構成自体は、実施例１あるいは実施例２のシステム構成と同一である。本実施例が、実施例１および実施例２と異なる点は、最適化オプション選定部１０における最適化オプションの選定アルゴリズムである。
【００５９】
実施例１および実施例２では、複数の最適化オプションを選定する必要があるときは、１つのソースファイルには１つの最適化オプションのみを設定するように、最適化オプション選定部１０が動作した。
【００６０】
これに対して、本実施例では、複数の最適化オプションを選定する必要があるときは、１つのソースファイルにのみ複数の最適化オプションを設定するように、最適化オプション選定部１０が動作する。
【００６１】
図７に、本実施例における最適化オプションの選定手順のフローの例を示す。このフローにおいて、ステップＳ０１〜Ｓ１８のフローは図５に示したフローと同じであるので、ここではその説明を省略する。以下、ステップＳ３９以降のフローを説明する。
【００６２】
図７のステップＳ１８で最適化オプションを設定するソースファイルが指定されると、そのソースファイルに最適化オプションを使用している評価用オブジェクトファイルの中で、目標値との差が、ステップＳ１６で抽出した評価用オブジェクトファイルの次に小さい測定値が記録されている評価用オブジェクトファイルを測定値記録部７のデータから抽出する（ステップＳ３９）。
【００６３】
そして、その評価用オブジェクトファイルで使用されている最適化オプションを最適化オプションとして選定する（ステップＳ４０）。
【００６４】
これにより、目標値に最も近いコードサイズと実行時間になるように、１つソースファイルに対して複数の最適化オプションの選定を行うことができたので、本フローによる最適化オプションの選定を終了する。
【００６５】
このような本実施例によれば、複数の最適化オプションの選定が必要な場合、１つのソースファイルにのみ複数の最適化オプションの設定を行う。これにより、実行用オブジェクトファイルに、ソースファイルからの乖離が仮に発生するとしても、その発生箇所を１つのソースファイルに限定することができる。すなわち、実行用オブジェクトファイル全体として見れば、ソースファイルからの乖離を局所的に抑えることができる。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施例１に係るコンパイラの最適化オプション組み合せ選定システムの構成の例を示すブロック図。
【図２】本発明の実施例１に係るコンパイラの最適化オプション組み合せ選定システムにおける評価用オブジェクトファイル生成手順の例を示すフロー図。
【図３】本発明の実施例１に係るコンパイラの最適化オプション組み合せ選定システムで使用する評価用オブジェクトファイルの最適化オプションの設定例を示す図。
【図４】図１に示す測定値記録部および目標値設定部のデータの例を示す図。
【図５】本発明の実施例１に係るコンパイラの最適化オプション組み合せ選定システムにおける最適化オプションの選定手順の例を示すフロー図。
【図６】本発明の実施例２に係るコンパイラの最適化オプション組み合せ選定システムの要部の構成の例を示すブロック図。
【図７】本発明の実施例３に係るコンパイラの最適化オプション組み合せ選定システムにおける最適化オプションの選定手順の例を示すフロー図。
【符号の説明】
【００６７】
１  コンパイラ
２  最適化オプション設定部
３  リンカ
４  評価用オブジェクトファイル生成制御部
５  コードサイズ測定部
６  実行時間測定部
７  測定値記録部
８  目標値設定部
９  比較部
１０  最適化オプション選定部
４１  ソースファイル選択部
４２  最適化オプション指定部
４３  リンク指示部
９１  基本コードサイズ格納部
９２  コードサイズ比算出部
９３  判定部
９４選択部
【図１】
2008003840.tif 000003
【図２】
2008003840.tif 000004
【図３】
2008003840.tif 000005
【図４】
2008003840.tif 000006
【図５】
2008003840.tif 000007
【図６】
2008003840.tif 000008
【図７】
2008003840.tif 000009