米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 日産自動車株式会社

発明の名称 演算順序チェック装置およびその方法
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2003−316615(P2003−316615A)
公開日 平成15年11月7日(2003.11.7)
出願番号 特願2002−126515(P2002−126515)
出願日 平成14年4月26日(2002.4.26)
代理人 【識別番号】100086450
【弁理士】
【氏名又は名称】菊谷 公男 (外2名)
【テーマコード(参考)】
5B042
5B076
5B098
【Fターム(参考)】
5B042 GA23 HH08 
5B076 EC02
5B098 GA01 JJ06
発明者 菊池 光彦
要約 課題
プログラムの関数の演算順序が問題を起こす可能性のある箇所を容易に発見可能とする。

解決手段
変数抽出部2でプログラムの各関数が書き込みまたは読み込むグローバル変数を抽出し、この変数ごとに関数抽出部3でその変数を書き込みまたは読み込む関数を抽出する。処理判別部4は、抽出した関数が上記変数を読み込むのか書き込むのかを判別する。演算順序識別部5は、抽出した関数のプログラム中の演算順序を識別し、演算順序チェック部6では、処理判別部4の結果にしたがって関数に大小による関係付けを行い、演算順序結果と比較して問題を起こす可能性のある箇所を抽出する。この比較結果は表示部7に表示される。
特許請求の範囲
【請求項1】 複数の関数を有するプログラムから、前記各関数が書き込み処理または読み込み処理を行うグローバル変数を抽出する変数抽出手段と、該変数抽出手段によって抽出したグローバル変数ごとに、該グローバル変数の書き込み処理または読み込み処理を行う関数を抽出する関数抽出手段と、該関数抽出手段により抽出した関数が、前記グローバル変数を書き込み処理するのか、あるいは前記グローバル変数を読み込み処理するのかを判別する処理判別手段と、前記関数抽出手段によって抽出した関数の演算順序を識別する演算順序識別手段と、前記処理判別手段で得た関数の処理判別結果と前記演算順序識別手段で得た関数の演算順序とに基づいて演算順序のチェックを行う演算順序チェック手段とを有していることを特徴とする演算順序チェック装置。
【請求項2】 前記演算順序チェック手段は、前記処理判別手段により判別した読み込み処理を行う関数と書き込み処理を行う関数とを、書き込み処理を行う関数<読み込み処理を行う関数として大小による関係付けを行うとともに、前記演算順序識別手段により識別した関数の演算順序に基づき、演算を行う順序が後になるにしたがって大きくなる数値を各関数に付与し、前記関数の大小関係と前記関数に付与した数値とに基づいて演算順序のチェックを行うことを特徴とする請求項1に記載の演算順序チェック装置。
【請求項3】 前記演算順序識別手段は、前記関数が前記プログラム中に記述された行番号から前記関数の演算順序を識別することを特徴とする請求項1または2のいずれかに記載の演算順序チェック装置。
【請求項4】 前記演算順序チェック手段による演算順序のチェック結果を表示する表示手段を有していることを特徴とする請求項1から3のいずれか1に記載の演算順序チェック装置。
【請求項5】 複数の関数を有するプログラムから、前記各関数が書き込み処理または読み込み処理を行うグローバル変数を抽出し、該抽出したグローバル変数ごとに、該グローバル変数の書き込み処理または読み込み処理を行う関数を抽出し、該抽出した関数が、前記グローバル変数を書き込み処理するのか、あるいは該グローバル変数を読み込み処理するのかを判別するとともに、前記抽出した関数のプログラムにおける演算順序を識別して、前記関数が行う処理の判別結果と前記関数のプログラムにおける演算順序とに基づいて演算順序のチェックを行うようにしたことを特徴とする演算順序チェック方法。
【請求項6】 前記演算順序のチェックにおいては、前記判別結果における書き込み処理を行う関数と読み込み処理を行う関数とを、書き込み処理を行う関数<読み込み処理を行う関数として大小による関係付けを行うとともに、前記プログラムにおける演算順序が後になるにしたがって大きくなる数値を各関数に付与して、前記関数の大小関係と前記関数に付与した数値とに基づいて演算順序のチェックを行うようにしたことを特徴する請求項5に記載の演算順序チェック方法。
【請求項7】 前記プログラムにおける演算順序は、前記関数が前記プログラム中に記述された行番号から識別するようにしたことを特徴とする請求項5または6に記載の演算順序チェック方法。
発明の詳細な説明
【0001】
【発明の属する技術分野】本発明は、プログラム中の関数がその演算順序で問題を起こす可能性のある箇所を発見する演算順序チェック装置およびその方法に関する。
【0002】
【従来の技術】電子制御装置では、これに内蔵するプログラムが複数のモジュールから組み立てられて、モジュールが周期的に実行されることがよく行われる。このモジュールの周期的な実行は、ワンチップ・マイクロコンピュータに内蔵してあるタイマ、あるいは外付けしたタイマのクロック信号を利用して周期的に割り込みを発生させ、その割り込みをトリガとしてモジュールを起動させるようにして行なわれている。この場合、プログラムの実行にリアルタイム・オペレーティング・システムを用いるものでは、オペレーティング・システムが上記周期時間を管理するとともに、周期的にモジュールを実行させるようになっている。
【0003】
【発明が解決しようとする課題】上記各モジュールは、複数のサブモジュールから成り立っていることが多いので、モジュールの実行では多くのサブモジュールが周期的に順を追って実行される。この場合、サブモジュールの演算順序をどうプログラミングするかによっては、以下の問題が生じる。
【0004】すなわち、車両におけるテールランプの点灯制御とその球切れの検出を行う電子制御装置を例に挙げれば、図9に示すように、ドライバの手動によるスイッチ101の操作に応じてスイッチ端子102がON(Hレベル)またはOFF(Lレベル)の値をとる。この値は、マイクロコンピュータ103へ入力される。マイクロコンピュータ103は、その入力されたスイッチ端子102の値に応じて、テールランプ105制御用のトランジスタ106のベースに接続された制御端子104をON(Hレベル)状態あるいはOFF(Lレベル)状態とする。
【0005】すなわち、ドライバがテールランプ105を点灯しようとスイッチ101をON操作すると、制御端子104がON状態となってトランジスタ106をONさせ、テールランプ105へ電流を流すことによりこれを点灯する。スイッチ101をOFF操作すれば、制御端子104がOFF状態となり、トランジスタ106をOFFとしてテールランプ105へ電流が流れず、テールランプ105は消灯状態となる。
【0006】一方、マイクロコンピュータ103は、テールランプ105とトランジスタ106との間に接続されたモニタ端子107をモニタしており、テールランプ105が点灯していればOFF(Lレベル)を検出し、テールランプ105が点灯していなければON(Hレベル)を検出する。したがって、テールランプ105が球切れしていない状態では、スイッチ端子102がONのときは、制御端子104がONレベルで、モニタ端子107がOFFレベルとなる。これに対し、テールランプ105が球切れしている状態では、スイッチ端子102がONのときは、制御端子104がONレベルで、モニタ端子107がONレベルとなる。
【0007】上記モニタ端子の信号の検出結果に応じて、マイクロコンピュータ103は、前者の状態では警告灯端子108をOFF(Lレベル)とすることにより警告灯トランジスタ109をOFF状態に保つので、警告灯110を点灯させることはない。これに対し、後者の状態では、警告灯端子108をON(Hレベル)にすることにより警告灯トランジスタ109をONさせ、警告灯110を点灯する。
【0008】図10は、上記制御を実現するためのモジュールの構成例を、変数および関数との関係で示す。ここでは、上記制御を実行するモジュールは、3つのサブモジュール(関数)から実現されるように構成されている。すなわち、スイッチ端子102をマイクロコンピュータ103の入力ポート変数Pに割り付け、この入力ポート変数Pの値を関数Aで読み込み、グローバル変数Xに保存する。また、モニタ端子107をマイクロコンピュータ103の入力ポート変数Qに割り付け、この入力ポート変数Qの値を関数Bで読み込み、グローバル変数Yに保存する。
【0009】関数Cはグローバル変数Xの値を読み込み、制御端子104に割り当てた出力ポート変数Sへその値を書き込むことにより、スイッチ端子102がONであれば制御端子104をONレベルとしてテールランプ105を点灯させ、スイッチ端子102がOFFであれば逆にテールランプ105を消灯させる。また関数Cは、グローバル変数Yの値をも読み込んでテールランプ105の球切れの判定を行い、警告灯端子108に割り付けた出力ポート変数Rへその値を書き込むことにより、判定の結果が球切れであれば警告灯109を点灯させ、球切れしていなければ警告灯を非点灯とする。
【0010】ここで、上記サブモジュールの演算順序が、たとえば図11に示すように関数A→関数C→関数Bといった順となるようにプログラミングされたとする。なお、これらの関数は、上記順序で周期的な割り込みごとに実行される。この場合、周期t−3、t−2、t−1(ただし、周期t−3、t−2は、周期t−1より前の周期であるが、図11では省略してある)のときは、スイッチ101がOFFであったとすると、周期t−1におけるグローバル変数Xの値はOFFである。また、このときテールランプ105の球切れが生じていなければ、グローバル変数Yの値はONである。
【0011】上記演算にあっては、まず関数Aがスイッチ端子102に対応する入力ポート変数Pを読み込んでグローバルグローバル変数Xとして保存し、次に関数Cがグローバル変数X、Yを読み込み、その後で関数Bが入力ポート変数Qを読み込んでグローバルグローバル変数Yとして保存するといった順序で関数が実行される。このため、周期t−1と周期tとの間でスイッチ101がOFFからONに切り替えられた場合、周期tに関数Cが読み込むグローバル変数X、Yの値は、グローバル変数XではOFFからONに変わっているが、グローバル変数Yでは関数Bで読み込んだ入力ポート変数Qが周期t−1のときにおける値のままでONであり、OFFになっていない。
【0012】したがって、周期tにおいて、関数Cは、スイッチ101がONでテールランプ105が点灯しているにもかかわらず、テールランプ105が点灯していないと誤判断する。この結果、テールランプ105が球切れしていないにもかかわらず、警告灯110を点灯させてしまうといった不具合が生じる。これに対し、上記関数の演算順序が上記の順序と異なり、関数A→関数B→関数Cの順でプログラミングされていれば、周期tにおいて関数Cは、グローバル変数XがONであり、かつグローバル変数YがOFFであると認識するので、上記のような誤判断をすることはない。
【0013】以上の説明から明らかなように、関数の演算順序によっては不具合が発生する場合があり得る。そこで、プログラムの開発者は、問題が生じるおそれのある演算順序で作成してしまったプログラムの不具合箇所があるか否かを確かめなければならず、従来は電子制御装置を試作して実験しながら関数の演算順序をチェックしていた。このため、演算順序が問題が生じない順序から逆転している可能性のある箇所を発見するには、非常な困難を伴い、多数の工数を必要としていた。したがって本発明は、演算順序が逆転する可能性のある箇所を自動的に抽出可能な演算順序チェック装置およびその方法を提供することを目的とする。
【0014】
【課題を解決するための手段】このため、本発明では、プログラム中の各関数が書き込み処理または読み込み処理を行うグローバル変数を抽出し、このグローバル変数ごとにその書き込み処理または読み込み処理を行う関数を抽出して、これらが書き込み処理または読み込み処理のいずれを行うのかを判別するものとし、この判別結果と抽出した関数のプログラムにおける演算順序とに基づいて演算順序のチェックを行うものとした。
【0015】
【発明の効果】本発明は、抽出した関数が書き込み処理するのか読みとり処理をするのかを判別した結果とプログラム中の当該関数の演算順序とを比較してチェックを行うようにしたので、プログラム中、演算順序が逆転している可能性のある箇所を自動的に抽出することが可能となる。
【0016】
【発明の実施の形態】以下、本発明の実施の形態について説明する。図1は、実施の形態に係る演算順序チェック装置の構成を示すブロック図である。演算順序チェック装置1は、グローバル変数を抽出可能な変数抽出部2と、関数を抽出可能な関数抽出部3と、関数の種類を判別可能な処理判別部4と、関数の演算順序を識別可能な演算順序識別部5と、演算順序のチェックが可能な演算順序チェック部6と、演算順序のチェック結果を表示可能な表示部7とを備えている。
【0017】変数抽出部2は、プログラムの複数の関数のそれぞれが書き込み処理または読み込み処理を行うグローバル変数を抽出可能である。関数抽出部3は、変数抽出部2で抽出されたグローバル変数をもとに、グローバル変数ごとにこれらのグローバル変数を書き込み処理または読み込み処理を行う関数を抽出する。処理判別部4は、関数抽出部3で抽出した関数をもとに、グローバル変数ごとにそれらの関数がグローバル変数の書き込み処理をするのか、読み込み処理をするのかを判別する。
【0018】演算順序識別部5は、関数抽出部3で抽出した関数をもとに、それらの関数の演算順序を識別する。この識別にあたっては、プログラム中における関数が記述された行数を参照して演算順序を識別する。演算順序チェック部6は、処理判別部4で得た判別結果と演算順序識別部5で得た演算順序とを比較して演算順序のチェックを行う。
【0019】この演算順序のチェックにおいては、まず関数抽出部3で抽出した関数につき変数ごとに処理判別部4で判別した書き込み処理を行う関数か読み込み処理を行う関数かに応じて、書き込み処理を行う関数が読み込み処理を行う関数よりも小さくなるような大小による関係付けを行う一方、演算順序識別部5で得た演算順序に基づき演算順序が後になるにしたがって大きくなる数値を各関数に付与する。続いて、上記関数の大小関係と上記関数に付与した数値とを比較して、演算順序に問題のある箇所を抽出する。表示部7は、上記チェック結果をその画面に表示可能である。
【0020】次に、上記演算順序チェック装置1で解析される対象のプログラムとして、図2に示すソースリストを用いて説明する。このソースリストは、先の図9に示したテールランプ制御の電子制御装置にかかるもので、C言語で作成してある。周期的に実行する一連のモジュールとしては、関数A(図2中、第13行目から第16行目で定義されたFunc_A)、関数B(同図中、第18行目から第21行目で定義されたFunc_B)、および関数C(同図中、第23行目から第42行目で定義されたFunc_C)の3つの関数からなっている。
【0021】図2の第1行目から第4行目では、マイクロコンピュータの入出力ポートに接続した各種端子の入出力ポートのアドレスを定義している。すなわち、スイッチ端子の入力ポートのアドレスは0x0100に、モニタ端子の入力ポートのアドレスは0x0101に、警告灯端子の出力ポートのアドレスは0x0102に、そして制御端子の出力ポートのアドレスは0x0103に、それぞれ定義してある。
【0022】第6行目から第7行目では、このモジュールの関数で用いるグローバル変数X、Yを定義している。第8行目から第11行目では、上記各種の端子を変数のように扱うべく別名を割り当てている。すなわち、スイッチ端子を変数Pに、モニタ端子を変数Qに、警告灯端子を変数Rに、また制御端子を変数Sにそれぞれ割り当てている。
【0023】第13行目から第16行目では、関数Aを定義している。すなわち、第15行目にあるように関数Aの内部ではスイッチ端子の状態に対応する変数Pをグローバル変数Xに保存するように定義している。また、第18行目から第21行目では、関数Bを定義している。すなわち、第20行目にあるように関数Bの内部ではモニタ端子の状態に対応する変数Qをグローバル変数Yに保存するように定義している。
【0024】第23行目から第42行目では、関数Cを定義している。すなわち、関数Cでは、第25行目にあるようにグローバル変数Xを読み込みこれがONであるか否かを判定し、この判定結果がONであれば第27行目にあるように変数SにONと書き込んでテールランプを点灯させる。一方、この判定結果がOFFであれば、第40行目にあるように変数SにOFFと書き込むことによりテールランプを消灯する。
【0025】また、第28行目にあるようにグローバル変数YがOFFであるか否かを判定して、この判定結果がOFFであれば第30行目にあるように変数RにONと書き込んで警告灯を点灯する。一方、この判定結果がONであれば第34行目にあるように変数RにOFFと書き込むことにより警告灯をOFFにする。なお、第46行目から第48行目には、関数の演算の実行順序を関数A、関数C、関数Bの順序とするように定義してある。
【0026】次に、上記プログラムのソースリストを解析して演算順序のチェックを行う処理を図3のフローチャートにより説明する。ステップ101では、変数抽出部2が、ソースリストを読み込んで、関数ごとに、各変数が書き込み処理、あるいは読み込み処理を行うグローバル変数を抽出して、その抽出結果を出力する。
【0027】より詳細には、図2のC言語のソースリストの第20行目における代入式の右辺にあるグローバル変数を“読み込み”として、“関数Bはグローバル変数Qを読み込む”と処理する。同様に、左辺にあるグローバル変数を“書き込み”として、“関数Bはグローバル変数Yに書き込む”と処理する。また、C言語の場合には、図2のソースリストの第28行目のような条件文中のグローバル変数も“読み込み”として“関数Cはグローバル関数Yを読み込む”と処理する。
【0028】ステップ102では、上記変数の抽出結果に基づき、関数別のグローバル変数アクセス表を得る。このグローバル変数アクセス表は、図4に示すように関数A、関数B、関数Cごとに書き込み処理される変数と読み込み処理される変数とを管理するテーブルとして作成する。
【0029】すなわち、関数Aの書き込み変数の欄にはグローバル変数Xが、また関数Aの読み込み変数の欄にはグローバル変数Pがそれぞれ記録される。一方、関数Bの書き込み欄にはグローバル変数Yが、また関数Bの読み込み変数の欄にはグローバル変数Qがそれぞれ記録される。さらに、関数Cの書き込み変数の欄には2つのグローバル変数R、Sが、また関数Cの読み込み変数の欄には2つのグローバル変数X、Yがそれぞれ記録される。
【0030】ステップ103では、関数抽出部3が、図4のテーブルを読み込み、グローバル変数ごとにその変数の書き込み処理する関数と読み込み処理する関数とを検索する。次いで、処理判別部4がその検索した関数が書き込み処理をする関数であるのか、あるいは読み込み処理をする関数であるのかを判別する。たとえば、上述のグローバル変数Qについて説明すれば、図4のテーブルからグローバル変数Qを読み込む関数として関数Bが検索される。同様に、図4のテーブルからグローバル変数Yについては、グローバル変数Yに対して値を書き込む関数として関数Bが、またグローバル変数Yの値を読み込む関数として関数Cが検出されるといった具合である。
【0031】ステップ104では、上記ステップ103で得た判別結果に基づき、グローバル変数ごとにその変数に書き込み処理している関数と読み込み処理をしている関数とを管理するテーブルをアクセス表として作成する。このテーブルは、図5に示すように、グローバル変数Pについては読み込み関数として関数Aを、グローバル変数Qについては読み込み関数として関数Bをそれぞれ記録する。さらにグローバル変数Xについては書き込み関数として関数Aを、また読み込み関数として関数Cを記録し、グローバル変数Yについては読み込み関数として関数Cを、また書き込み関数として関数Bをそれぞれ記録する。また、グローバル変数Rおよびグローバル変数Sについては、いずれも書き込み関数として関数Cを記録する。
【0032】ステップ105では、演算順序チェック部6が、まず図5のアクセス表をもとに、複数の関数で共有しているグローバル変数を検索する。ここで、上記「複数の関数で共有しているグローバル変数」とは、関数からの書き込み、および読み込みの両方に関係があり、かつそれらの関数が異なっているグローバル変数を意味する。図5のアクセス表では、グローバル変数Xとグローバル変数Yに、書き込み関数と読み込み関数の両方の関係があるので、これらのグローバル変数X、Yが共有グローバル変数として処理される。
【0033】ステップ106では、ステップ105で得た処理結果に基づき、データの流れに着目した関数の演算順序表を作成する。ここでは、上記共有グローバル変数ごとに、それらの共有グローバル変数に値を書き込む関数を“先”、共有グローバル変数の値を読み込む関数を“後”として演算順序を求める。すなわち、ここでは、関数の大小による関係付けが、“先”を小、“後”を大とする関係となるように設定するわけである。そして、このようにして求めた演算順序を、「データの流れに着目した関数の演算順序」と呼ぶことにする。
【0034】この演算順序表は、図6に示すように、先に演算すべき関数と後に演算すべき関数の順序関係を表わすテーブルとして記憶される。すなわち、共有グローバル変数Xに着目すると、その値を書き込む関数Aが“先”の欄に、またその値を読み込む関数Cが“後”の欄に記述される。一方、共有グローバル変数Yに着目すると、その値を書き込む関数Bが“先”の欄に、またその値を読み込む関数Cが“後”の欄に記述される。
【0035】この先後関係は、2つの関数間の相対的な順序関係を表わしており、1番目、2番目といった絶対的な順序関係を表わすものではない。したがって、図6の演算順序表の場合、関数Aと関数Cとの2つの関数間では、関数Aを関数Cより先に演算すべきであるという情報を表わしているものの、関数Aが1番目ということを表わしているわけではない。同様に、関数Bと関数Cとの2つの関数間では、関数Bを関数Cより先に演算すべきであるという情報だけを表わしている。ここでは、関数Aと関数Bの演算順序については、一切触れていない。
【0036】一方、ステップ107では、演算順序識別部5が、ソースリストから周期的に実行されるモジュールを構成する一連の関数の演算の実行順序を抽出し、その抽出結果を出力する。すなわち、図2のソースリストの第46行目から第48行目に、関数A、関数C、関数Bを実行順に記載してあるので、各関数の間ではそれが記載された行の行番号を読みとることにより、演算の実行順序を抽出することができる。
【0037】ステップ108では、ステップ107で抽出した結果に基づき、図7に示すように、関数A、B、Cの実行順序をそれぞれ1、3、2とするテーブルを作成する。このテーブルは、ステップ106で求めた図6の関数間の相対順序関係とは異なり、関数Aの実行順序は1番目、関数Cの実行順序は2番目、関数Bの実行順序は3番目と絶対的な順序で記録される。
【0038】ステップ109では、演算順序チェック部6が図6の演算順序表と図7の演算順序のテーブルとを比較して、異なる順序関係となっている箇所を抽出する。ここでは、図6の演算順序表にあっては関数Aが関数Cより先に、また関数Bが関数Cより先に実行されると記述されているのに対し、図7のテーブルにあっては1番目に実行される関数が関数Aで、2番目に実行される関数が関数Cで、3番目に実行されるのが関数Bと記述されていることから、これらの2つのテーブルを比較すると、関数Bと関数Cの順序が異なることが抽出されることになる。
【0039】すなわち、図6の演算順序表の関数に図7のテーブルの演算順序を代入すると、1(=関数Aの演算順序)<2(=関数Cの演算順序)
3(=関数Bの演算順序)<2(=関数Cの演算順序)
となる。この場合、後者の式から関数Bの演算順序と関数Cの演算順序とが逆転している可能性があることが分かり、これらを異なる順序関係となっている箇所として抽出する。
【0040】ステップ110では、ステップ109で得たチェック結果を演算順序チェック部6が表示手段としての表示部7へ出力し、表示部7の画面にそのチェック結果を表示する。この表示部7への表示例を図8に示す。この表示例をみることにより、共有グローバル変数Yについての関数の実行順序について関数Cより関数Bが先になっているのに対し、ソースリストの実行順序では関数Bより関数Cが先になっており、関数Bと関すCとの間で順序関係が異なっていることが分かる。
【0041】本実施の形態では、上記フローにおけるステップ101が発明の変数抽出手段を構成し、ステップ102、103が関数抽出手段を、ステップ104が処理判別手段を構成している。また、ステップ107が演算順序識別手段を構成し、ステップ105、106、108および109が演算順序チェック手段を構成している。
【0042】以上のように、本実施の形態では、変数とこの変数の読み込み処理、書き込み処理を実行する関数とを抽出して、プログラム中の当該関数の演算順序とを比較してチェックを行うようにしたので、プログラム中、演算順序が逆転している可能性のある箇所を自動的に抽出することが可能となる。そして、このチェック結果を表示部7へ表示すれば、開発者が関数Bと関数Cとの実行順序について再調査が必要であることを容易かつ短時間に認識することができ、チェックの作業工数が大幅に低減し、かつ再調査が必要な箇所の見落としを防止することができる。
【0043】また、上記演算順序のチェックにあたっては、処理判別部4で判別した書き込み処理する関数と読み込み処理する関数とを、書き込み処理を行う関数<読み込み処理を行う関数、として大小による関係付けを行い、演算順序識別部5で識別した関数の演算順序に応じて関数ごとに大小の数値を付与して、この数値と大小関係を比較するようにしたので、演算順序に逆転の可能性がある箇所の抽出を、簡易な方法で実現することが可能となる。
【0044】そして演算順序識別部5では、関数がプログラム中に記述されている行番号からその関数の演算順序を識別するようにしたので、識別が簡単である。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013