説明

浮動小数点表現プログラムの固定小数点表現化支援装置及び支援プログラム

【課題】浮動小数点表現プログラムにおける固定小数点表現化すべき数要素に対する属性値を設定するための手間を低減させることのできる浮動小数点表現プログラムの固定小数点表現化支援装置及び支援プログラムを提供することである。
【解決手段】浮動小数点表現プログラムにて使用されている数要素を抽出し(数要素情報抽出)、浮動小数点表現プログラムにて使用されている各数要素の他の一または複数の数要素との式で結ばれる関係を抽出し(結合関係情報)、数要素の固定小数点表現に必要な各属性項目についての数要素情報にて表される各数要素の属性値の他の数要素の属性値との関係を表す属性値関係情報を、前記各数要素の他の一または複数の数要素との式で結ばれる関係に基づいて生成し、前記属性値関係情報に基づいて前記各数要素の各属性項目ついての属性値を設定するためのユーザインタフェースを提供するように構成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、浮動小数点表現の変数等の数要素を用いた演算処理を記述する浮動小数点表現プログラムを固定小数点表現の数要素を用いた演算処理を記述する固定小数点表現プログラムに変える際のユーザ支援処理を行う浮動小数点表現プログラムの固定小数点表現化支援装置及び支援プログラムに関する。
【背景技術】
【0002】
一般に、コンピュータ(CPU)が実行する演算処理を記述したプログラムには、その演算処理に用いられる変数、定数等の数要素が浮動小数点表現される浮動小数点表現プログラムと、その演算処理に用いられる変数、定数等の数要素が固定小数点表現される固定小数点表現プログラムがある。浮動小数点表現の数要素(変数、定数等)は、仮数部と指数部にてその数値が表現されることから、同じビットサイズの固定小数点表現の数要素に比べて表現できる数値の範囲を広くすることができ、その精度は、仮数部の桁数によって決まる。一方、固定小数点表現の数要素(変数、定数等)については、その固定小数点表現に必要となる属性項目の値(属性値という)、例えば、解像度(LSB)、サイズ(ビットサイズ)、オフセットの値が定義され、その属性値によって表現できる数値の範囲が決まり、その精度は、特に解像度の値で決まる。
【0003】
一般には、コンピュータに実行させるべき演算処理は、浮動小数点表現プログラムにて記述される。しかし、コンピュータ(CPU)の性能等の制約から、その演算処理を固定小数点表現プログラムにて記述する場合がある。例えば、車両に搭載されるECU(電子制御ユニット)は、物理量(電圧、速度、時間等)を表す信号を数要素(変数や定数)の数値として表して演算処理するが、その演算処理が固定小数点表現プログラムにて記述される場合がある。このような場合、車両エンジン等の制御対象に精通した「制御設計者」が、その制御に係る演算処理を記述する浮動小数点表現プログラムを作成し、その後、その浮動小数点表現プログラムをECU等のコンピュータに精通した「ソフト設計者」がコンピュータの性能等を考慮して固定小数点表現プログラムに書き換えるようにしている。
【0004】
また、前記浮動小数点表現プログラムが作成された後、その浮動小数点表現プログラムを固定小数点表現プログラムに変換するためのプログラム変換装置も提案されている(特許文献1参照)。このプログラム変換装置では、まず、浮動小数点表現プログラムをその実行時に対象変数(数要素)の値の変化が履歴として出力されるように改造したプロファイルプログラムが作成される。次いで、そのプロファイルプログラム(改造された浮動小数点表現プログラム)を実行し、その際に出力される対象変数の値の範囲に基づいて、その変数が固定小数点表現に変換されるように、前記浮動小数点表現プログラムの変更がなされる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−33729号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
前述した従来のプログラム変換装置では、様々な浮動小数点表現プログラムを改造して目的にあったプロファイルプログラムを作成することは難しく、また、種々の条件で変数の取り得る範囲が変わってくるような場合には、多くの条件(パラメータ)のもとでそのプロファイルプログラムを実行させなければならず、その処理量が膨大になってしまう。従って、前述したプログラム変換装置は、汎用性に問題がある。
【0007】
また、浮動小数点表現プログラムをコンピュータに精通した「ソフト設計者」がそのコンピュータの性能等を考慮して固定小数点表現プログラムに書き換える場合、浮動小数点表現プログラムにて用いられる数要素(変数、定数)の固定小数点表現に必要な各属性項目(解像度(LSB)、サイズ(ビットサイズ)、オフセット等)の値、即ち、属性値を定義する必要がある。その「ソフト設計者」が浮動小数点表現プログラムから固定小数点表現化すべき数要素を抽出する際に漏れが生ずる可能性が高く、また、その抽出された数要素に対して各属性項目の属性値を設定するための手間がかかる。
【0008】
本発明は、このような事情に鑑みてなされたもので、浮動小数点表現プログラムにおける固定小数点表現化すべき数要素に対する属性値を設定するための手間を低減させることのできる浮動小数点表現プログラムの固定小数点表現化支援装置及び支援プログラムを提供するものである。
【課題を解決するための手段】
【0009】
本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置は、浮動小数点表現の数要素を用いた演算処理を記述する浮動小数点表現プログラムを固定小数点表現の数要素を用いた演算処理を記述する固定小数点表現プログラムに変える際のユーザ支援処理を行うコンピュータシステムにて構成された浮動小数点表現プログラムの固定小数点表現化支援装置であって、前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている数要素を抽出する数要素抽出手段と、前記抽出された数要素を表す数要素情報を格納する数要素情報格納手段と、前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている各数要素の他の一または複数の数要素との式で結ばれる関係を抽出する関係抽出手段と、前記抽出された関係を表す結合関係情報を格納する関係情報格納手段と、数要素の固定小数点表現に必要な各属性項目についての前記数要素情報にて表される各数要素の属性値の他の数要素の属性値との関係を表す属性値関係情報を、前記結合関係情報にて表される前記各数要素の他の一または複数の数要素との式で結ばれる関係に基づいて生成する属性値関係生成手段と、前記属性値関係情報に基づいて前記各数要素の各属性項目ついての属性値を設定するためのユーザインタフェースを提供する手段とを有する構成となる。
【0010】
このような構成により、浮動小数点表現プログラムから抽出される各数要素の固定小数点表現に必要な各属性項目についての属性値の他の数要素の属性値との関係を表す属性値関係情報に基づいて各数要素の各属性項目についての属性値を設定するためのユーザインタフェースが提供されるので、ユーザは、その提供されるユーザインタフェースにより、浮動小数点表現プログラムに含まれる各数要素の属性値を、直接当該浮動小数点表現プログラムを解析して個々的に設定することなく、他の数要素の属性値との関係に従って設定することができるようになる。
【0011】
前記プログラムは、コンピュータによる処理を表す記述であって、コンピュータが実行可能な言語に直接的または間接的に翻訳可能なものである。また、属性項目は、数要素を固定小数点表現するために必要なものであって、例えば、ビットサイズ、解像度、数値範囲のオフセット、符号の有無等を含み得る。
【0012】
本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記ユーザインタフェースを提供する手段は、前記属性値関係情報に基づいて、前記各属性項目についての前記各数要素の属性値の他の数要素の属性値との関係を表示部に表示させるように構成することができる。
【0013】
このような構成により、浮動小数点表現プログラムから抽出される各数要素の各属性項目についての属性値の他の数要素の属性値との関係が表示部に表示されるので、ユーザは、各数要素の各属性項目についての属性値を浮動小数点表現プログラムから個々的に判断する必要がなく、数要素の属性値を、属性値のわかっている他の数要素の当該属性値との関係から容易に設定することができる。
【0014】
また、本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記関係抽出手段は、数要素と他の一または複数の数要素とが代入式の右辺と左辺となる関係を前記式で結ばれる関係として抽出するよう構成することができる。
【0015】
このような構成により、代入式の右辺と左辺となる関係にある数要素については、その代入式で結ばれる関係に基づいて、一方(例えば、左辺)の数要素の属性値の他方(例えば、右辺)の一または複数の数要素の属性値との関係を表す属性値関係情報を生成することができる。
【0016】
また、本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記関係抽出手段は、数要素と他の一または複数の数要素とが条件式の右辺と左辺となる関係を前記式で結ばれる関係として抽出するように構成することができる。
【0017】
このような構成により、条件式の右辺と左辺となる関係にある数要素については、その条件式で結ばれる関係に基づいて、一方(例えば、左辺)の数要素の属性値の他方(例えば、右辺)の一または複数の数要素の属性値との関係を表す属性値関係情報を生成することができる。
【0018】
更に、本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記数要素抽出手段は、前記浮動小数点表現プログラムにて使用されている変数を数要素として抽出するように構成することができる。
【0019】
このような構成により、浮動小数点表現化プログラムから変数が数要素として抽出されるので、当該浮動小数点表現プログラムに含まれる変数の固定小数点表現に必要な各属性項目の属性値を、ユーザは、直接浮動小数点表現プログラムを解析して個々的に設定することなく、提供されるユーザインタフェースにより、他の数要素の属性値との関係に従って設定することができるようになる。
【0020】
また、本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記数要素抽出手段は、前記浮動小数点表現プログラムにて使用されている定数を数要素として抽出するように構成することができる。
【0021】
このような構成により、浮動小数点表現プログラムから定数が数要素として抽出されるので、当該浮動小数点表現プログラムに含まれる定数の固定小数点表現に必要な各属性項目の属性値を、ユーザは、直接浮動小数点表現プログラムを解析して個々的に設定することなく、提供されるユーザインタフェースにより、他の数要素の属性値との関係に従って設定することができるようになる。
【0022】
更に、本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記属性値関係情報生成手段は、前記抽出された数要素のうち前記浮動小数点表現プログラムが記述する演算処理における内部状態を表す数要素の前記属性値の他の数要素の属性値との関係を表す情報を前記属性値関係情報に含めるように構成することができる。
【0023】
このような構成により、浮動小数点表現プログラムが記述する演算処理における内部状態を表す数要素の属性値の他の数要素の属性値との関係を表す情報が属性値情報に含まれるようになるので、当該浮動小数点プログラムが記述する演算処理における内部状態を表す数要素の固定小数点表現に必要な各属性項目の属性値を、ユーザは、直接浮動小数点表現プログラムを解析して個々的に設定することなく、提供されるユーザインタフェースにより、他の数要素の属性値との関係に従って設定することができるようになる。
【0024】
また、本発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置において、前記属性関係情報生成手段は、前記抽出された数要素のうち前記浮動小数点表現プログラム内における定数の属性値と他の数要素の属性値との関係を表す情報を前記属性値関係情報に含めるように構成することができる。
【0025】
このような構成により、浮動小数点表現プログラム内における定数の属性値の他の数要素の属性値との関係を表す情報が属性値関係情報に含まれるようになるので、当該浮動小数点表現プログラム内の定数の固定小数点表現に必要な各属性項目の属性値を、ユーザは、直接浮動小数点表現プログラムを解析して個々的に設定することなく、提供されるユーザインタフェースにより、他の数要素の属性値との関係に従って設定することができるようになる。
【0026】
本発明に係る支援プログラムは、浮動小数点表現の数要素を用いた演算処理を記述する浮動小数点表現プログラムを固定小数点表現の数要素を用いた演算処理を記述する固定小数点表現プログラムに変える際のユーザ支援処理をコンピュータシステムに実行させる支援プログラムであって、前記コンピュータに、前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている数要素を抽出する数要素抽出ステップと、前記抽出された数要素を表す数要素情報を数要素格納手段に格納するステップと、前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている各数要素の他の一または複数の数要素との関係を抽出する関係抽出ステップと、前記抽出された関係を表す関係情報を関係格納手段に格納するステップと、数要素の固定小数点表現に必要な各属性項目についての前記数要素情報にて表される各数要素の属性値の他の数要素の属性値との関係を表す属性値関係情報を、前記関係情報にて表される前記各数要素の他の一または複数の数要素との関係に基づいて生成する属性値関係生成ステップと、前記属性値関係情報に基づいて前記各数要素の各属性項目ついての属性値を設定するためのユーザインタフェースを提供するステップとを実行させる構成となる。
【0027】
本発明に係る支援プログラムにおいて、前記ユーザインタフェースを提供するステップは、前記属性値関係情報に基づいて、前記各属性項目についての前記各数要素の属性値の他の数要素の属性値との関係を表示部に表示させるように構成することができる。
【発明の効果】
【0028】
本発明に係る浮動小数点表現プログラムの固定小数点表現化装置及び支援プログラムによれば、浮動小数点表現プログラムから抽出される各数要素の固定小数点表現に必要な各属性項目についての属性値の他の数要素の属性値との関係を表す属性値関係情報に基づいて各数要素の各属性項目についての属性値を設定するためのユーザインタフェースが提供され、ユーザは、その提供されるユーザインタフェースにより、浮動小数点表現プログラムに含まれる各数要素の属性値を、直接当該浮動小数点表現プログラムを解析して個々的に求めることなく、他の数要素の属性値との関係に従って求めることができるようになるので、浮動小数点表現プログラムにおける固定小数点表現化すべき数要素に対する属性値を設定するための手間を低減させることができるようになる。
【図面の簡単な説明】
【0029】
【図1】固定小数点表現プログラムの作成手順の一例を示すフローチャートである。
【図2】本発明の実施の形態に係る浮動小数点表現プログラムの固定小数点表現化支援装置を構成するコンピュータシステムを示すブロック図である。
【図3】C言語で記述された浮動小数点表現プログラムの一例を示す図である。
【図4】図3に示す浮動小数点表現プログラムにて記述された演算処理の手順を示すフローチャートである。
【図5】本発明の実施の形態に係る浮動小数点表現プログラムの固定小数点表現化支援装置での処理手順を示すフローチャートである。
【図6】変数リスト(数要素情報)の一例を示す図である。
【図7】代入式の式リスト(結合関係情報)の一例を示す図である。
【図8】条件式の式リスト(結合関係情報)の一例を示す図である。
【図9】空状態の属性リストの一例を示す図である。
【図10】属性値の関係(属性値関係情報)が記述された結果リスト(その1)を示す図である。
【図11】属性値の関係(属性値関係情報)が記述された結果リスト(その2)を示す図である。
【図12】結果リスト(ユーザインタフェース)の変数uの各属性項目に属性値を設定したときの状態(その1)を示す図である。
【図13】結果リスト(ユーザインタフェース)の変数uの各属性項目に属性値を設定したときの状態(その2)を示す図である。
【図14】結果リスト(ユーザインタフェース)の変数yの各属性項目に属性値を設定したときの状態(その1)を示す図である。
【図15】結果リスト(ユーザインタフェース)の変数Cの各属性項目に属性値を設定したときの状態を示す図である。
【図16】図3に示されるC言語で記述された浮動小数点表現プログラムを変換して作成される固定小数点表現プログラムの一例を示す図である。
【図17】式の解像度(属性項目)についての属性値を設定するための規則の一例を示す図である。
【図18】式のサイズ(属性項目)につての属性値を設定するための規則の一例を示す図である。
【図19】式のオフセット(属性項目)につての属性値を設定するための規則の一例を示す図である。
【図20】式の符号(属性項目)についての属性値を設定するための規則の一例を示す図である。
【発明を実施するための形態】
【0030】
以下、本発明の実施の形態について図面を用いて説明する。
【0031】
固定小数点表現プログラムは、例えば、図1に示す手順に従って作成される。図1において、まず、対象の制御(例えば、車両エンジンの燃料噴射制御、車両の走行制御等々)に精通した「制御設計者」が、制御に係る演算処理内容に従って浮動小数点プログラムを作成する(S1)。そして、作成された浮動小数点表現プログラムがテストされ、「制御設計者」は、その処理(アルゴリズム)が意図した通りに進行するか否かを確認する(S2)。意図した通りに進行しない場合(S2でNO)、それが意図した通りに進行するようになる(S2でYES)まで、「制御設計者」は、作成された浮動小数点表現プログラムを修正する(S1)。作成及び修正された浮動小数点表現プログラムに従って処理(アルゴリズム)が「制御設計者」の意図した通りに進行するものであれば(S2でYES)、浮動小数点表現プログラムが完成し、「制御設計者」の作業が終了する。
【0032】
次に、「制御設計者」に代わって実際に使用されるコンピュータシステム(例えば、車両搭載のECU等)の性能に精通した「ソフト設計者」が、そのコンピュータシステムの制約(メモリ容量、計算量)等を考慮して、前記浮動小数点表現プログラムを固定小数点表現プログラムに変換する(S3、S4)。具体的には、浮動小数点表現プログラムから当該浮動小数点プログラムに使用されている変数及び定数(数要素)を抽出し、その抽出された変数及び定数のそれぞれに対して固定小数点表現に必要な属性項目(例えば、ビットサイズ、解像度、数値範囲のオフセット、符号の有無等)の属性値を設定する。そして、各属性項目の属性値の設定(定義)された変数及び定数をもって、前述した浮動小数点表現プログラムにて記述された演算処理と同じ内容の演算処理を記述する固定小数点表現プログラムが作成される(S3)。
【0033】
そして、その「ソフト設計者」は、作成された固定小数点表現プログラムに従って演算処理を実際のコンピュータシステムに実行させ、その実行結果を確認する(S4)。固定小数点表現プログラムに従った前記処理の結果は、数値の誤差とオーバーフロー(固定小数点で表現できる範囲を越えた値になること)によって、浮動小数点表現プログラムに従った処理の結果と異なる。これが、当該コンピュータシステムの動作として許されない場合には、変数や定数の各属性項目の属性値の再設定を行って固定小数点表現プログラムを修正する。この作業を繰り返して、固定小数点表現プログラムに従った処理のコンピュータシステムでの動作結果が、許容されるものとなったとき、その固定小数点表現プログラムが完成する。
【0034】
本発明の実施の形態に係る浮動小数点表現プログラムの固定小数点表現化支援装置(以下、実施の形態の説明において支援装置という)は、前述した、浮動小数点表現プログラムで用いられる変数や定数の数要素の固定小数点表現に必要となる各属性項目の属性値を設定する際(図1におけるS3)に、ユーザの作業を支援するために利用される。
【0035】
本発明の実施の一形態に係る支援装置を構成するコンピュータシステムは、図2に示すように構成される。
【0036】
図2において、このコンピュータシステム(支援装置)は、プログラムに従って種々の処理を実行する処理ユニット(CPU)101を有している。処理ユニット101には、バス107を介してメモリ102、ハードディスク装置等の外部記憶装置103、マウス、キーボード等の操作部105及びモニタ106(表示部)が接続されている。処理ユニット101は、ユーザによる操作部105での操作に基づいた操作信号に応じて外部記憶装置103から浮動小数点表現プログラムの固定小数点表現化の支援処理に係るプログラムをメモリ103に読み出し、そのプログラムに従って処理を実行する。その処理の実行により生成される支援情報がモニタ106に表示される(ユーザインタフェース)。
【0037】
固定小数点表現化すべき浮動小数点表現プログラムは、予め外部記憶装置103に格納されている。この浮動小数点表現プログラムは、例えば、図3に示すようにC言語で記述される。図3に示す浮動小数点表現プログラムは、センサからの入力uを補正して出力yを得る演算処理を記述したもので、その処理手順は、図4に示すフローチャートによっても表すことができる。この演算処理を簡単に説明する。
【0038】
センサからの入力uは、多くのノイズを含んでいるため、その入力uに対してローパスフィルタ処理が施される。具体的には、
y=C・u+(1−C)・y
y:前回の出力値
C:フィルタ係数(0.0≦C≦1.0)
に従って、フィルタ出力yが算出される。
更に、センサ自体の回路や当該センサをCPUに接続する信号線は、物理的な故障の危険性をはらんでおり、CPUが故障を検知し、適切な処理をさせる必要がある。そこで、センサからサンプリングされる入力uが連続(Nf1回)して規定範囲外であればセンサが故障(断線、ショート)しているとして値(true)が変数fxにセットされ、サンプリングされる入力uの変化量(|u1−u|)が連続(Nf2回)して既定値(Udelta)より大きくなればセンサが故障(センサ破壊)しているとして値(true)が変数fxにセットされる。そして、変数fxが値(ture)にセットされていると(センサ故障の場合)、フィルタ出力yは、強制的に安全な固定値(Ysafe)に設定される。
【0039】
以下、このような演算処理を記述する浮動小数点表現プログラム(図3及び図4参照)を固定小数点表現化する場合を例に、本支援装置の動作について説明する。
【0040】
処理ユニット101は、ユーザ(「ソフト設計者」)による操作部105の所定の操作に従って、例えば、図3に示すようにC言語で記述された浮動小数点表現プログラムを外部記憶装置103からメモリ102上に読み出して、図5に示す手順に従って支援処理を実行する。
【0041】
処理ユニット101は、メモリ102に展開された浮動小数点表現プロラムの字句構造を解析して、当該浮動小数点表現プログラムにて使用されている変数及び定数(数要素:以下、便宜上、単に変数という)を抽出し、その情報(数要素情報)をリスト化した変数リストを作成する(S11)。その変数リストはメモリ102(数要素格納手段)に格納される。処理ユニット101は、前記変数とともに当該浮動小数点表現プログラムにおいて当該変数に対して定義される情報(定義情報)も抽出しており、その定義情報が変数に対応するように前記変数リストに含められている。例えば、図3に示すC言語で記述された浮動小数点表現プログラムから以下の変数が抽出される。


