(57)【要約】【課題】ソースコードの内容を簡単かつ容易に理解すること。【解決手段】ソースコードに記述されている計算式から当該計算式を構成する変数を検出する検出部５０１と、検出部５０１によって検出された変数を定義する要素名をソースコードの中から抽出する要素名抽出部５２１と、要素名抽出部５２１によって抽出された要素名を、所定の言語において要素名が意味する名称に変換する変換部５０４と、変換部５０４によって変換された名称を出力する出力部５０６と、を備える。これにより、ソースコードの中に記述された計算式の中の変数を所定の言語に変換することができる。【選択図】        図５
2006252201.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードに記述されている計算式から当該計算式を構成する変数を検出させる検出工程と、
前記検出工程によって検出された変数を定義する要素名を前記ソースコードの中から抽出させる要素名抽出工程と、
前記要素名抽出工程によって抽出された要素名を、所定の言語において当該要素名が意味する名称に変換させる変換工程と、
前記変換工程によって変換された名称を出力させる出力工程と、
をコンピュータに実行させることを特徴とするソースコード解析プログラム。
【請求項２】
さらに、前記要素名抽出工程によって抽出された要素名に関するコンテキストを前記ソースコードの中から抽出させるコンテキスト抽出工程をコンピュータに実行させ、
前記変換工程は、
さらに、前記コンテキスト抽出工程によって抽出されたコンテキストを、前記所定の言語において当該コンテキストが意味する名称に変換させることをコンピュータに実行させることを特徴とする請求項１に記載のソースコード解析プログラム。
【請求項３】
前記要素名抽出工程によって抽出された要素名に関するコンテキストが前記ソースコードに記述されているか否かを判断させる判断工程をコンピュータに実行させ、
前記コンテキスト抽出工程は、
前記判断工程によって判断された判断結果に基づいて、前記要素名抽出工程によって抽出された要素名に関するコンテキストを前記ソースコードの中から抽出させることをコンピュータに実行させることを特徴とする請求項１または２に記載のソースコード解析プログラム。
【請求項４】
前記出力工程は、
前記変換工程によって変換された名称を、当該名称の変換元となる要素名に定義されている変数と関連付けて出力させることをコンピュータに実行させることを特徴とする請求項１〜３のいずれか一つに記載のソースコード解析プログラム。
【請求項５】
前記計算式を構成する変数を、当該変数を定義している要素名から前記変換工程によって変換された名称に置換させる置換工程をコンピュータに実行させ、
前記出力工程は、
前記置換工程によって名称に置換された計算式を出力させることをコンピュータに実行させることを特徴とする請求項１〜４のいずれか一つに記載のソースコード解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソースコードに記述された計算式を所定の言語に変換するソースコード解析プログラムに関する。
【背景技術】
【０００２】
近年の経済活動を支える中心となっているのは企業であり、その企業の状態を知るためには、企業の財務情報が重要な手がかりとなる。株式会社では財務情報の公開が法律によって義務付けられており、その公開された財務情報によって企業の状態を知ることができる。そのため、詳細な財務情報の公開が望まれる。
【０００３】
また、財務情報をインターネットなど情報技術を用いて公開する方法としてＸＭＬ技術をベースとしたＸＢＲＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｂｕｓｉｎｅｓｓ  Ｒｅｐｏｒｔｉｎｇ  Ｌａｎｇｕａｇｅ）が注目を集めている。ＸＢＲＬは、損益決算書や、賃貸対照表などの財務情報に関する報告書などを電子化して記述するために使用される言語である。
【０００４】
財務情報の管理には、主に財務情報を管理するアプリケーションを用いておこなっているのが一般的である。これらのアプリケーションは、たとえば、いくつかの項目に対して数値などの入力をおこなうと、入力された数値を計算した結果が出力される。しかし、コンピュータ内部において、どのような計算あるいは処理をおこなって出力されたかを詳細に調べるために、プログラムの内容を参照する必要性が生じる。
【０００５】
一般に、プログラム言語によって記述されたソースコードの内容の理解を助けるために、ソースコード中にはコメント文が含まれている。このコメント文には、プログラムの処理の内容についての説明が記述されており、ソースコード中に含まれるコメント文を抽出することによって、プログラムの処理の内容についての説明を得ることができる。
【０００６】
そこで、ソースコード中に含まれるコメント文を抽出することにより、プログラムの仕様書を作成することができる。そのため、ソースコード中に含まれるコメント文が多いほど、ユーザにとってわかり易い仕様書が作成される。
【０００７】
従来技術では、ソースコード中にコメント文が不足している箇所に対して、コメントキーワードを含んだコメント文を挿入することができ、このコメント文を挿入した上で、ソースコード中からコメント文を抽出して仕様書を作成する技術が知られている（たとえば、下記特許文献１参照。）。
【０００８】
また、プログラム仕様書やその他のドキュメントを生成することができ、さらにプログラムに変更が生じた場合にプログラムの変更理由、システム構成あるいはプログラムの変更箇所などからなるソースプログラムの変更情報を変更後のプログラム仕様書として作成する技術が知られている（たとえば、下記特許文献２参照。）。
【０００９】
【特許文献１】特開２００２−１６９６９２号公報
【特許文献２】特開２００２−３６６３５４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述した従来技術では、ソースコードはＸＢＲＬという特殊なプログラム言語により記述されている。したがって、財務情報に精通している専門家であっても、このプログラム言語に長けていない場合は、ソースコードの記述から具体的な財務内容を理解することができないという問題があった。これにより、財務情報が実質的に開示されず、依然として企業の経営実態が不透明なままであるという問題があった。
【００１１】
また、上述した財務情報に精通している専門家が、ＸＢＲＬに関する知識をある程度有していても、ソースコードの記述の量が膨大である。したがって、膨大なソースコードの記述から具体的な財務内容を理解するには多大な労力が必要となり、財務内容の理解に困難が生じるという問題があった。
【００１２】
この発明は、上述した従来技術による問題点を解消するため、ソースコードの内容を簡単かつ容易に理解することができるソースコード解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、この発明にかかるソースコード解析プログラムは、ソースコードに記述されている計算式から当該計算式を構成する変数を検出させ、検出された変数を定義する要素名を前記ソースコードの中から抽出させ、抽出された要素名を、所定の言語において当該要素名が意味する名称に変換させ、変換された名称を出力させることをコンピュータに実行させることを特徴とする。
【００１４】
また、上記発明において、抽出された要素名に関するコンテキストを前記ソースコードの中から抽出させ、抽出されたコンテキストを、前記所定の言語において当該コンテキストが意味する名称に変換させることをコンピュータに実行させることとしてもよい。
【００１５】
また、上記発明において、抽出された要素名に関するコンテキストが前記ソースコードに記述されているか否かを判断させ、判断された判断結果に基づいて、前記要素名抽出工程によって抽出された要素名に関するコンテキストを前記ソースコードの中から抽出させることをコンピュータに実行させることとしてもよい。
【００１６】
また、上記発明において、変換された名称を、当該名称の変換元となる要素名に定義されている変数と関連付けて出力させることをコンピュータに実行させることとしてもよい。
【００１７】
また、上記発明において、前記計算式を構成する変数を、当該変数を定義している要素名から前記変換工程によって変換された名称に置換させ、置換された計算式を出力させることをコンピュータに実行させることとしてもよい。
【００１８】
また、上記発明において、前記計算式を構成する演算子を検出させ、検出された演算子を、前記所定の言語において当該演算子が意味する用語に変換させることをコンピュータに実行させることとしてもよい。
【００１９】
また、上記発明において、前記計算式から任意の２つの変数間の演算子がすべて同一となる箇所を検出させ、検出された箇所を、前記所定の言語において当該箇所が意味する文章に変換させることをコンピュータに実行させることとしてもよい。
【００２０】
これらの発明によれば、ソースコードの中に記述された計算式の中の変数、演算子を所定の言語に変換することができる。
【００２１】
また、この発明にかかるソースコード解析プログラムは、ソースコードで定義される任意の変数を所定の言語であらわした文字列を含む計算式の入力を受け付けさせ、入力された計算式の中から、前記文字列を抽出させ、抽出された文字列を、当該文字列が意味する要素名に変換させることをコンピュータに実行させることを特徴とする。
【００２２】
また、上記発明において、前記計算式の中から、前記計算式の演算子を所定の言語であらわした前記演算子に関する文字列を抽出させ、抽出された前記演算子に関する文字列を、当該文字列が意味する演算子に変換させることをコンピュータに実行させることとしてもよい。
【００２３】
これらの発明によれば、ソースコードに記述されている計算式を編集する際に、所定の言語を用いて編集することができる。
【発明の効果】
【００２４】
本発明にかかるソースコード解析プログラムによれば、ソースコードの内容を簡単かつ容易に理解することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２５】
以下に添付図面を参照して、この発明にかかるソースコード解析プログラムの好適な実施の形態を詳細に説明する。
【００２６】
（実施の形態１）
（ソースコード解析装置のハードウェア構成）
まず、この発明の実施の形態１にかかるソースコード解析装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかるソースコード解析装置のハードウェア構成を示すブロック図である。
【００２７】
図１において、ソースコード解析装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００２８】
ここで、ＣＰＵ１０１は、ソースコード解析装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００２９】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータをソースコード解析装置に読み取らせたりする。
【００３０】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３１】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３２】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３３】
スキャナ１１２は、画像を光学的に読み取り、ソースコード解析装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３４】
つぎに、この発明の実施の形態にかかるソースコード解析装置が解析するソースコードについて説明する。図２は、この発明の実施の形態１にかかるソースコード解析装置が解析するソースコードの一例を示す説明図である。図２において、ソースコード２００とは、プログラム言語を用いて記述したソフトウェアのプログラムであり、たとえば、Ｃ言語あるいはＪａｖａ（登録商標）などのプログラム言語によって記述される。
【００３５】
また、ソースコード２００中の符号２０１に示される行には、計算式が記述されている。具体的には、たとえば、「＄Ａ−＄Ｂ＝＄Ｃ」が、このプログラムによって計算される計算式を示している。この計算式を定義するための仕様としてＦｏｒｍｕｌａ  Ｌｉｎｋｂａｓｅという仕様が規定されている。Ｆｏｒｍｕｌａ  Ｌｉｎｋｂａｓｅという仕様では、計算式は変数を用いた式であらわされる。また、図中の符号２０２〜２０４に示す行には、それぞれ計算式の変数と、その変数を定義する要素名が記述されている。
【００３６】
具体的には、たとえば、行２０２には、変数「Ａ」と、その変数「Ａ」を定義する要素名「Ｓａｌｅｓ」が示されている。また、行２０３には、変数「Ｂ」と、その変数「Ｂ」を定義する要素名「ＣｏｓｔＯｆＳａｌｅｓ」が示されている。また、行２０４には、変数「Ｃ」と、その変数「Ｃ」を定義する要素名「ＧｒｏｓｓＰｒｏｆｉｔ」が示されている。これらの要素名は、後述するタクソノミによってその要素名が意味する名称（ラベル名）と対応している。
【００３７】
つぎに、この発明の実施の形態にかかるソースコード解析装置が解析するコンテキストを含むソースコードについて説明する。図３は、この発明の実施の形態１にかかるソースコード解析装置が解析するコンテキストを含むソースコードを示す説明図である。図３において、ソースコード３００中の計算式、変数および要素名については、上述した説明と重複するため省略する。符号３０１に示される行には、変数「Ｅ」と、その変数「Ｅ」に対して指定されたコンテキストの制限情報が記述されている。このコンテキストの制限情報は、変数をラベル名に変換する際にラベル名に対してコンテキストの制限情報を付加して変換される。
【００３８】
つぎに、この発明の実施の形態にかかる、財務情報に含まれる科目を定義したタクソノミについて説明する。図４は、この発明の実施の形態１にかかる、財務情報に含まれる科目を定義したタクソノミを示す説明図である。タクソノミとは、一般的には「分類法」と言う意味であるが、ここでは、ＸＢＲＬという仕様で記述された文書の項目や構成などを定義する。
【００３９】
また、科目とは「売上高」あるいは「売上総利益」などの計算の対象となる情報のことをいう。図４では、ソースコードに含まれている要素名４０１に対応する名称（ラベル名）４０２を示している。具体的には、たとえば、要素名「Ｓａｌｅｓ」に対しては、名称（ラベル名）「売上高」が定義されている。また、図４では、各名称（ラベル名）は日本語により定義されているが、定義される言語は日本語以外の言語であってもよい。
【００４０】
（ソースコード解析装置の機能的構成）
つぎに、この発明の実施の形態１にかかるソースコード解析装置の機能的構成について説明する。図５は、この発明の実施の形態１にかかるソースコード解析装置の機能的構成を示すブロック図である。図５において、ソースコード解析装置５００は、検出部５０１と、抽出部５０２と、判断部５０３と、変換部５０４と、置換部５０５と、出力部５０６とを備えている。また、抽出部５０２は、要素名抽出部５２１と、コンテキスト抽出部５２２により構成されている。また、ソースコード解析装置５００は、ソースコード５１０およびテーブル５１１を参照する。なお、ソースコード５１０は、上述したソースコード２００であってもよく、またソースコード３００であってもよい。
【００４１】
まず、検出部５０１は、ソースコード５１０に記述されている計算式からその計算式を構成する変数および演算子を検出する。ここで、演算子とは、計算式中において演算処理をするための記号のことであり、具体的には、たとえば、「＋」、「−」、「×」、「÷」、「＝」、「≦」などが該当する。
【００４２】
ここで、ソースコード２００から変数および演算子を検出した結果について説明する。図６は、図２に示したソースコード２００から変数および演算子を検出した検出結果を示す説明図である。図６において、図２に示したソースコード２００に記述されている計算式から、計算式６０１の全体を検出し、その計算式６０１を構成している変数および要素を検出する。具体的には、たとえば、計算式６０１から、変数「Ａ」、演算子「−」、変数「Ｂ」、演算子「＝」および変数「Ｃ」を検出する。
【００４３】
また、図７は、図３に示したソースコード３００から変数および演算子を検出した検出結果を示す説明図である。図７において、計算式７０１を構成している変数および要素を検出する。具体的には、たとえば、計算式７０１から、変数「Ｄ」、演算子「＞＝（≧）」、および変数「Ｅ」を検出する。
【００４４】
また、図５において、検出部５０１は、任意の２つの変数間の演算子がすべて同一の箇所を検出することもできる。たとえば、ここで、説明に用いる計算式として「Ａ＋Ｂ＋Ｃ−Ｄ×Ｅ−Ｆ＋Ｇ＋Ｈ＝Ｉ」を例として説明する。この計算式は、アルファベットＡ〜Ｉの９つの変数によって構成されており、「＝」によって左辺と右辺に分けられている。また、変数に演算子が付されていない場合には、その変数に付されている演算子（その変数の符号）は「＋」である。具体的には、たとえば、変数「Ａ」および変数「Ｉ」の演算子（符号）は「＋」である。
【００４５】
また、この場合の判別は、その同一の箇所の先頭の変数に付されている演算子（その変数の符号）も考慮される。具体的には、たとえば、アルファベットＡ〜Ｈによって構成されている左辺では、２つの変数Ａ〜Ｃ間およびＦ〜Ｈ間の演算子がすべて「＋」を示している。変数「Ａ」の符号は「＋」なので、変数Ａ〜Ｃ間は「任意の２つの変数間の演算子がすべて同一の箇所」に該当する。
【００４６】
なお、変数「Ｆ」の演算子は「−」であるため、変数Ｆ〜Ｈ間は「任意の２つの変数間の演算子がすべて同一の箇所」に該当しない。また、検出部５０１は、具体的には、たとえば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などの記録媒体に記録されているプログラムを、ＣＰＵ１０１に実行させることによってその機能を実現する。
【００４７】
また、要素名抽出部５２１は、検出部５０１によって検出された変数を定義する要素名をソースコード５１０の中から抽出する。ここで、要素名抽出部５２１による抽出結果について説明する。図８は、要素名抽出部による抽出結果を示す説明図である。この図８に示した抽出結果をテーブル８００は、コンテキストを含まないソースコード５１０の中から要素名を抽出した結果を示している。具体的には、たとえば、図２に示した変数「Ａ」、それを定義する要素名「Ｓａｌｅｓ」、変数「Ｂ」、それを定義する要素名「ＣｏｓｔＯｆＳａｌｅｓ」、変数「Ｃ」、それを定義する要素名「ＧｒｏｓｓＰｒｏｆｉｔ」を抽出する。
【００４８】
判断部５０３は、要素名抽出部５２１によって抽出された要素名に関するコンテキストがソースコード５１０に記述されているか否かを判断する。具体的には、たとえば、図３に示したソースコード３００中に、行３０１に示す「ｒｅｌａｔｉｖｅＣｏｎｔｅｘｔ＝」が含まれている場合に、要素名に関するコンテキストが含まれていると判断する。
【００４９】
コンテキスト抽出部５２２は、要素名抽出部５２１によって抽出された要素名に関するコンテキストをソースコード５１０の中から抽出する。また、コンテキスト抽出部５２２は、判断部５０３によって判断された判断結果に基づいて、要素名抽出部５２１によって抽出された要素名に関するコンテキストをソースコード５１０の中から抽出する。
【００５０】
具体的には、たとえば、図３のソースコード３００に示す行３０１において、変数「Ｅ」を定義する要素名「Ｓａｌｅｓ」に関するコンテキストを抽出する。このコンテキスト抽出部５２２は、具体的には、たとえば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などの記録媒体に記録されているプログラムを、ＣＰＵ１０１に実行させることによってその機能を実現する。
【００５１】
ここで、コンテキストを含むソースコード５１０の中から要素名およびコンテキストを抽出した結果を示す。図９は、コンテキストを含むソースコード５１０の中から要素名およびコンテキストを抽出した結果を示す説明図である。ソースコード５１０の中にコンテキストを含んでいる場合には、そのコンテキストも抽出する。具体的には、たとえば、図３に示した変数「Ｄ」を定義する要素名「Ｓａｌｅｓ」、変数「Ｅ」を定義する「Ｓａｌｅｓ」および変数「Ｅ」に関するコンテキストを抽出する。このコンテキストは、「Ｄの３ヶ月前」という情報を含んでいる。
【００５２】
図５の説明に戻り、変換部５０４は、要素名抽出部５２１によって抽出された要素名を、所定の言語においてその要素名が意味する名称に変換する。ここで、要素名が意味する名称とは、テーブル５１１に記述されている要素名に対応している名称（ラベル名）をいう。具体的には、たとえば、図４において要素名「Ｓａｌｅｓ」は名称（ラベル名）「売上高」のことをいう。
【００５３】
また、変換部５０４は、コンテキスト抽出部５２２によって抽出されたコンテキストを、所定の言語において、それらの要素名およびコンテキストが意味する名称に変換する。コンテキストが含まれている場合には、そのコンテキストが指定する変数の前にそのコンテキストが意味する「名称」をその要素名が意味する名称の前に付加する。
【００５４】
具体的には、たとえば、任意の変数を定義する要素名を意味する名称が「売上高」であり、その任意の変数にコンテキストが指定されている場合に、そのコンテキストが意味する名称が「３ヶ月前」であるとすると、その「３ヶ月前」を「売上高」の前に付けて、「３ヶ月前売上高」あるいは「３ヶ月前の売上高」に変換される。
【００５５】
また、変換部５０４は、検出部５０１によって検出された演算子を所定の言語において、その演算子が意味する用語に変換する。ここで、演算子が意味する用語について説明する。図１０は、計算式と生成される文章の関係を示す説明図である。図１０に示すテーブル１０００を参照して変換を実行する。
【００５６】
具体的には、たとえば、「Ａ＋Ｂ」は、「Ａ足すＢ」に変換される。演算子を文章に変換する場合に、四則演算の変換に関しては、上述したようにテーブルを参照して式自体を文章に変換してもよく、また、単に「＋」は「足す」のように、演算子のみを変換しても同じ結果が得られる。
【００５７】
つぎに、等号「＝」あるいは不等号（たとえば、「≦」）の変換の方法について説明する。図１１は、等号の変換方法の一例を示す説明図である。図１１において、計算式１１００は、変数「Ａ」、「Ｂ」、「Ｃ」および「Ｄ」、演算子「＋」、「−」、「＝」によって構成されている。計算式１１００のように等号を含む場合には、まず計算式１１００を左辺１１０１および右辺１１０２に分ける。また、ここでは、説明の便宜上左辺１１０１を「Ｘ」、右辺１１０２を「Ｙ」とおき、Ｘ＝Ｙとしておく。
【００５８】
そして、まず左辺（Ｘ）１１０１について解析をおこない、左辺（Ｘ）１１０１の式中の演算子を、その演算子の意味する用語に置き換えた文章を生成する。具体的には、たとえば、左辺（Ｘ）は、「Ａ足すＢ引くＣ」という文章が生成される。つぎに、右辺（Ｙ）について解析をおこなうが、右辺（Ｙ）は変数「Ｄ」のみのため、文章は生成されない。
【００５９】
両辺に対して文章の生成をしたら、つぎに、生成された文章の変換をおこなう。まず、図１０のテーブルを参照してＸ＝Ｙを「ＸとＹは等しい」と変換する。そして左辺（Ｘ）１１０１および右辺（Ｙ）１１０２について生成した文章をそれぞれ置換する。具体的には、たとえば、「Ａ足すＢ引くＣとＤは等しい」という文章に変換される。ここでは、等号の変換方法を例にとって説明したが、不等号を式に含む場合も同様の方法で変換することができる。
【００６０】
また、変換部５０４は、検出部５０１によって検出された任意の２つの変数間の演算子がすべて同一の箇所の計算式を所定の言語においてその箇所に記載された計算式が意味する文章に変換する。
【００６１】
ここで、任意の２つの変数間の演算子がすべて同一の箇所を計算式が意味する文章に変換する方法について説明する。図１２および図１３は、任意の２つの変数間の演算子がすべて同一の箇所を計算式が意味する文章に変換する方法の一例を示す説明図である。「任意の２つの変数間の演算子がすべて同一の箇所」とは、上述した「Ａ＋Ｂ＋Ｃ」が該当する。この箇所を図１０のテーブルを用いて変換すると図１２に示すように「＋」はそれぞれ「足す」に変換され、「Ａ足すＢ足すＣ」となる。
【００６２】
また、このような３つ以上の連続した加算に対しては図１３に示すように「ＡとＢとＣの合計」あるいは「Ａ、ＢおよびＣの合計」という表現に変換することもできる。変換の方法は、具体的には、たとえば、計算式に含まれる「＋」を文字「と」に変換する。そして、最後の変数（項目）の後ろに「の合計」を追加する。
【００６３】
図５の説明に戻り、所定の言語とは、日本語には限定されずテーブルによって要素名に対応させて定義されている言語を意味する。変換部５０４は、具体的には、たとえば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などの記録媒体に記録されているプログラムを、ＣＰＵ１０１に実行させることによってその機能を実現する。
【００６４】
置換部５０５は、計算式を構成する変数を、その変数が定義している要素名から変換部５０４によって変換された名称に置換する。具体的には、たとえば、計算式が変数を用いて「＄Ａ−＄Ｂ＝＄Ｃ」記述されており、変数Ａが「売上高」、変数Ｂが「売上原価」、変数Ｃが「売上総利益」に変換された場合に、「売上高−売上原価＝売上総利益」と置換する。
【００６５】
出力部５０６は、変換部５０４によって変換された名称を出力する。また、出力部５０５０６は、変換部５０４によって変換名称を、その名称の変換元となる要素名に定義されている変数と関連付けて出力する。また、出力部５０６は、置換部５０５によって名称に置換された計算式を出力する。出力される名称、変数、計算式などは、図１に示したディスプレイ１０１に表示出力してもよく、音声出力してもよい。出力部５０６は、具体的には、たとえば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などの記録媒体に記録されているプログラムを、ＣＰＵ１０１に実行させることによってその機能を実現する。
【００６６】
つぎに、上述したラベル名と、そのラベル名に対応する変数に関する情報に基づいて、ソースコードの計算式に変更が生じた場合にソースコードを変更する例について述べる。図１４は、計算式に変更が生じた場合にソースコードを変更する例を示す説明図である。
【００６７】
図１４において、テーブル１４０１は、ラベル名と、そのラベル名に対応する変数の関係を示している。テーブル１４０２は、説明情報１４０３と、その説明情報１４０３の構成要素を示している。ここでは、説明情報１４０３のラベル名「売上高」が「売上原価」という文字列に変更された場合を例として説明する。
【００６８】
ラベル名「売上高」が「売上原価」という文字列に変更されると、図４に示したタクソノミを参照して、「売上原価」というラベル名は要素「ＣｏｓｔＯｆＳａｌｅｓ」に対応していることが分かる。そして、テーブル１４０１により、ラベル名「売上高」に対応する変数は「Ａ」であることが分かるので、変数Ａを定義する要素名「Ｓａｌｅｓ」を要素名「ＣｏｓｔＯｆＳａｌｅｓ」に変換する。
【００６９】
（ソースコード解析処理手順）
つぎに、この発明の実施の形態にかかるソースコード解析処理手順（その１）について説明する。図１５は、この発明の実施の形態１にかかるソースコード解析処理手順（その１）を示すフローチャートである。
【００７０】
図１５において、まず、ソースコード５１０を取得する（ステップＳ１５０１）。そして、取得したソースコード５１０に計算式が記述されているかを判断する（ステップＳ１５０２）。計算式が記述されていない場合には（ステップＳ１５０２：Ｎｏ）、変換する対象が存在しないため、一連の処理を終了する。一方、計算式が記述されている場合には（ステップＳ１５０２：Ｙｅｓ）、ソースコード５１０に含まれている変数を検出する（ステップＳ１５０３）。
【００７１】
そして、ステップＳ１５０３で検出された変数を定義する要素名を、ソースコード５１０から抽出する（ステップＳ１５０４）。そして、要素名にコンテキストが含まれているかを判断する（ステップＳ１５０５）。コンテキストが含まれていない場合には（ステップＳ１５０５：Ｎｏ）、ステップＳ１５０７に移行する。一方、コンテキストが含まれている場合には（ステップＳ１５０５：Ｙｅｓ）、要素名に含まれているコンテキストを、ソースコード５１０から抽出する（ステップＳ１５０６）。
【００７２】
そして、ステップＳ１５０４、ステップＳ１５０６で抽出された要素名およびコンテキストを、それらが意味する名称に変換する（ステップＳ１５０７）。つぎに、未検出の変数があるかどうかを判断する（ステップＳ１５０８）。未検出の変数がある場合には（ステップＳ１５０８：Ｙｅｓ）、ステップＳ１５０３に移行して、未検出の変数を検出する。未検出の変数がない場合には（ステップＳ１５０８：Ｎｏ）、ステップＳ１５０７で変換された名称を出力する（ステップＳ１５０９）。これにより、一連の処理を終了する。
【００７３】
この図１５に示したソースコード解析処理手順によれば、ソースコードの中に記述された計算式の中の変数を所定の言語に変換することができる。そのため、ソースコードの内容を簡単かつ容易に理解することができる。
【００７４】
つぎに、この発明の実施の形態にかかるソースコード解析処理手順（その２）について説明する。図１６は、この発明の実施の形態１にかかるソースコード解析処理手順（その２）を示すフローチャートである。その１では要素名とコンテキストを変換する場合であったが、その２では要素名、コンテキスト、および演算子も変換する場合である。
【００７５】
図１６において、まず、ソースコード５１０を取得する（ステップＳ１６０１）。そして、取得したソースコード５１０に計算式が記述されているかを判断する（ステップＳ１６０２）。計算式が記述されていない場合には（ステップＳ１６０２：Ｎｏ）、変換する対象が存在しないため、一連の処理を終了する。一方、計算式が記述されている場合には（ステップＳ１６０２：Ｙｅｓ）、ソースコード５１０に含まれている変数と演算子を検出する（ステップＳ１６０３）。
【００７６】
ステップＳ１６０３で検出された変数と演算子を、その変数を定義する要素名を抽出する（ステップＳ１６０４）。そして、ソースコード５１０に記載されている計算式の左辺に演算子が含まれているかを判断する（ステップＳ１６０５）。左辺に演算子が含まれていない場合には（ステップＳ１６０５：Ｎｏ）、ステップＳ１６０９に移行する。一方、演算子が含まれている場合には（ステップＳ１６０５：Ｙｅｓ）、左辺を解析する（ステップＳ１６０６）。
【００７７】
そして、ステップ１６０６で解析された結果に基づいて、同一演算子が３つ以上連続する箇所があるかを判断する（ステップＳ１６０７）。その箇所がない場合には（ステップＳ１６０７：Ｎｏ）、ステップＳ１６０９に移行する。一方、同一演算子が３つ以上連続する箇所がある場合には（ステップＳ１６０７：Ｙｅｓ）、その箇所に記載された計算式が意味する文章に変換する（ステップＳ１６０８）。
【００７８】
つぎに、右辺に対して左辺についておこなった処理と同様の処理をおこなう。ソースコード５１０に記載されている計算式の右辺に演算子が含まれているかを判断する（ステップＳ１６０９）。右辺に演算子が含まれていない場合には（ステップＳ１６０９：Ｎｏ）、ステップＳ１６１３に移行する。一方、演算子が含まれている場合には（ステップＳ１６０９：Ｙｅｓ）、右辺を解析する（ステップＳ１６１０）。
【００７９】
そして、ステップＳ１６１０で右辺を解析した結果に基づいて、同一演算子が３つ以上連続する箇所があるかを判断する（ステップＳ１６１１）。その箇所がない場合には（ステップＳ１６１１：Ｎｏ）、ステップＳ１６１３に移行する。一方、同一演算子が３つ以上連続する箇所がある場合には（ステップＳ１６１１：Ｙｅｓ）、その箇所に記載された計算式が意味する文章に変換する（ステップＳ１６１２）。
【００８０】
そして、抽出した要素名、上述した各ステップで処理されずに残っている演算子などをその要素名あるいは演算しなどが意味する名称、文章に変換し（ステップＳ１６１３）、変換された説明文を出力する（ステップＳ１６１４）。これにより、一連の処理を終了する。
【００８１】
以上説明したように実施の形態１によれば、ソースコードの中に記述された計算式の中の変数、演算子を所定の言語に変換することができる。そのため、ソースコードの内容を簡単かつ容易に理解することができる。
【００８２】
（実施の形態２）
つぎに、この発明の実施の形態２にかかるソースコード解析装置について説明する。実施の形態１ではソースコードに記述された計算式の変数、演算子を所定の言語に記述するものであったが、実施の形態２では、計算式を説明する文字列を変数、演算子に変換して計算式を編集することができる。なお、この発明の実施の形態２にかかるソースコード解析装置のハードウェア構成は実施の形態１と同一であるため、その説明を省略する。
【００８３】
（ソースコード解析装置の機能的構成）
まず、この発明の実施の形態２にかかるソースコード解析装置の機能的構成について説明する。図１７は、この発明の実施の形態２にかかるソースコード解析装置の機能的構成を示すブロック図である。図１７において、ソースコード解析装置１７００は、入力部１７０１と、抽出部１７０２と、変換部１７０３と、を備えている。また、抽出部１７０２は、テーブル１７０４を参照する。
【００８４】
入力部１７０１は、ソースコードで定義される任意の変数を所定の言語であらわした文字列を含む計算式の入力を受け付ける。具体的には、たとえば、「売上高−売上原価＝売上総利益」のように単語と演算子を、また、「売上高引く売上原価は、売上総利益に等しい」のように演算子の部分をその演算子が意味する用語に置き換えた文章を入力してもよい。この入力部１７０１は、具体的には、たとえば、図１に示したキーボード１１０、マウス１１１などによりその機能を実現する。
【００８５】
抽出部１７０２は、入力部１７０１によって入力された計算式の中から、文字列を抽出する。具体的には、図４で示したタクソノミを定義したテーブルを参照して、名称（ラベル名）と同一の単語を抽出する。たとえば、「売上高−売上原価＝売上総利益」という文字列が入力された場合には、図４に示すテーブルを参照して「売上高」、「売上原価」、「売上総利益」という単語を抽出する。
【００８６】
また、抽出部１７０２は、計算式の中から、その計算式の演算子を所定の言語であらわした演算子に関する文字列を抽出する。入力された文字列に演算子が含まれていない場合には、図１０に示すテーブル１０００を参照して、その演算子に対応する単語を抽出する。具体的には、たとえば、「売上高引く売上原価は、売り上げ総利益に等しい」が入力された場合には、まず、図４のテーブルを参照して「売上高」、「売上原価」、「売上総利益」が抽出される。
【００８７】
さらに、図１０のテーブル１０００を参照して、「引く」、「は、に等しい」が抽出される。この抽出部１７０２は、具体的には、たとえば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などの記録媒体に記録されているプログラムを、ＣＰＵ１０１に実行させることによってその機能を実現する。
【００８８】
変換部１７０３は、抽出部１７０２によって抽出された文字列を、その文字列が意味する要素名に変換する。具体的には、抽出部１７０２よって抽出された文字列を図４に示すテーブルを参照して変換する。たとえば、抽出部１７０２によって抽出された名称（ラベル名）「売上高」は、図４を参照して、「売上高」が意味している要素名「Ｓａｌｅｓ」に変換される。
【００８９】
また、変換部１７０３は、さらに、抽出部１７０２によって抽出された演算子に関する文字列を、その文字列が意味する演算子に変換する。具体的には、たとえば、「引く」、「は、に等しい」のような演算子に対応する単文字列が抽出された場合には、図１０に示すテーブル１０００を参照して「引く」は演算子「−」に、「は、に等しい」は演算子「＝」に変換される。この変換部１７０３は、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などの記録媒体に記録されているプログラムを、ＣＰＵ１０１に実行させることによってその機能を実現する。
【００９０】
（ソースコード解析処理手順）
つぎに、この発明の実施の形態２にかかるソースコード解析処理手順について説明する。図１８は、この発明の実施の形態２にかかるソースコード解析処理手順を示すフローチャートである。
【００９１】
図１８において、まず、計算式に関する文字列の入力を受け付ける（ステップＳ１８０１）。そして、入力された文字列の中にテーブル１７０４に記述されている文字列を含むかを判断する（ステップＳ１８０２）。テーブル１７０４に記述されている文字列を含まない場合には（ステップＳ１８０２：Ｎｏ）、変換する対象がないとして、一連の処理を終了する。一方、テーブル１７０４に記述されている文字列を含む場合には（ステップＳ１８０２：Ｙｅｓ）、入力された計算式の中から、文字列を抽出する（ステップＳ１８０３）。
【００９２】
そして、計算式の中に演算子を含んでいるかを判断する（ステップＳ１８０４）。計算式の中に文字列を含んでいる場合には（ステップＳ１８０４：Ｙｅｓ）、ステップＳ１８０６に移行する。一方演算子を含んでいない場合には（ステップＳ１８０４：Ｎｏ）、文字列から演算子を所定の言語で記述した文字列を抽出する（ステップＳ１８０５）。そして、抽出した文字列をその文字列が意味する要素名、演算子に変換する（ステップＳ１８０６）。これにより、一連の処理を終了する。
【００９３】
以上説明したように実施の形態２によれば、計算式を説明する文字列を変数、演算子に変換して計算式を編集することができる。そのため、計算式に変更が生じた場合でも、所定の言語を用いて変更をおこなうことができる。
【００９４】
以上説明したように、ソースコード解析プログラムによれば、ソースコードに記述された計算式を所定の言語に変換することができる。そのため、複雑な計算式であっても理解しやすい表現にすることができる。
【００９５】
また、実施の形態１および２では、各名称（ラベル名）は日本語により定義されている例を用いて説明をしたが、定義される言語は日本語に限らず、英語、フランス語その他言語で記述しておくことも有用である。上述したソースコード中の要素名は、英語に基づいて、たとえば、英単語そのままか、あるいは用語の省略形によって記述されているため、実際の英単語と、要素名は異なる場合がある。
【００９６】
具体的には、ラベル名が長いために同じような意味を持つ短い文字列で表現されている場合がある。たとえば、ラベル名が「Ｉｎｃｒｅａｓｅ  ｉｎ  Ａｃｃｒｕｅｄ  Ｉｎｔｅｒｅｓｔ  Ｉｎｃｏｍｅ」は、ソースコード中では要素名「ＣｈａｎｇｅＩｎｔｅｒｅｓｔＲｅｃｅｉｖａｂｌｅ」と記述される。このように要素名をそのまま計算式に用いた場合には、同じ英語で記述されていても容易に理解できない場合も生じる。そのため、ラベル名を英語で記述しておく場合にも有用である。
【００９７】
なお、本実施の形態で説明したソースコード解析方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００９８】
（付記１）ソースコードに記述されている計算式から当該計算式を構成する変数を検出させる検出工程と、
前記検出工程によって検出された変数を定義する要素名を前記ソースコードの中から抽出させる要素名抽出工程と、
前記要素名抽出工程によって抽出された要素名を、所定の言語において当該要素名が意味する名称に変換させる変換工程と、
前記変換工程によって変換された名称を出力させる出力工程と、
をコンピュータに実行させることを特徴とするソースコード解析プログラム。
【００９９】
（付記２）さらに、前記要素名抽出工程によって抽出された要素名に関するコンテキストを前記ソースコードの中から抽出させるコンテキスト抽出工程をコンピュータに実行させ、
前記変換工程は、
さらに、前記コンテキスト抽出工程によって抽出されたコンテキストを、前記所定の言語において当該コンテキストが意味する名称に変換させることをコンピュータに実行させることを特徴とする付記１に記載のソースコード解析プログラム。
【０１００】
（付記３）前記要素名抽出工程によって抽出された要素名に関するコンテキストが前記ソースコードに記述されているか否かを判断させる判断工程をコンピュータに実行させ、
前記コンテキスト抽出工程は、
前記判断工程によって判断された判断結果に基づいて、前記要素名抽出工程によって抽出された要素名に関するコンテキストを前記ソースコードの中から抽出させることをコンピュータに実行させることを特徴とする付記１または２に記載のソースコード解析プログラム。
【０１０１】
（付記４）前記出力工程は、
前記変換工程によって変換された名称を、当該名称の変換元となる要素名に定義されている変数と関連付けて出力させることをコンピュータに実行させることを特徴とする付記１〜３のいずれか一つに記載のソースコード解析プログラム。
【０１０２】
（付記５）前記計算式を構成する変数を、当該変数を定義している要素名から前記変換工程によって変換された名称に置換させる置換工程をコンピュータに実行させ、
前記出力工程は、
前記置換工程によって名称に置換された計算式を出力させることをコンピュータに実行させることを特徴とする付記１〜４のいずれか一つに記載のソースコード解析プログラム。
【０１０３】
（付記６）前記検出工程は、
さらに、前記計算式を構成する演算子を検出させ、
前記変換工程は、
さらに、前記検出工程によって検出された演算子を、前記所定の言語において当該演算子が意味する用語に変換させることをコンピュータに実行させることを特徴とする付記１〜５のいずれか一つに記載のソースコード解析プログラム。
【０１０４】
（付記７）前記検出工程は、
さらに、前記計算式から任意の２つの変数間の演算子がすべて同一となる箇所を検出させ、
前記変換工程は、
さらに、前記検出工程によって検出された箇所を、前記所定の言語において当該箇所が意味する文章に変換させることをコンピュータに実行させることを特徴とする付記１〜６のいずれか一つに記載のソースコード解析プログラム。
【０１０５】
（付記８）ソースコードで定義される任意の変数を所定の言語であらわした文字列を含む計算式の入力を受け付けさせる入力工程と、
前記入力工程によって入力された計算式の中から、前記文字列を抽出させる抽出工程と、
前記抽出工程によって抽出された文字列を、当該文字列が意味する要素名に変換させる変換工程と、
をコンピュータに実行させることを特徴とするソースコード解析プログラム。
【０１０６】
（付記９）前記抽出工程は、
前記計算式の中から、前記計算式の演算子を所定の言語であらわした前記演算子に関する文字列を抽出させ、
前記変換工程は、
前記抽出工程によって抽出された前記演算子に関する文字列を、当該文字列が意味する演算子に変換させることをコンピュータに実行させることを特徴とする付記８に記載のソースコード解析プログラム。
【０１０７】
（付記１０）付記１から付記９に記載のソースコード解析プログラムのいずれか一つを記録したコンピュータに読み取り可能な記録媒体。
【０１０８】
（付記１１）ソースコードに記述されている計算式から当該計算式を構成する変数を検出する検出手段と、
前記検出手段によって検出された変数を定義する要素名を前記ソースコードの中から抽出する要素名抽出手段と、
前記要素名抽出手段によって抽出された要素名を、所定の言語において当該要素名が意味する名称に変換する変換手段と、
前記変換手段によって変換された名称を出力する出力手段と、
を備えることを特徴とするソースコード解析装置。
【０１０９】
（付記１２）ソースコードで定義される任意の変数を所定の言語であらわした文字列を含む計算式の入力を受け付ける入力手段と、
前記入力手段によって入力された計算式の中から、前記文字列を抽出する抽出手段と、
前記抽出手段によって抽出された文字列を、当該文字列が意味する要素名に変換する変換手段と、
を備えることを特徴とするソースコード解析装置。
【０１１０】
（付記１３）ソースコードに記述されている計算式から当該計算式を構成する変数を検出する検出工程と、
前記検出工程によって検出された変数を定義する要素名を前記ソースコードの中から抽出する要素名抽出工程と、
前記要素名抽出工程によって抽出された要素名を、所定の言語において当該要素名が意味する名称に変換する変換工程と、
前記変換工程によって変換された名称を出力する出力工程と、
を含んだことを特徴とするソースコード解析方法。
【０１１１】
（付記１４）ソースコードで定義される任意の変数を所定の言語であらわした文字列を含む計算式の入力を受け付ける入力工程と、
前記入力工程によって入力された計算式の中から、前記文字列を抽出する抽出工程と、
前記抽出工程によって抽出された文字列を、当該文字列が意味する要素名に変換する変換工程と、
を含んだことを特徴とするソースコード解析方法。
【産業上の利用可能性】
【０１１２】
以上のように、本発明にかかるソースコード解析プログラムは、ソースコードの解析に有用であり、特に、財務情報に関する、ＸＢＲＬで記述された財務情報に適している。
【図面の簡単な説明】
【０１１３】
【図１】この発明の実施の形態（１および２）にかかるソースコード解析装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態１にかかるソースコード解析装置が解析するソースコードの一例を示す説明図である。
【図３】この発明の実施の形態１にかかるソースコード解析装置が解析するコンテキストを含むソースコードを示す説明図である。
【図４】この発明の実施の形態１にかかる、財務情報に含まれる科目を定義したタクソノミを示す説明図である。
【図５】この発明の実施の形態１にかかるソースコード解析装置の機能的構成を示すブロック図である。
【図６】図２に示したソースコードから変数および演算子を検出した検出結果を示す説明図である。
【図７】図３に示したソースコードから変数および演算子を検出した検出結果を示す説明図である。
【図８】要素名抽出部による抽出結果を示す説明図である。
【図９】コンテキストを含むソースコードの中から要素名およびコンテキストを抽出した結果を示す説明図である。
【図１０】計算式と生成される文章の関係を示す説明図である。
【図１１】等号の変換方法の一例を示す説明図である。
【図１２】任意の２つの変数間の演算子がすべて同一の箇所を計算式が意味する文章に変換する方法の一例を示す説明図（その１）である。
【図１３】任意の２つの変数間の演算子がすべて同一の箇所を計算式が意味する文章に変換する方法の一例を示す説明図（その２）である。
【図１４】計算式に変更が生じた場合にソースコードを変更する例を示す説明図である。
【図１５】この発明の実施の形態１にかかるソースコード解析処理手順（その１）を示すフローチャートである。
【図１６】この発明の実施の形態１にかかるソースコード解析処理手順（その２）を示すフローチャートである。
【図１７】この発明の実施の形態２にかかるソースコード解析装置の機能的構成を示すブロック図である。
【図１８】この発明の実施の形態２にかかるソースコード解析処理手順を示すフローチャートである。
【符号の説明】
【０１１４】
５００  ソースコード解析装置
５０１  検出部
５０２  抽出部
５０３  判断部
５０４  変換部
５０５  置換部
５０６  出力部
５１０  ソースコード
５１１  テーブル
５２１  要素名抽出部
５２２  コンテキスト抽出部
【図１】
2006252201.tif 000003
【図２】
2006252201.tif 000004
【図３】
2006252201.tif 000005
【図４】
2006252201.tif 000006
【図５】
2006252201.tif 000007
【図６】
2006252201.tif 000008
【図７】
2006252201.tif 000009
【図８】
2006252201.tif 000010
【図９】
2006252201.tif 000011
【図１０】
2006252201.tif 000012
【図１１】
2006252201.tif 000013
【図１２】
2006252201.tif 000014
【図１３】
2006252201.tif 000015
【図１４】
2006252201.tif 000016
【図１５】
2006252201.tif 000017
【図１６】
2006252201.tif 000018
【図１７】
2006252201.tif 000019
【図１８】
2006252201.tif 000020