(57)【要約】【課題】浮動小数点表現プログラムにおける固定小数点表現化すべき数要素に対する属性値を設定するための手間を低減させることのできる浮動小数点表現プログラムの固定小数点表現化支援装置及び支援プログラムを提供することである。【解決手段】浮動小数点表現プログラムにて使用されている数要素を抽出し（数要素情報抽出）、浮動小数点表現プログラムにて使用されている各数要素の他の一または複数の数要素との式で結ばれる関係を抽出し（結合関係情報）、数要素の固定小数点表現に必要な各属性項目についての数要素情報にて表される各数要素の属性値の他の数要素の属性値との関係を表す属性値関係情報を、前記各数要素の他の一または複数の数要素との式で結ばれる関係に基づいて生成し、前記属性値関係情報に基づいて前記各数要素の各属性項目ついての属性値を設定するためのユーザインタフェースを提供するように構成される。【選択図】図５
2011186999.tif 000002
【特許請求の範囲】
【請求項１】
浮動小数点表現の数要素を用いた演算処理を記述する浮動小数点表現プログラムを固定小数点表現の数要素を用いた演算処理を記述する固定小数点表現プログラムに変える際のユーザ支援処理を行うコンピュータシステムにて構成された浮動小数点表現プログラムの固定小数点表現化支援装置であって、
前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている数要素を抽出する数要素抽出手段と、
前記抽出された数要素を表す数要素情報を格納する数要素情報格納手段と、
前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている各数要素の他の一または複数の数要素との式で結ばれる関係を抽出する関係抽出手段と、
前記抽出された関係を表す結合関係情報を格納する関係情報格納手段と、
数要素の固定小数点表現に必要な各属性項目についての前記数要素情報にて表される各数要素の属性値の他の数要素の属性値との関係を表す属性値関係情報を、前記結合関係情報にて表される前記各数要素の他の一または複数の数要素との式で結ばれる関係に基づいて生成する属性値関係生成手段と、
前記属性値関係情報に基づいて前記各数要素の各属性項目ついての属性値を設定するためのユーザインタフェースを提供する手段とを有する浮動小数点表現プログラムの固定小数点化支援装置。
【請求項２】
前記ユーザインタフェースを提供する手段は、前記属性値関係情報に基づいて、前記各属性項目についての前記各数要素の属性値の他の数要素の属性値との関係を表示部に表示させる請求項１記載の浮動小数点表現プログラムの固定小数点表現化支援装置。
【請求項３】
前記関係抽出手段は、数要素と他の一または複数の数要素とが代入式の右辺と左辺となる関係を前記式で結ばれる関係として抽出する請求項１または２記載の浮動小数点表現プログラムの固定小数点表現化支援装置。
【請求項４】
前記関係抽出手段は、数要素と他の一または複数の数要素とが条件式の右辺と左辺となる関係を前記式で結ばれる関係として抽出する請求項１乃至３のいずれかに記載の浮動小数点表現プログラムの固定小数点表現化支援装置。
【請求項５】
前記数要素抽出手段は、前記浮動小数点表現プログラムにて使用されている変数を数要素として抽出する請求項１乃至４のいずれかに記載の浮動小数点表現プログラムの固定小数点表現化支援装置。
【請求項６】
前記数要素抽出手段は、前記浮動小数点表現プログラムにて使用されている定数を数要素として抽出する請求項１乃至５のいずれかに記載の浮動小数点表現プログラムの固定小数点表現化装置。
【請求項７】
前記属性値関係情報生成手段は、前記抽出された数要素のうち前記浮動小数点表現プログラムが記述する演算処理における内部状態を表す数要素の前記属性値の他の数要素の属性値との関係を表す情報を前記属性値関係情報に含める請求項１乃至６のいずれかに記載の浮動小数点表現プログラムの固定小数点表現化支援装置。
【請求項８】
前記属性関係情報生成手段は、前記抽出された数要素のうち前記浮動小数点表現プログラム内における定数の属性値と他の数要素の属性値との関係を表す情報を前記属性値関係情報に含める請求項１乃至７のいずれかに記載の浮動小数点表現プログラムの固定小数点表現化支援装置。
【請求項９】
浮動小数点表現の数要素を用いた演算処理を記述する浮動小数点表現プログラムを固定小数点表現の数要素を用いた演算処理を記述する固定小数点表現プログラムに変える際のユーザ支援処理をコンピュータシステムに実行させる支援プログラムであって、
前記コンピュータに、
前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている数要素を抽出する数要素抽出ステップと、
前記抽出された数要素を表す数要素情報を数要素格納手段に格納するステップと、
前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている各数要素の他の一または複数の数要素との関係を抽出する関係抽出ステップと、
前記抽出された関係を表す関係情報を関係格納手段に格納するステップと、
数要素の固定小数点表現に必要な各属性項目についての前記数要素情報にて表される各数要素の属性値の他の数要素の属性値との関係を表す属性値関係情報を、前記関係情報にて表される前記各数要素の他の一または複数の数要素との関係に基づいて生成する属性値関係生成ステップと、
前記属性値関係情報に基づいて前記各数要素の各属性項目ついての属性値を設定するためのユーザインタフェースを提供するステップとを実行させる支援プログラム。
【請求項１０】
前記ユーザインタフェースを提供するステップは、前記属性値関係情報に基づいて、前記各属性項目についての前記各数要素の属性値の他の数要素の属性値との関係を表示部に表示させる請求項９記載の支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、浮動小数点表現の変数等の数要素を用いた演算処理を記述する浮動小数点表現プログラムを固定小数点表現の数要素を用いた演算処理を記述する固定小数点表現プログラムに変える際のユーザ支援処理を行う浮動小数点表現プログラムの固定小数点表現化支援装置及び支援プログラムに関する。
【背景技術】
【０００２】
一般に、コンピュータ（ＣＰＵ）が実行する演算処理を記述したプログラムには、その演算処理に用いられる変数、定数等の数要素が浮動小数点表現される浮動小数点表現プログラムと、その演算処理に用いられる変数、定数等の数要素が固定小数点表現される固定小数点表現プログラムがある。浮動小数点表現の数要素（変数、定数等）は、仮数部と指数部にてその数値が表現されることから、同じビットサイズの固定小数点表現の数要素に比べて表現できる数値の範囲を広くすることができ、その精度は、仮数部の桁数によって決まる。一方、固定小数点表現の数要素（変数、定数等）については、その固定小数点表現に必要となる属性項目の値（属性値という）、例えば、解像度（ＬＳＢ）、サイズ（ビットサイズ）、オフセットの値が定義され、その属性値によって表現できる数値の範囲が決まり、その精度は、特に解像度の値で決まる。
【０００３】
一般には、コンピュータに実行させるべき演算処理は、浮動小数点表現プログラムにて記述される。しかし、コンピュータ（ＣＰＵ）の性能等の制約から、その演算処理を固定小数点表現プログラムにて記述する場合がある。例えば、車両に搭載されるＥＣＵ（電子制御ユニット）は、物理量（電圧、速度、時間等）を表す信号を数要素（変数や定数）の数値として表して演算処理するが、その演算処理が固定小数点表現プログラムにて記述される場合がある。このような場合、車両エンジン等の制御対象に精通した「制御設計者」が、その制御に係る演算処理を記述する浮動小数点表現プログラムを作成し、その後、その浮動小数点表現プログラムをＥＣＵ等のコンピュータに精通した「ソフト設計者」がコンピュータの性能等を考慮して固定小数点表現プログラムに書き換えるようにしている。
【０００４】
また、前記浮動小数点表現プログラムが作成された後、その浮動小数点表現プログラムを固定小数点表現プログラムに変換するためのプログラム変換装置も提案されている（特許文献１参照）。このプログラム変換装置では、まず、浮動小数点表現プログラムをその実行時に対象変数（数要素）の値の変化が履歴として出力されるように改造したプロファイルプログラムが作成される。次いで、そのプロファイルプログラム（改造された浮動小数点表現プログラム）を実行し、その際に出力される対象変数の値の範囲に基づいて、その変数が固定小数点表現に変換されるように、前記浮動小数点表現プログラムの変更がなされる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−３３７２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述した従来のプログラム変換装置では、様々な浮動小数点表現プログラムを改造して目的にあったプロファイルプログラムを作成することは難しく、また、種々の条件で変数の取り得る範囲が変わってくるような場合には、多くの条件（パラメータ）のもとでそのプロファイルプログラムを実行させなければならず、その処理量が膨大になってしまう。従って、前述したプログラム変換装置は、汎用性に問題がある。
【０００７】
また、浮動小数点表現プログラムをコンピュータに精通した「ソフト設計者」がそのコンピュータの性能等を考慮して固定小数点表現プログラムに書き換える場合、浮動小数点表現プログラムにて用いられる数要素（変数、定数）の固定小数点表現に必要な各属性項目（解像度（ＬＳＢ）、サイズ（ビットサイズ）、オフセット等）の値、即ち、属性値を定義する必要がある。その「ソフト設計者」が浮動小数点表現プログラムから固定小数点表現化すべき数要素を抽出する際に漏れが生ずる可能性が高く、また、その抽出された数要素に対して各属性項目の属性値を設定するための手間がかかる。
【０００８】
本発明は、このような事情に鑑みてなされたもので、浮動小数点表現プログラムにおける固定小数点表現化すべき数要素に対する属性値を設定するための手間を低減させることのできる浮動小数点表現プログラムの固定小数点表現化支援装置及び支援プログラムを提供するものである。
【課題を解決するための手段】
【０００９】
本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置は、浮動小数点表現の数要素を用いた演算処理を記述する浮動小数点表現プログラムを固定小数点表現の数要素を用いた演算処理を記述する固定小数点表現プログラムに変える際のユーザ支援処理を行うコンピュータシステムにて構成された浮動小数点表現プログラムの固定小数点表現化支援装置であって、前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている数要素を抽出する数要素抽出手段と、前記抽出された数要素を表す数要素情報を格納する数要素情報格納手段と、前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている各数要素の他の一または複数の数要素との式で結ばれる関係を抽出する関係抽出手段と、前記抽出された関係を表す結合関係情報を格納する関係情報格納手段と、数要素の固定小数点表現に必要な各属性項目についての前記数要素情報にて表される各数要素の属性値の他の数要素の属性値との関係を表す属性値関係情報を、前記結合関係情報にて表される前記各数要素の他の一または複数の数要素との式で結ばれる関係に基づいて生成する属性値関係生成手段と、前記属性値関係情報に基づいて前記各数要素の各属性項目ついての属性値を設定するためのユーザインタフェースを提供する手段とを有する構成となる。
【００１０】
このような構成により、浮動小数点表現プログラムから抽出される各数要素の固定小数点表現に必要な各属性項目についての属性値の他の数要素の属性値との関係を表す属性値関係情報に基づいて各数要素の各属性項目についての属性値を設定するためのユーザインタフェースが提供されるので、ユーザは、その提供されるユーザインタフェースにより、浮動小数点表現プログラムに含まれる各数要素の属性値を、直接当該浮動小数点表現プログラムを解析して個々的に設定することなく、他の数要素の属性値との関係に従って設定することができるようになる。
【００１１】
前記プログラムは、コンピュータによる処理を表す記述であって、コンピュータが実行可能な言語に直接的または間接的に翻訳可能なものである。また、属性項目は、数要素を固定小数点表現するために必要なものであって、例えば、ビットサイズ、解像度、数値範囲のオフセット、符号の有無等を含み得る。
【００１２】
本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記ユーザインタフェースを提供する手段は、前記属性値関係情報に基づいて、前記各属性項目についての前記各数要素の属性値の他の数要素の属性値との関係を表示部に表示させるように構成することができる。
【００１３】
このような構成により、浮動小数点表現プログラムから抽出される各数要素の各属性項目についての属性値の他の数要素の属性値との関係が表示部に表示されるので、ユーザは、各数要素の各属性項目についての属性値を浮動小数点表現プログラムから個々的に判断する必要がなく、数要素の属性値を、属性値のわかっている他の数要素の当該属性値との関係から容易に設定することができる。
【００１４】
また、本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記関係抽出手段は、数要素と他の一または複数の数要素とが代入式の右辺と左辺となる関係を前記式で結ばれる関係として抽出するよう構成することができる。
【００１５】
このような構成により、代入式の右辺と左辺となる関係にある数要素については、その代入式で結ばれる関係に基づいて、一方（例えば、左辺）の数要素の属性値の他方（例えば、右辺）の一または複数の数要素の属性値との関係を表す属性値関係情報を生成することができる。
【００１６】
また、本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記関係抽出手段は、数要素と他の一または複数の数要素とが条件式の右辺と左辺となる関係を前記式で結ばれる関係として抽出するように構成することができる。
【００１７】
このような構成により、条件式の右辺と左辺となる関係にある数要素については、その条件式で結ばれる関係に基づいて、一方（例えば、左辺）の数要素の属性値の他方（例えば、右辺）の一または複数の数要素の属性値との関係を表す属性値関係情報を生成することができる。
【００１８】
更に、本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記数要素抽出手段は、前記浮動小数点表現プログラムにて使用されている変数を数要素として抽出するように構成することができる。
【００１９】
このような構成により、浮動小数点表現化プログラムから変数が数要素として抽出されるので、当該浮動小数点表現プログラムに含まれる変数の固定小数点表現に必要な各属性項目の属性値を、ユーザは、直接浮動小数点表現プログラムを解析して個々的に設定することなく、提供されるユーザインタフェースにより、他の数要素の属性値との関係に従って設定することができるようになる。
【００２０】
また、本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記数要素抽出手段は、前記浮動小数点表現プログラムにて使用されている定数を数要素として抽出するように構成することができる。
【００２１】
このような構成により、浮動小数点表現プログラムから定数が数要素として抽出されるので、当該浮動小数点表現プログラムに含まれる定数の固定小数点表現に必要な各属性項目の属性値を、ユーザは、直接浮動小数点表現プログラムを解析して個々的に設定することなく、提供されるユーザインタフェースにより、他の数要素の属性値との関係に従って設定することができるようになる。
【００２２】
更に、本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記属性値関係情報生成手段は、前記抽出された数要素のうち前記浮動小数点表現プログラムが記述する演算処理における内部状態を表す数要素の前記属性値の他の数要素の属性値との関係を表す情報を前記属性値関係情報に含めるように構成することができる。
【００２３】
このような構成により、浮動小数点表現プログラムが記述する演算処理における内部状態を表す数要素の属性値の他の数要素の属性値との関係を表す情報が属性値情報に含まれるようになるので、当該浮動小数点プログラムが記述する演算処理における内部状態を表す数要素の固定小数点表現に必要な各属性項目の属性値を、ユーザは、直接浮動小数点表現プログラムを解析して個々的に設定することなく、提供されるユーザインタフェースにより、他の数要素の属性値との関係に従って設定することができるようになる。
【００２４】
また、本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記属性関係情報生成手段は、前記抽出された数要素のうち前記浮動小数点表現プログラム内における定数の属性値と他の数要素の属性値との関係を表す情報を前記属性値関係情報に含めるように構成することができる。
【００２５】
このような構成により、浮動小数点表現プログラム内における定数の属性値の他の数要素の属性値との関係を表す情報が属性値関係情報に含まれるようになるので、当該浮動小数点表現プログラム内の定数の固定小数点表現に必要な各属性項目の属性値を、ユーザは、直接浮動小数点表現プログラムを解析して個々的に設定することなく、提供されるユーザインタフェースにより、他の数要素の属性値との関係に従って設定することができるようになる。
【００２６】
本発明に係る支援プログラムは、浮動小数点表現の数要素を用いた演算処理を記述する浮動小数点表現プログラムを固定小数点表現の数要素を用いた演算処理を記述する固定小数点表現プログラムに変える際のユーザ支援処理をコンピュータシステムに実行させる支援プログラムであって、前記コンピュータに、前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている数要素を抽出する数要素抽出ステップと、前記抽出された数要素を表す数要素情報を数要素格納手段に格納するステップと、前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている各数要素の他の一または複数の数要素との関係を抽出する関係抽出ステップと、前記抽出された関係を表す関係情報を関係格納手段に格納するステップと、数要素の固定小数点表現に必要な各属性項目についての前記数要素情報にて表される各数要素の属性値の他の数要素の属性値との関係を表す属性値関係情報を、前記関係情報にて表される前記各数要素の他の一または複数の数要素との関係に基づいて生成する属性値関係生成ステップと、前記属性値関係情報に基づいて前記各数要素の各属性項目ついての属性値を設定するためのユーザインタフェースを提供するステップとを実行させる構成となる。
【００２７】
本発明に係る支援プログラムにおいて、前記ユーザインタフェースを提供するステップは、前記属性値関係情報に基づいて、前記各属性項目についての前記各数要素の属性値の他の数要素の属性値との関係を表示部に表示させるように構成することができる。
【発明の効果】
【００２８】
本発明に係る浮動小数点表現プログラムの固定小数点表現化装置及び支援プログラムによれば、浮動小数点表現プログラムから抽出される各数要素の固定小数点表現に必要な各属性項目についての属性値の他の数要素の属性値との関係を表す属性値関係情報に基づいて各数要素の各属性項目についての属性値を設定するためのユーザインタフェースが提供され、ユーザは、その提供されるユーザインタフェースにより、浮動小数点表現プログラムに含まれる各数要素の属性値を、直接当該浮動小数点表現プログラムを解析して個々的に求めることなく、他の数要素の属性値との関係に従って求めることができるようになるので、浮動小数点表現プログラムにおける固定小数点表現化すべき数要素に対する属性値を設定するための手間を低減させることができるようになる。
【図面の簡単な説明】
【００２９】
【図１】固定小数点表現プログラムの作成手順の一例を示すフローチャートである。
【図２】本発明の実施の形態に係る浮動小数点表現プログラムの固定小数点表現化支援装置を構成するコンピュータシステムを示すブロック図である。
【図３】Ｃ言語で記述された浮動小数点表現プログラムの一例を示す図である。
【図４】図３に示す浮動小数点表現プログラムにて記述された演算処理の手順を示すフローチャートである。
【図５】本発明の実施の形態に係る浮動小数点表現プログラムの固定小数点表現化支援装置での処理手順を示すフローチャートである。
【図６】変数リスト（数要素情報）の一例を示す図である。
【図７】代入式の式リスト（結合関係情報）の一例を示す図である。
【図８】条件式の式リスト（結合関係情報）の一例を示す図である。
【図９】空状態の属性リストの一例を示す図である。
【図１０】属性値の関係（属性値関係情報）が記述された結果リスト（その１）を示す図である。
【図１１】属性値の関係（属性値関係情報）が記述された結果リスト（その２）を示す図である。
【図１２】結果リスト（ユーザインタフェース）の変数ｕの各属性項目に属性値を設定したときの状態（その１）を示す図である。
【図１３】結果リスト（ユーザインタフェース）の変数ｕの各属性項目に属性値を設定したときの状態（その２）を示す図である。
【図１４】結果リスト（ユーザインタフェース）の変数ｙの各属性項目に属性値を設定したときの状態（その１）を示す図である。
【図１５】結果リスト（ユーザインタフェース）の変数Ｃの各属性項目に属性値を設定したときの状態を示す図である。
【図１６】図３に示されるＣ言語で記述された浮動小数点表現プログラムを変換して作成される固定小数点表現プログラムの一例を示す図である。
【図１７】式の解像度（属性項目）についての属性値を設定するための規則の一例を示す図である。
【図１８】式のサイズ（属性項目）につての属性値を設定するための規則の一例を示す図である。
【図１９】式のオフセット（属性項目）につての属性値を設定するための規則の一例を示す図である。
【図２０】式の符号（属性項目）についての属性値を設定するための規則の一例を示す図である。
【発明を実施するための形態】
【００３０】
以下、本発明の実施の形態について図面を用いて説明する。
【００３１】
固定小数点表現プログラムは、例えば、図１に示す手順に従って作成される。図１において、まず、対象の制御（例えば、車両エンジンの燃料噴射制御、車両の走行制御等々）に精通した「制御設計者」が、制御に係る演算処理内容に従って浮動小数点プログラムを作成する（Ｓ１）。そして、作成された浮動小数点表現プログラムがテストされ、「制御設計者」は、その処理（アルゴリズム）が意図した通りに進行するか否かを確認する（Ｓ２）。意図した通りに進行しない場合（Ｓ２でＮＯ）、それが意図した通りに進行するようになる（Ｓ２でＹＥＳ）まで、「制御設計者」は、作成された浮動小数点表現プログラムを修正する（Ｓ１）。作成及び修正された浮動小数点表現プログラムに従って処理（アルゴリズム）が「制御設計者」の意図した通りに進行するものであれば（Ｓ２でＹＥＳ）、浮動小数点表現プログラムが完成し、「制御設計者」の作業が終了する。
【００３２】
次に、「制御設計者」に代わって実際に使用されるコンピュータシステム（例えば、車両搭載のＥＣＵ等）の性能に精通した「ソフト設計者」が、そのコンピュータシステムの制約（メモリ容量、計算量）等を考慮して、前記浮動小数点表現プログラムを固定小数点表現プログラムに変換する（Ｓ３、Ｓ４）。具体的には、浮動小数点表現プログラムから当該浮動小数点プログラムに使用されている変数及び定数（数要素）を抽出し、その抽出された変数及び定数のそれぞれに対して固定小数点表現に必要な属性項目（例えば、ビットサイズ、解像度、数値範囲のオフセット、符号の有無等）の属性値を設定する。そして、各属性項目の属性値の設定（定義）された変数及び定数をもって、前述した浮動小数点表現プログラムにて記述された演算処理と同じ内容の演算処理を記述する固定小数点表現プログラムが作成される（Ｓ３）。
【００３３】
そして、その「ソフト設計者」は、作成された固定小数点表現プログラムに従って演算処理を実際のコンピュータシステムに実行させ、その実行結果を確認する（Ｓ４）。固定小数点表現プログラムに従った前記処理の結果は、数値の誤差とオーバーフロー（固定小数点で表現できる範囲を越えた値になること）によって、浮動小数点表現プログラムに従った処理の結果と異なる。これが、当該コンピュータシステムの動作として許されない場合には、変数や定数の各属性項目の属性値の再設定を行って固定小数点表現プログラムを修正する。この作業を繰り返して、固定小数点表現プログラムに従った処理のコンピュータシステムでの動作結果が、許容されるものとなったとき、その固定小数点表現プログラムが完成する。
【００３４】
本発明の実施の形態に係る浮動小数点表現プログラムの固定小数点表現化支援装置（以下、実施の形態の説明において支援装置という）は、前述した、浮動小数点表現プログラムで用いられる変数や定数の数要素の固定小数点表現に必要となる各属性項目の属性値を設定する際（図１におけるＳ３）に、ユーザの作業を支援するために利用される。
【００３５】
本発明の実施の一形態に係る支援装置を構成するコンピュータシステムは、図２に示すように構成される。
【００３６】
図２において、このコンピュータシステム（支援装置）は、プログラムに従って種々の処理を実行する処理ユニット（ＣＰＵ）１０１を有している。処理ユニット１０１には、バス１０７を介してメモリ１０２、ハードディスク装置等の外部記憶装置１０３、マウス、キーボード等の操作部１０５及びモニタ１０６（表示部）が接続されている。処理ユニット１０１は、ユーザによる操作部１０５での操作に基づいた操作信号に応じて外部記憶装置１０３から浮動小数点表現プログラムの固定小数点表現化の支援処理に係るプログラムをメモリ１０３に読み出し、そのプログラムに従って処理を実行する。その処理の実行により生成される支援情報がモニタ１０６に表示される（ユーザインタフェース）。
【００３７】
固定小数点表現化すべき浮動小数点表現プログラムは、予め外部記憶装置１０３に格納されている。この浮動小数点表現プログラムは、例えば、図３に示すようにＣ言語で記述される。図３に示す浮動小数点表現プログラムは、センサからの入力ｕを補正して出力ｙを得る演算処理を記述したもので、その処理手順は、図４に示すフローチャートによっても表すことができる。この演算処理を簡単に説明する。
【００３８】
センサからの入力ｕは、多くのノイズを含んでいるため、その入力ｕに対してローパスフィルタ処理が施される。具体的には、
ｙ＝Ｃ・ｕ＋（１−Ｃ）・ｙ
ｙ：前回の出力値
Ｃ：フィルタ係数（0.0≦Ｃ≦1.0）
に従って、フィルタ出力ｙが算出される。
更に、センサ自体の回路や当該センサをＣＰＵに接続する信号線は、物理的な故障の危険性をはらんでおり、ＣＰＵが故障を検知し、適切な処理をさせる必要がある。そこで、センサからサンプリングされる入力ｕが連続（Nf1回）して規定範囲外であればセンサが故障（断線、ショート）しているとして値（true）が変数ｆxにセットされ、サンプリングされる入力ｕの変化量（｜ｕ１−ｕ｜）が連続（Nf２回）して既定値（Ｕdelta）より大きくなればセンサが故障（センサ破壊）しているとして値（true）が変数ｆxにセットされる。そして、変数ｆxが値（ture）にセットされていると（センサ故障の場合）、フィルタ出力ｙは、強制的に安全な固定値（Ｙsafe）に設定される。
【００３９】
以下、このような演算処理を記述する浮動小数点表現プログラム（図３及び図４参照）を固定小数点表現化する場合を例に、本支援装置の動作について説明する。
【００４０】
処理ユニット１０１は、ユーザ（「ソフト設計者」）による操作部１０５の所定の操作に従って、例えば、図３に示すようにＣ言語で記述された浮動小数点表現プログラムを外部記憶装置１０３からメモリ１０２上に読み出して、図５に示す手順に従って支援処理を実行する。
【００４１】
処理ユニット１０１は、メモリ１０２に展開された浮動小数点表現プロラムの字句構造を解析して、当該浮動小数点表現プログラムにて使用されている変数及び定数（数要素：以下、便宜上、単に変数という）を抽出し、その情報（数要素情報）をリスト化した変数リストを作成する（Ｓ１１）。その変数リストはメモリ１０２（数要素格納手段）に格納される。処理ユニット１０１は、前記変数とともに当該浮動小数点表現プログラムにおいて当該変数に対して定義される情報（定義情報）も抽出しており、その定義情報が変数に対応するように前記変数リストに含められている。例えば、図３に示すＣ言語で記述された浮動小数点表現プログラムから以下の変数が抽出される。
ｕ
ｙ
ｎf1
ｎf2
ｆx
Ｃ
Ｕmin
Ｕmax
ｕ1
Ｕdelta
Ｎf1
Ｎf2
Ｙsafe
【００４２】
これらの変数とともに、各変数に対して定義される定義情報である「種別」及び「型」が抽出され、前記変数（変数名）及び「種別」、「型」の定義情報から、例えば、図６に示すような変数リストが作成される。なお、「種別」は、入力、出力、内部情報、定数等の変数（数要素）の種類についての定義情報である。内部情報は、その浮動小数点表現プログラムが記述する演算処理において保持される計数値や設定値等の内部状態をいう。「型」は、Ｃ言語で決められている変数（数要素）の型であって、浮動小数点型（float）、整数値型（int）、真偽値型（bool）、倍精度浮動小数点型（double）、文字型（char）等がある。
【００４３】
次いで、処理ユニット１０１は、メモリ１０２に展開された浮動小数点表現プログラムの字句構造を解析して、当該浮動小数点プログラムにて使用される各変数の他の一または複数の変数との式で結ばれている関係を抽出する（Ｓ１２）。具体的には、変数と他の一または複数の変数とが、変数の値を更新するための代入式の右辺と左辺となる関係、及び変数と他の一または複数の変数とが、条件分岐に係る条件式の右辺と左辺となる関係が抽出され、その関係を表す情報（結合関係情報）をリスト化した式リストが生成される。式リストは、メモリ１０２（関係情報格納手段）に格納される。例えば、図３（図４参照）に示すＣ言語で記述された浮動小数点表現プログラムから以下の関係が抽出される。
代入式
ｎf1＝ｎf1＋１
ｆx＝true
ｎf 1＝０
ｎf2＝ｎf2＋１
ｎf2＝０
ｕ1＝ｕ
ｙ＝Ｃ＊ｕ＋（１−Ｃ）＊ｙ
ｙ＝Ｙsafe
条件式
ｕ＜ｕmin
ｎf1＞Ｎf1
Ｕmax＜ｕ
ｕ＜ｕ1−Ｕdelta
ｕ1＋Ｕdelta＜ｕ
ｎf2＞Ｎf2
ｆx=true
【００４４】
そして、前記代入式に係る関係から図７に示すような式リストが作成され、前記条件式に係る関係から図８に示すような式リストが生成される。
【００４５】
処理ユニット１０１は、変数リスト（図６参照）及び式リスト（図７及び図８参照）を作成すると、変数リストから変数を選択し（Ｓ１３）、その変数が後述する属性リストに含まれていないか否か及びその変数の「型」が浮動小数点型（float）または倍精度浮動小数点型（double）であるか否かを判定する（Ｓ１４）。変数リストから選択された前記変数がまだ属性リストに含まれておらず、かつ、その「型」が浮動小数点型（float）または倍精度浮動小数点型（double）である場合（Ｓ１４でＹＥＳ）、処理ユニット１０１は、外部記憶装置１０３から読み出してメモリ１０２に展開している属性リストに前記変数リストから選択した前記変数を追加する（Ｓ１５）。
【００４６】
この属性リストは、各変数の固定小数点表現に必要な各属性項目（ビットサイズ、解像度、数値範囲表現のオフセット、符号の有無）の属性値をリスト化して表すもので、具体的には、図９に示すように構成される。図６に示す変数リストからは、「型」が浮動小数点型（float）または倍精度浮動小数点型（double）の次の変数が属性リストに加えられる（図９参照）。
ｕ
ｙ
Ｃ
Ｕmin
Ｕmax
ｕ1
Ｕdelta
Ｙsafe
【００４７】
処理ユニット１０１が変数リスト（図６参照）内の全ての変数についての前記処理（Ｓ１４、Ｓ１５）を終えると（Ｓ１６でＹＥＳ）、メモリ１０２内には、浮動小数点表現プログラムに含まれる浮動小数点型（float）及び倍精度浮動小数点型（double）の全ての変数がリスト化された図９に示す属性リストが構成される。次いで、処理ユニット１０１は、前記属性リストから変数を選択し（Ｓ１７）、変数リストを参照して、その選択された変数の「種別」が定数または内部状態であるか否かを判定する（Ｓ１８）。選択された変数の「種別」が定数または内部状態である場合（Ｓ１８でＹＥＳ）、処理ユニット１０１は、選択された変数の固定小数点表現に必要な各属性項目の属性値の他の変数の属性値との関係を、前記式リスト（図７及び図８参照）に示される変数相互の関係から以下の規則に従って設定する（Ｓ１９）。
【００４８】
（１）規則１
式リストにおける右辺または左辺の単項の変数は、他方の辺の変数（複数項であってもよい）と同じ属性値である。
（２）規則２
変数が加減算式の項である場合、その変数は、当該加減算式の他の項の変数と同じ属性値である。
【００４９】
一方、属性リストから選択された変数の「種別」が定数または内部状態でない場合（Ｓ１８でＮＯ）、即ち、その「種別」が入力あるいは出力であると、処理ユニット１０１は、その変数に対する処理を特に行わない。
【００５０】
上記処理の結果、変数Ｕminの図８に示す式リストの変数ｕとの関係から前記規則１に従って、変数Ｕminの固定小数点表現に必要な各属性項目（ビットサイズ、解像度、オフセット、符号の有無）の属性値が変数ｕの属性値と同じであると判定される。変数Ｕmaxについても同様に、図８に示す式リストの変数ｕとの関係から前記規則１に従って、その固定小数点表現に必要な各属性項目の属性値が変数ｕの属性値と同じであると判定される。変数ｕ1については、図７に示す式リストの変数ｕとの関係から前記規則１に従って、その固定小数点表現に必要な各属性項目の属性値が変数ｕの属性値と同じであると判定される。変数Ｙsafeについては、図７に示す式リストの変数ｙとの関係から前記規則１に従って、その固定小数点表現に必要な各属性項目の属性値が変数ｙの属性値と同じであると判定される。従って、図１０に示すように、属性リストの前記変数Ｕmin、Ｕmax、ｕ1のそれぞれに対応した各属性項目に、変数ｕの属性値と同じ属性値であることを表す情報（属性値関係情報）である参照式（＝ｕ）が対応づけられるとともに、変数Ｙsafeに対応した各属性項目に、変数ｙの属性値と同じ属性値であることを表す情報（属性値関係情報）である参照式（＝ｙ）が対応付けられる。
【００５１】
変数Ｕdeltaについては、図８に示す式リストにおける右辺の変数ｕ1と同じ加減式に含まれるという関係から前記規則２に従って、その固定小数点表現に必要な各属性項目の属性値が変数ｕ1の属性値と同じであると判定される。従って、図１１に示すように、属性リストの前記変数Ｕdeltaに対応した各属性項目に、変数ｕ1の属性値と同じ属性値であることを表す情報（属性値関係情報）である参照式（＝ｕ1）が対応づけられる。
【００５２】
このような処理が属性リストにリスト化された全ての変数に対してなされると（Ｓ２０でＹＥＳ）、処理ユニット１０１は、メモリ１０２内には、変数Ｕmin、Ｕmax、ｕ1、Ｕdelta、Ｙsafeの各属性項目に、それらの変数の属性値が他の属性値と同じであることを表す属性関係情報（＝ｕ、＝ｕ1、＝ｙ）が対応付けられた図１１に示すような結果リストが構成される。
【００５３】
なお、変数ｕ、ｙは、その「種別」が入力及び出力であって、定数及び内部状態のいずれでもないので、その各属性項目に対して他の変数の属性値の関係を表す情報（属性関係情報）は設定されない。「種別」が入力、出力となる変数ｕ、ｙの固定小数点表現に必要な各属性項目の属性値は、外部要件としてユーザ（「ソフト設計者」）によって設定されるべきものである。また、変数Ｃは、その「種別」が定数ではあるが、前記規則１及び前記規則２のいずれでも、式リスト（図７参照）の情報からはその属性値の他の変数の属性値との関係が判別できないので、その関係を表す情報（属性関係情報）は設定されない。
【００５４】
処理ユニット１０１は、図１１に示すような結果リストをモニタ１０６（表示部）に表示させる。ユーザは、モニタ１０６に表示される結果リスト（ユーザインタフェース）を見て、変数ｕ、ｙ、Ｃの各属性項目に対する属性値が設定されていないことを知り、操作部１０５を操作して変数ｕ、ｙ、Ｃの各属性項目に対する属性値を入力（設定）する。例えば、図１２に示すように、モニタ１０６に表示される結果リストにおける変数ｕの各属性項目（ビットサイズ、解像度、オフセット、符号）に対してその属性値（ビットサイズ：８、解像度：２-4、オフセット：０、符号：なし）の入力操作なされると、処理ユニット１０１は、結果リストにおける当該変数ｕの各属性項目にその入力された属性値を設定するとともに、変数ｕと同じ属性値であることを表す属性関係情報（参照式＝ｕ）に基づいて、変数ｕmin、Ｕmax、ｕ1それぞれの各属性項目に変数ｕの属性値と同じ属性値を設定する。このように変数ｕ1の各属性項目の属性値が変数ｕとの属性関係情報（＝ｕ）に従って設定されると、処理ユニット１０１は、更に、変数ｕ1と同じ属性値であることを表す属性関係情報（参照式＝ｕ1）に基づいて、変数Ｕdeltaの各属性項目の属性値を、図１３に示すように、変数ｕ1、即ち変数ｕの属性値と同じ属性値を設定する。
【００５５】
更に、モニタ１０６に表示される結果リスト（図１３参照）における変数ｙの各属性項目（ビットサイズ、解像度、オフセット、符号）に対してその属性値（ビットサイズ：８、解像度：２-4、オフセット：０、符号：なし）の入力操作なされると、処理ユニット１０１は、結果リストにおける当該変数ｙの各属性項目にその入力された属性値を設定するともに、変数ｙと同じ属性値であることを表す属性関係情報（参照式＝ｙ）に基づいて、変数Ｙsafeの各属性項目の属性値を、図１４に示すように、変数ｙの属性値と同じ属性値を設定する。また、モニタ１０６に表示される結果リスト（図１４参照）における変数Ｃの各属性項目に対してその属性値の入力操作がなされると、処理ユニット１０１は、結果リストにおける当該変数Ｃの各属性項目にその入力された属性値を設定して、モニタ１０６に表示される結果リストを図１５に示すように更新する。
【００５６】
このようにして、属性リスト（図９参照）にリスト化された全ての変数の固定小数点表現に必要な各属性項目の属性値の設定がなされると、ユーザ（「ソフト設計者」）は、モニタ１０６に表示される結果リスト（図１５参照）に表れている各変数に対する各属性項目の属性値を参照して、浮動小数点表現プログラムから固定小数点表現化プログラムを作成する作業を行う。その結果、図３に示すＣ言語で記述された浮動小数点表現プログラムは、例えば、図１６に示す固定小数点表現プログラムに変換される。なお、この際、各変数に対して設定された固定小数点表現に必要な各属性項目の属性値の情報を用いて、浮動小数点表現プログラムから固定小数点表現化プログラムを作成する公知のアプリケーションソフトウェア（例えば、米国MathWorks 社製  Fixed Point Toolbox）を利用することもできる。
【００５７】
上述したような支援装置では、浮動小数点表現プログラムから抽出される各変数の固定小数点表現に必要な各属性項目（Ｕmin、Ｕmax、ｕ1、Ｕdelta、Ｙsafe）についての属性値の他の変数（ｕ、ｙ）の属性値との関係を表す属性値関係情報（参照式＝ｕ、＝ｙ）の設定された結果リスト（図１１参照）がモニタ１０６にユーザインタフェースとして表示されるので、ユーザ（「ソフト設計者」）は、浮動小数点表現プログラムに含まれる全ての変数に対して当該浮動小数点表現プログラムを解析して個々的にその属性値を求めなくても、一部の変数（ｕ、ｙ、Ｃ）の属性値を求めれば、他の変数については、表示される結果リスト（図１１参照）に挙げられた属性値関係情報に従ってその属性値を求めることができるようになる。
【００５８】
更に、前記支援装置では、前記一部の変数（ｕ、ｙ、Ｃ）の属性値をモニタ１０６に表示される結果リストに入力すれば（図１２、図１３、図１４参照）、支援装置が、他の変数（Ｕmin、Ｕmax、ｕ1、Ｕdelta、Ｙsafe）については、その入力された変数の属性値との関係（属性値関係情報）に基づいて自動的に属性値を設定して結果リストに表示させるので、ユーザは、更に、容易に浮動小数点表現プログラムに含まれる変数の固定小数点表現に必要な各属性項目の属性値を知ることができるようになる。
【００５９】
このように、前記支援装置によれば、浮動小数点表現プログラムにおける固定小数点表現化すべき変数に対する属性値を設定するための手間を低減させることができるようになる。よって、より効率的に固定小数点表現プログラムを作成することができるようになる。
【００６０】
なお、前述した支援装置では、変数の属性値の他の変数の属性値との関係（属性値関係）を前記規則１及び規則２に従って決めていたが、式全体の属性値を判定することによってその関係を決めることもできる。解像度の属性項目については、例えば、図１７に示す関係に従って、ビットサイズの属性項目については、例えば、図１８に示す関係に従って、数値表現範囲のオフセットの属性項目については、例えば、図１９に示す関係に従って、更に、符号の有無の属性項目については、例えば、図２０に示す関係に従って、それぞれ、加算式（ａ＋ｂ）、減算式（ａ−ｂ）、乗算式（ａ×ｂ）及び除算式（ａ／ｂ）の属性値を決めることができる。
【００６１】
また、前記支援装置においては、結果リスト（図１１〜図１５）がユーザインタフェースとしてモニタ１０６に表示されるものであったが、変数リスト（図６）や式リスト（図７、図８）をモニタ１０６に表示させるようにしてもよい。また、各変数（Ｕmin、Ｕmax、ｕ1、Ｕdelta、Ｙsafe）の属性値の他の変数（ｕ、ｙ）の属性値との関係（属性値関係情報）を表示する結果リスト（図１１）だけが表示されるものであってもよい。この場合、ユーザは、その属性値関係情報に従って、自らが操作部１０５を用いて、前記各変数に対する属性値入力の操作を行えばよい。
【００６２】
前述した実施の形態では、Ｃ言語で記載されたプログラム（浮動小数点表現プログラム及び固定小数点表現プログラム）について説明したが、本発明は、そのようなプログラムに限られず、コンピュータが実行可能な言語に直接的または間接的に翻訳可能なものであれば、他の言語や他の形式で記載されたプログラムにも適用することができる。
【産業上の利用可能性】
【００６３】
以上、説明したように、本件発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置は、その浮動小数点表現プログラムにおける固定小数点表現化すべき数要素に対する属性値を設定するための手間を低減させることができるという効果を有し、浮動小数点表現の変数等の数要素を用いた演算処理を記述する浮動小数点表現プログラムを固定小数点表現の数要素を用いた演算処理を記述する固定小数点表現プログラムに変える際のユーザ支援処理を行う浮動小数点表現プログラムの固定小数点表現化支援装置及び支援プログラムとして有用である。
【符号の説明】
【００６４】
１０１  処理ユニット（ＣＰＵ）
１０２  メモリ
１０３  外部記憶装置（ＨＤＤ）
１０５  操作部
１０６  モニタ（表示部）
１０７  バス
【図１】
2011186999.tif 000003
【図２】
2011186999.tif 000004
【図３】
2011186999.tif 000005
【図４】
2011186999.tif 000006
【図５】
2011186999.tif 000007
【図６】
2011186999.tif 000008
【図７】
2011186999.tif 000009
【図８】
2011186999.tif 000010
【図９】
2011186999.tif 000011
【図１０】
2011186999.tif 000012
【図１１】
2011186999.tif 000013
【図１２】
2011186999.tif 000014
【図１３】
2011186999.tif 000015
【図１４】
2011186999.tif 000016
【図１５】
2011186999.tif 000017
【図１６】
2011186999.tif 000018
【図１７】
2011186999.tif 000019
【図１８】
2011186999.tif 000020
【図１９】
2011186999.tif 000021
【図２０】
2011186999.tif 000022