nf1
nf2
fx

Umin
Umax
u1
Udelta
Nf1
Nf2
Ysafe
【0042】
これらの変数とともに、各変数に対して定義される定義情報である「種別」及び「型」が抽出され、前記変数(変数名)及び「種別」、「型」の定義情報から、例えば、図6に示すような変数リストが作成される。なお、「種別」は、入力、出力、内部情報、定数等の変数(数要素)の種類についての定義情報である。内部情報は、その浮動小数点表現プログラムが記述する演算処理において保持される計数値や設定値等の内部状態をいう。「型」は、C言語で決められている変数(数要素)の型であって、浮動小数点型(float)、整数値型(int)、真偽値型(bool)、倍精度浮動小数点型(double)、文字型(char)等がある。
【0043】
次いで、処理ユニット101は、メモリ102に展開された浮動小数点表現プログラムの字句構造を解析して、当該浮動小数点プログラムにて使用される各変数の他の一または複数の変数との式で結ばれている関係を抽出する(S12)。具体的には、変数と他の一または複数の変数とが、変数の値を更新するための代入式の右辺と左辺となる関係、及び変数と他の一または複数の変数とが、条件分岐に係る条件式の右辺と左辺となる関係が抽出され、その関係を表す情報(結合関係情報)をリスト化した式リストが生成される。式リストは、メモリ102(関係情報格納手段)に格納される。例えば、図3(図4参照)に示すC言語で記述された浮動小数点表現プログラムから以下の関係が抽出される。
代入式
nf1=nf1+1
fx=true
nf 1=0
nf2=nf2+1
nf2=0
u1=u
y=C*u+(1−C)*y
y=Ysafe

条件式
u<umin
nf1>Nf1
Umax<u
u<u1−Udelta
u1+Udelta<u
nf2>Nf2
fx=true
【0044】
そして、前記代入式に係る関係から図7に示すような式リストが作成され、前記条件式に係る関係から図8に示すような式リストが生成される。
【0045】
処理ユニット101は、変数リスト(図6参照)及び式リスト(図7及び図8参照)を作成すると、変数リストから変数を選択し(S13)、その変数が後述する属性リストに含まれていないか否か及びその変数の「型」が浮動小数点型(float)または倍精度浮動小数点型(double)であるか否かを判定する(S14)。変数リストから選択された前記変数がまだ属性リストに含まれておらず、かつ、その「型」が浮動小数点型(float)または倍精度浮動小数点型(double)である場合(S14でYES)、処理ユニット101は、外部記憶装置103から読み出してメモリ102に展開している属性リストに前記変数リストから選択した前記変数を追加する(S15)。
【0046】
この属性リストは、各変数の固定小数点表現に必要な各属性項目(ビットサイズ、解像度、数値範囲表現のオフセット、符号の有無)の属性値をリスト化して表すもので、具体的には、図9に示すように構成される。図6に示す変数リストからは、「型」が浮動小数点型(float)または倍精度浮動小数点型(double)の次の変数が属性リストに加えられる(図9参照)。



Umin
Umax
u1
Udelta
Ysafe
【0047】
処理ユニット101が変数リスト(図6参照)内の全ての変数についての前記処理(S14、S15)を終えると(S16でYES)、メモリ102内には、浮動小数点表現プログラムに含まれる浮動小数点型(float)及び倍精度浮動小数点型(double)の全ての変数がリスト化された図9に示す属性リストが構成される。次いで、処理ユニット101は、前記属性リストから変数を選択し(S17)、変数リストを参照して、その選択された変数の「種別」が定数または内部状態であるか否かを判定する(S18)。選択された変数の「種別」が定数または内部状態である場合(S18でYES)、処理ユニット101は、選択された変数の固定小数点表現に必要な各属性項目の属性値の他の変数の属性値との関係を、前記式リスト(図7及び図8参照)に示される変数相互の関係から以下の規則に従って設定する(S19)。
【0048】
(1)規則1
式リストにおける右辺または左辺の単項の変数は、他方の辺の変数(複数項であってもよい)と同じ属性値である。
(2)規則2
変数が加減算式の項である場合、その変数は、当該加減算式の他の項の変数と同じ属性値である。
【0049】
一方、属性リストから選択された変数の「種別」が定数または内部状態でない場合(S18でNO)、即ち、その「種別」が入力あるいは出力であると、処理ユニット101は、その変数に対する処理を特に行わない。
【0050】
上記処理の結果、変数Uminの図8に示す式リストの変数uとの関係から前記規則1に従って、変数Uminの固定小数点表現に必要な各属性項目(ビットサイズ、解像度、オフセット、符号の有無)の属性値が変数uの属性値と同じであると判定される。変数Umaxについても同様に、図8に示す式リストの変数uとの関係から前記規則1に従って、その固定小数点表現に必要な各属性項目の属性値が変数uの属性値と同じであると判定される。変数u1については、図7に示す式リストの変数uとの関係から前記規則1に従って、その固定小数点表現に必要な各属性項目の属性値が変数uの属性値と同じであると判定される。変数Ysafeについては、図7に示す式リストの変数yとの関係から前記規則1に従って、その固定小数点表現に必要な各属性項目の属性値が変数yの属性値と同じであると判定される。従って、図10に示すように、属性リストの前記変数Umin、Umax、u1のそれぞれに対応した各属性項目に、変数uの属性値と同じ属性値であることを表す情報(属性値関係情報)である参照式(=u)が対応づけられるとともに、変数Ysafeに対応した各属性項目に、変数yの属性値と同じ属性値であることを表す情報(属性値関係情報)である参照式(=y)が対応付けられる。
【0051】
変数Udeltaについては、図8に示す式リストにおける右辺の変数u1と同じ加減式に含まれるという関係から前記規則2に従って、その固定小数点表現に必要な各属性項目の属性値が変数u1の属性値と同じであると判定される。従って、図11に示すように、属性リストの前記変数Udeltaに対応した各属性項目に、変数u1の属性値と同じ属性値であることを表す情報(属性値関係情報)である参照式(=u1)が対応づけられる。
【0052】
このような処理が属性リストにリスト化された全ての変数に対してなされると(S20でYES)、処理ユニット101は、メモリ102内には、変数Umin、Umax、u1、Udelta、Ysafeの各属性項目に、それらの変数の属性値が他の属性値と同じであることを表す属性関係情報(=u、=u1、=y)が対応付けられた図11に示すような結果リストが構成される。
【0053】
なお、変数u、yは、その「種別」が入力及び出力であって、定数及び内部状態のいずれでもないので、その各属性項目に対して他の変数の属性値の関係を表す情報(属性関係情報)は設定されない。「種別」が入力、出力となる変数u、yの固定小数点表現に必要な各属性項目の属性値は、外部要件としてユーザ(「ソフト設計者」)によって設定されるべきものである。また、変数Cは、その「種別」が定数ではあるが、前記規則1及び前記規則2のいずれでも、式リスト(図7参照)の情報からはその属性値の他の変数の属性値との関係が判別できないので、その関係を表す情報(属性関係情報)は設定されない。
【0054】
処理ユニット101は、図11に示すような結果リストをモニタ106(表示部)に表示させる。ユーザは、モニタ106に表示される結果リスト(ユーザインタフェース)を見て、変数u、y、Cの各属性項目に対する属性値が設定されていないことを知り、操作部105を操作して変数u、y、Cの各属性項目に対する属性値を入力(設定)する。例えば、図12に示すように、モニタ106に表示される結果リストにおける変数uの各属性項目(ビットサイズ、解像度、オフセット、符号)に対してその属性値(ビットサイズ:8、解像度:2-4、オフセット:0、符号:なし)の入力操作なされると、処理ユニット101は、結果リストにおける当該変数uの各属性項目にその入力された属性値を設定するとともに、変数uと同じ属性値であることを表す属性関係情報(参照式=u)に基づいて、変数umin、Umax、u1それぞれの各属性項目に変数uの属性値と同じ属性値を設定する。このように変数u1の各属性項目の属性値が変数uとの属性関係情報(=u)に従って設定されると、処理ユニット101は、更に、変数u1と同じ属性値であることを表す属性関係情報(参照式=u1)に基づいて、変数Udeltaの各属性項目の属性値を、図13に示すように、変数u1、即ち変数uの属性値と同じ属性値を設定する。
【0055】
更に、モニタ106に表示される結果リスト(図13参照)における変数yの各属性項目(ビットサイズ、解像度、オフセット、符号)に対してその属性値(ビットサイズ:8、解像度:2-4、オフセット:0、符号:なし)の入力操作なされると、処理ユニット101は、結果リストにおける当該変数yの各属性項目にその入力された属性値を設定するともに、変数yと同じ属性値であることを表す属性関係情報(参照式=y)に基づいて、変数Ysafeの各属性項目の属性値を、図14に示すように、変数yの属性値と同じ属性値を設定する。また、モニタ106に表示される結果リスト(図14参照)における変数Cの各属性項目に対してその属性値の入力操作がなされると、処理ユニット101は、結果リストにおける当該変数Cの各属性項目にその入力された属性値を設定して、モニタ106に表示される結果リストを図15に示すように更新する。
【0056】
このようにして、属性リスト(図9参照)にリスト化された全ての変数の固定小数点表現に必要な各属性項目の属性値の設定がなされると、ユーザ(「ソフト設計者」)は、モニタ106に表示される結果リスト(図15参照)に表れている各変数に対する各属性項目の属性値を参照して、浮動小数点表現プログラムから固定小数点表現化プログラムを作成する作業を行う。その結果、図3に示すC言語で記述された浮動小数点表現プログラムは、例えば、図16に示す固定小数点表現プログラムに変換される。なお、この際、各変数に対して設定された固定小数点表現に必要な各属性項目の属性値の情報を用いて、浮動小数点表現プログラムから固定小数点表現化プログラムを作成する公知のアプリケーションソフトウェア(例えば、米国MathWorks 社製 Fixed Point Toolbox)を利用することもできる。
【0057】
上述したような支援装置では、浮動小数点表現プログラムから抽出される各変数の固定小数点表現に必要な各属性項目(Umin、Umax、u1、Udelta、Ysafe)についての属性値の他の変数(u、y)の属性値との関係を表す属性値関係情報(参照式=u、=y)の設定された結果リスト(図11参照)がモニタ106にユーザインタフェースとして表示されるので、ユーザ(「ソフト設計者」)は、浮動小数点表現プログラムに含まれる全ての変数に対して当該浮動小数点表現プログラムを解析して個々的にその属性値を求めなくても、一部の変数(u、y、C)の属性値を求めれば、他の変数については、表示される結果リスト(図11参照)に挙げられた属性値関係情報に従ってその属性値を求めることができるようになる。
【0058】
更に、前記支援装置では、前記一部の変数(u、y、C)の属性値をモニタ106に表示される結果リストに入力すれば(図12、図13、図14参照)、支援装置が、他の変数(Umin、Umax、u1、Udelta、Ysafe)については、その入力された変数の属性値との関係(属性値関係情報)に基づいて自動的に属性値を設定して結果リストに表示させるので、ユーザは、更に、容易に浮動小数点表現プログラムに含まれる変数の固定小数点表現に必要な各属性項目の属性値を知ることができるようになる。
【0059】
このように、前記支援装置によれば、浮動小数点表現プログラムにおける固定小数点表現化すべき変数に対する属性値を設定するための手間を低減させることができるようになる。よって、より効率的に固定小数点表現プログラムを作成することができるようになる。
【0060】
なお、前述した支援装置では、変数の属性値の他の変数の属性値との関係(属性値関係)を前記規則1及び規則2に従って決めていたが、式全体の属性値を判定することによってその関係を決めることもできる。解像度の属性項目については、例えば、図17に示す関係に従って、ビットサイズの属性項目については、例えば、図18に示す関係に従って、数値表現範囲のオフセットの属性項目については、例えば、図19に示す関係に従って、更に、符号の有無の属性項目については、例えば、図20に示す関係に従って、それぞれ、加算式(a+b)、減算式(a−b)、乗算式(a×b)及び除算式(a/b)の属性値を決めることができる。
【0061】
また、前記支援装置においては、結果リスト(図11〜図15)がユーザインタフェースとしてモニタ106に表示されるものであったが、変数リスト(図6)や式リスト(図7、図8)をモニタ106に表示させるようにしてもよい。また、各変数(Umin、Umax、u1、Udelta、Ysafe)の属性値の他の変数(u、y)の属性値との関係(属性値関係情報)を表示する結果リスト(図11)だけが表示されるものであってもよい。この場合、ユーザは、その属性値関係情報に従って、自らが操作部105を用いて、前記各変数に対する属性値入力の操作を行えばよい。
【0062】
前述した実施の形態では、C言語で記載されたプログラム(浮動小数点表現プログラム及び固定小数点表現プログラム)について説明したが、本発明は、そのようなプログラムに限られず、コンピュータが実行可能な言語に直接的または間接的に翻訳可能なものであれば、他の言語や他の形式で記載されたプログラムにも適用することができる。
【産業上の利用可能性】
【0063】
以上、説明したように、本件発明に係る浮動小数点表現プログラムの固定小数点表現化支援装置は、その浮動小数点表現プログラムにおける固定小数点表現化すべき数要素に対する属性値を設定するための手間を低減させることができるという効果を有し、浮動小数点表現の変数等の数要素を用いた演算処理を記述する浮動小数点表現プログラムを固定小数点表現の数要素を用いた演算処理を記述する固定小数点表現プログラムに変える際のユーザ支援処理を行う浮動小数点表現プログラムの固定小数点表現化支援装置及び支援プログラムとして有用である。
【符号の説明】
【0064】
101 処理ユニット(CPU)
102 メモリ
103 外部記憶装置(HDD)
105 操作部
106 モニタ(表示部)
107 バス

【特許請求の範囲】
【請求項1】
浮動小数点表現の数要素を用いた演算処理を記述する浮動小数点表現プログラムを固定小数点表現の数要素を用いた演算処理を記述する固定小数点表現プログラムに変える際のユーザ支援処理を行うコンピュータシステムにて構成された浮動小数点表現プログラムの固定小数点表現化支援装置であって、
前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている数要素を抽出する数要素抽出手段と、
前記抽出された数要素を表す数要素情報を格納する数要素情報格納手段と、
前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている各数要素の他の一または複数の数要素との式で結ばれる関係を抽出する関係抽出手段と、
前記抽出された関係を表す結合関係情報を格納する関係情報格納手段と、
数要素の固定小数点表現に必要な各属性項目についての前記数要素情報にて表される各数要素の属性値の他の数要素の属性値との関係を表す属性値関係情報を、前記結合関係情報にて表される前記各数要素の他の一または複数の数要素との式で結ばれる関係に基づいて生成する属性値関係生成手段と、
前記属性値関係情報に基づいて前記各数要素の各属性項目ついての属性値を設定するためのユーザインタフェースを提供する手段とを有する浮動小数点表現プログラムの固定小数点化支援装置。
【請求項2】
前記ユーザインタフェースを提供する手段は、前記属性値関係情報に基づいて、前記各属性項目についての前記各数要素の属性値の他の数要素の属性値との関係を表示部に表示させる請求項1記載の浮動小数点表現プログラムの固定小数点表現化支援装置。
【請求項3】
前記関係抽出手段は、数要素と他の一または複数の数要素とが代入式の右辺と左辺となる関係を前記式で結ばれる関係として抽出する請求項1または2記載の浮動小数点表現プログラムの固定小数点表現化支援装置。
【請求項4】
前記関係抽出手段は、数要素と他の一または複数の数要素とが条件式の右辺と左辺となる関係を前記式で結ばれる関係として抽出する請求項1乃至3のいずれかに記載の浮動小数点表現プログラムの固定小数点表現化支援装置。
【請求項5】
前記数要素抽出手段は、前記浮動小数点表現プログラムにて使用されている変数を数要素として抽出する請求項1乃至4のいずれかに記載の浮動小数点表現プログラムの固定小数点表現化支援装置。
【請求項6】
前記数要素抽出手段は、前記浮動小数点表現プログラムにて使用されている定数を数要素として抽出する請求項1乃至5のいずれかに記載の浮動小数点表現プログラムの固定小数点表現化装置。
【請求項7】
前記属性値関係情報生成手段は、前記抽出された数要素のうち前記浮動小数点表現プログラムが記述する演算処理における内部状態を表す数要素の前記属性値の他の数要素の属性値との関係を表す情報を前記属性値関係情報に含める請求項1乃至6のいずれかに記載の浮動小数点表現プログラムの固定小数点表現化支援装置。
【請求項8】
前記属性関係情報生成手段は、前記抽出された数要素のうち前記浮動小数点表現プログラム内における定数の属性値と他の数要素の属性値との関係を表す情報を前記属性値関係情報に含める請求項1乃至7のいずれかに記載の浮動小数点表現プログラムの固定小数点表現化支援装置。
【請求項9】
浮動小数点表現の数要素を用いた演算処理を記述する浮動小数点表現プログラムを固定小数点表現の数要素を用いた演算処理を記述する固定小数点表現プログラムに変える際のユーザ支援処理をコンピュータシステムに実行させる支援プログラムであって、
前記コンピュータに、
前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている数要素を抽出する数要素抽出ステップと、
前記抽出された数要素を表す数要素情報を数要素格納手段に格納するステップと、
前記浮動小数点表現プログラムの記述を解析して、当該浮動小数点表現プログラムにて使用されている各数要素の他の一または複数の数要素との関係を抽出する関係抽出ステップと、
前記抽出された関係を表す関係情報を関係格納手段に格納するステップと、
数要素の固定小数点表現に必要な各属性項目についての前記数要素情報にて表される各数要素の属性値の他の数要素の属性値との関係を表す属性値関係情報を、前記関係情報にて表される前記各数要素の他の一または複数の数要素との関係に基づいて生成する属性値関係生成ステップと、
前記属性値関係情報に基づいて前記各数要素の各属性項目ついての属性値を設定するためのユーザインタフェースを提供するステップとを実行させる支援プログラム。
【請求項10】
前記ユーザインタフェースを提供するステップは、前記属性値関係情報に基づいて、前記各属性項目についての前記各数要素の属性値の他の数要素の属性値との関係を表示部に表示させる請求項9記載の支援プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2011−186999(P2011−186999A)
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願番号】特願2010−54325(P2010−54325)
【出願日】平成22年3月11日(2010.3.11)
【出願人】(598088871)キャッツ株式会社 (9)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】