(57)【要約】【課題】本発明はプログラムチェック装置に関し、利用者が作成した関数を自動的にチェックすることで、復帰しない関数の使用誤り、値を返さない関数の使用誤り、復帰値のチェック漏れ等を自動的に検出し、利用者に知らせることが可能な装置を実現させる。【解決手段】復帰情報解析手段１０３と、復帰情報補正手段１０４と、関数呼び出し検査手段１０５と、誤り情報表示手段１０６とを備えたプログラムチェック装置であって、復帰情報解析手段１０３は、関数内に、無限ループや復帰しないシステム関数の呼び出しの命令があると、この命令を通るルートは復帰することがないと見なし、関数内の全てのルートが復帰することがないと解析した場合、その関数を、復帰しない関数情報として記録する機能を備えている。【選択図】        図１
2005004301.tif 000002
【特許請求の範囲】
【請求項１】
復帰情報解析手段と、
復帰情報補正手段と、
関数呼び出し検査手段と、
誤り情報表示手段とを備えたプログラムチェック装置であって、
前記復帰情報解析手段は、関数内に、無限ループや復帰しないシステム関数の呼び出し命令があると、この命令を通るルートは復帰することがないと見なし、
関数内の全てのルートが復帰することがないと解析した場合、その関数を、復帰しない関数情報として記録する機能を備えていることを特徴とするプログラムチェック装置。
【請求項２】
前記復帰情報補正手段は、
関数内に、無限ループや復帰しないシステム関数の呼び出しや前記復帰しない関数情報内に記録された関数の呼び出し命令があると、その命令を通るルートは復帰することがないと見なし、
関数内の全てのルートが復帰することがないと解析した場合、その関数を、前記復帰しない関数情報に追加登録する機能を備えていることを特徴とする請求項１記載のプログラムチェック装置。
【請求項３】
前記関数呼び出し検査手段と、誤り情報表示手段は、
前記復帰しない関数情報に記録されている関数の呼び出しを調べ、その関数を呼び出した後に、実行される命令があれば、画面に表示して誤った記述であることを利用者に知らせる機能を備えていることを特徴とする請求項２記載のプログラムチェック装置。
【請求項４】
前記関数呼び出し検査手段と、誤り情報表示手段は、
前記復帰情報解析手段において、関数が値を返す関数と記述されていても、関数内の実行される復帰命令の全てに復帰値がない場合、その関数を、値を返さない関数情報として記録し、
前記値を返さない関数情報に記録されている関数の呼び出し後に、その関数の復帰情報の参照があった場合、画面に表示して誤った記述であることを利用者に知らせる機能を備えていることを特徴とする請求項１記載のプログラムチェック装置。
【請求項５】
前記関数呼び出し検査手段と、誤り情報表示手段は、
値を返す関数情報を画面に表示して利用者に提示し、復帰情報の中からエラー発生を知らせる値のみを選択してもらうことにより、エラーを知らせる関数情報として記録し、
前記エラーを知らせる関数情報に記録されている関数の呼び出し後に、復帰値のチェックが漏れていた場合、画面に表示してチェック漏れがあることを利用者に知らせる機能を備えていることを特徴とする請求項１記載のプログラムチェック装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】本発明は、プログラムの、関数の誤った使用や、関数復帰値のチェック漏れなどの誤りの危険性のある箇所をチェックし、それらの検出情報を自動的に表示して利用者に知らせることが可能なプログラムチェック装置に関する。
【０００２】
【従来の技術】以下、従来例について説明する。
従来、プログラム欠陥除去の方法として、プログラム言語で記述されたプログラムを読んで誤りを発見してから欠陥を除去する方法（例えば、プログラムレビュー）と、プログラムを実行可能なコードに変換した後に、プログラムを実行させて誤りを発見してから欠陥を除去する方法（プログラムテスト）がとられていた。
【０００３】
一般的に、プログラムレビューの方が、欠陥除去に対する修正コストが低いため、より多くの欠陥をプログラムレビューで取り除く方が、効率的であると言われている。ただ、プログラムレビューを人間が実施していたのでは、漏れも発生し易く、読む技術がレビューアのスキルに依存してしまい、プログラムレビュー後の品質が安定しない等の問題があった。
【０００４】
このため、プログラムレビューを機械的に行うツールが多く考案されている。特に、近年、プログラムの脆弱性からネットワークに関する社会問題に発展するなど、プログラムの脆弱性を事前に取り除くためのプログラムチェックツールの適用が進められている。これらのツールでは、システム関数を誤って使用することにより起因する脆弱性の問題を検出したり、誤った論理やデータ型使用に関する問題を検出している。
【０００５】
また、事前に登録された制御文と構文の組み合わせからなるチェック用データベースを設け、プログラムの誤りパターンを登録することにより、自動的に誤りを検出したり（例えば、特許文献１参照）、或いは、論理チェック手段を付加することにより論理的な誤りまで検出する（例えば、特許文献２参照）仕組みが提案されている。これらの特許文献１、２については、以下に、従来例１、２として詳細に説明する。
【０００６】
§１：従来例１（特許文献１）の説明
図１１は従来例１の説明図であり、Ａ図は装置構成図、Ｂ図は処理フローチャートである。以下、特許文献１を従来例１として説明する。
【０００７】
図１１は、Ｃ言語の場合を示すブロック図で、１はＣ言語で記述されたＣ言語プログラム、２はフロッピィディスク駆動装置などのＣ言語の入力装置、３はＣ言語プログラムの文法的には正しいが、間違いを生じ易い、特定の制御文と構文の組み合わせを蓄積するチェック用データベース、４はＣ言語プログラム１の入力装置２から出力される制御文と構文からなるＣ言語プログラムとチェック用データベース３に蓄積された制御文と構文の組み合わせを比較・検査する比較器、５はＣＲＴあるいは液晶などの画面やプリンタなど検査の結果を表示する出力装置である。
【０００８】
比較器４の処理フローチャートを図１１のＢ図に示す。入力されたＣ言語プログラムは１文字づつ解読され（１）  、行の終わりが入力されると（２）  、Ｃ言語プログラムの１行を認識する（３）  。１行の認識処理においては、入力されたＣ言語プログラムの制御文と、チェック用データベースの制御文との比較を行い（３−１）、一致すれば更に入力されたＣ言語プログラムの構文とチェック用データベース３の構文との比較を行い（３−２）、そこでも一致すれば制御文と構文の組み合わせが存在するという通知処理（３−３）を行う。次に、プログラムのエンドか否かを判断し（４）  、エンドでなければ（１）  の処理へ移行する。このような行単位の処理はＣ言語プログラムが終了されるまで繰返される。そして、（４）  の処理でエンドならばこの処理を終了する。
【０００９】
§２：従来例２（特許文献２）の説明
図１２は従来例２の説明図である。以下、特許文献２を従来例２として説明する。
【００１０】
本実施例のプログラムチェック方式におけるプログラムチェック処理は、ソースプログラム読取りステップ３１と、プログラムテキスト記憶ステップ３２と、ルール情報読取りステップ３３と、構文チェックステップ３４と、構文エラー有無判定ステップ３５と、エラーメッセージ記憶ステップ３６と、形式チェックステップ３７と、形式エラー有無判定ステップ３８と、エラーメッセージ記憶ステップ３９と、論理チェックステップ４０と、論理エラー有無判定ステップ４１と、エラーメッセージ記憶ステップ４２と、レポート出力ステップ４３とからなる。
【００１１】
次に、このように構成された本実施例のプログラムチェック方式の動作について説明する。まず、ルール情報ファイル作成処理では、入力装置は、ルールデータを１件ずつ読み取る。１件のルールデータが読み取られると、ルールデータ解析部は、読み取られたルールデータをチェック（解析）し、チェック結果からルールデータが正しいか否かの判定を行う。
【００１２】
もし不正なルールデータが存在していたならば、メッセージ出力部は出力装置にエラーメッセージを出力し、しかる後に制御を戻す。ルールデータが正しければ、ルールテーブル変換部はプログラムチェックで処理しやすいテーブル形式にルールデータを加工編集してルールテーブルを作成する。
【００１３】
次に、ルールデータ登録部は、ルールデータ中の区分識別が新規データを表すか否かを判別し、新規データであることを表していれば、記憶装置上にルール情報ファイルを新規に作成してルールデータを登録する。区分識別が新規データであることを表していなければ、次に区分識別が追加データを表すか否かを判別し、追加データであることを表していれば、記憶装置上のルール情報ファイルにルールテーブルを追加する。区分識別が追加データであることを表していなければ、更新データであるので、記憶装置上のルール情報ファイル内の該当するルールテーブルを更新する。
【００１４】
ルール情報ファイルの新規作成、ルール情報ファイルに対するルールデータの追加又は更新の後は制御が戻り、上述の処理を繰り返す。入力装置から入力されるルールデータの読取りが終了した時点で、ルール情報ファイル作成処理が終了される。ルール情報ファイルは、一旦作成されるとプログラムチェック処理において随時参照される。
【００１５】
次に、プログラムチェック処理では、まずプログラム読取り部は、入力装置からソースプログラムを読み取り（ステップ３１）、読み取ったソースプログラムを記憶する（ステップ３２）。
【００１６】
一方、ルール情報読取り部は、記憶装置上のルール情報ファイルよりルール情報を読み取る（ステップ３３）。次に、構文チェック部は、読み取られたルール情報に基づいてソースプログラムの構文チェックを行う（ステップ３４）。ソースプログラムに構文エラーがあった場合は（ステップ３５）、構文チェック部はその旨を示すエラーメッセージを出力装置に出力するために記憶する（ステップ３６）。
【００１７】
続いて、形式チェック部は、ルール情報に基づいてソースプログラムの文の形式チェックを行う（ステップ３７）。ソースプログラムに形式エラーがあった場合には（ステップ３８）、形式チェック部６はその旨を示すエラーメッセージを出力装置に出力するために記憶する（ステップ３９）。
【００１８】
次に、論理チェック部は、ルール情報に基づいてソースプログラムの論理チェックを行う（ステップ４０）。ソースプログラムに論理エラーがあった場合には、論理チェック部はその旨を示すエラーメッセージを出力装置に出力するために記憶する（ステップ４２）。
【００１９】
メッセージは、プログラム読み取り部に記憶されているソースプログラムのテキストと構文チェック部、形式チェック部および論理チェック部に記憶されているエラーメッセージとを加工編集して出力装置に出力する（ステップ４３）。
【００２０】
【特許文献１】
特開平３−２８８２３８号公報
【特許文献２】
特開昭６３−２６３５４５号公報
【００２１】
【発明が解決しようとする課題】前記のような従来のものにおいては、次のような課題があった。
【００２２】
（１）  ：利用者が作成した関数についての使用誤りの問題については、現状のツールや仕組みの提案では解決できないため、人によるプログラムレビューやプログラムテストでの誤り検出に頼らざるを得ない。
【００２３】
プログラムレビューは、以下の問題がある。
ａ：レビュー時間がかかるため、効率やコスト上の問題がある。
ｂ：人によるチェックなので、漏れが発生し易い。
ｃ：レビューアのスキルに依存する。
【００２４】
プログラムテストは、以下の問題がある。
ａ：修正コストが高い。
ｂ：テストデータやテスト環境で依存するので、漏れが発生する可能性がある。
【００２５】
（２）  ：利用者が作成した関数が、実際は、復帰しない関数だとしても、プログラムチェック装置は自動的に復帰しない関数と扱わない。
【００２６】
（３）  ：利用者が作成した関数が、実際は、値を返さない関数だとしても、プログラムチェック装置は自動的に値を返す関数と扱わない場合がある。
【００２７】
（４）  ：利用者が、プログラムチェック装置に入力するエラーを知らせる関数情報をいちから作成するのは大変である。
【００２８】
（５）  ：利用者が作成した関数が、実際は、復帰しない関数だとしても、プログラムチェック装置は自動的に復帰しない関数と扱わない。特に、関数の、あるルートに関数呼び出しがあり、その関数は、利用者が定義した、復帰しない関数の場合、そのルートは復帰されることがないと扱うべきだが、プログラムチェック装置は扱わない。
【００２９】
（６）  ：プログラムチェック装置には、利用者が作成した関数の、エラーを知らせる復帰値が分からない。特に、利用者作成のライブラリ関数などの、プログラム中に定義がない関数の仕様については、プログラムチェック装置はその復帰値の情報を知ることはできない。
【００３０】
（７）  ：利用者が、プログラムチェック装置に入力するエラーを知らせる関数情報をいちから作成するのは大変である。特に、関数が、別の関数の復帰値や外部変数の値を返した場合、調査する情報が膨大になる可能性があるため、時間も掛かるし、間違いも発生し易い。
【００３１】
（８）  ：プログラムチェック装置には、利用者が作成した関数の、エラーを知らせる復帰値が分からない。
【００３２】
（９）  ：プログラムチェック装置は、利用者が作成した関数が復帰しない関数かどうかわからないため、関数の誤った使用を利用者に知らせることができない。
【００３３】
（１０）：プログラムチェック装置は、利用者の作成した関数が、値を返さない関数かどうか、正確にわからないため、関数の誤った使用を利用者に知らせることができない場合がある。
【００３４】
（１１）：プログラムチェック装置は、利用者が作成した関数のうち、エラーを知らせる復帰値がわからないため、関数復帰値のチェックができない。
【００３５】
本発明は、このような従来の課題を解決し、利用者が作成した関数を自動的にチェックすることで、復帰しない関数の使用誤り、値を返さない関数の使用誤り、復帰値のチェック漏れ等を自動的に検出し、利用者に知らせることが可能な装置を実現させることを目的とする。
【００３６】
【課題を解決するための手段】本発明は前記の目的を達成するため、次のように構成した。
【００３７】
（１）  ：復帰情報解析手段と、復帰情報補正手段と、関数呼び出し検査手段と、誤り情報表示手段とを備えたプログラムチェック装置であって、前記復帰情報解析手段は、関数内に、無限ループや復帰しないシステム関数の呼び出しの命令があると、この命令を通るルートは復帰することがないと見なし、関数内の全てのルートが復帰することがないと解析した場合、その関数を、復帰しない関数情報として記録する機能を備えていることを特徴とする。
【００３８】
（２）  ：前記（１）  のプログラムチェック装置において、前記復帰情報補正手段は、関数内に、無限ループや復帰しないシステム関数の呼び出しや前記復帰しない関数情報内に記録された関数の呼び出し命令があると、その命令を通るルートは復帰することがないと見なし、関数内の全てのルートが復帰することがないと解析した場合、その関数を、前記復帰しない関数情報に追加登録する機能を備えていることを特徴とする。
【００３９】
（３）  ：前記（２）  のプログラムチェック装置において、前記関数呼び出し検査手段と、誤り情報表示手段は、前記復帰しない関数情報に記録されている関数の呼び出しを調べ、その関数を呼び出した後に、実行される命令があれば、画面に表示して誤った記述であることを利用者に知らせる機能を備えていることを特徴とする。
【００４０】
（４）  ：前記（１）  のプログラムチェック装置において、前記関数呼び出し検査手段と、誤り情報表示手段は、前記復帰情報解析手段において、関数が値を返す関数と記述されていても、関数内の実行される復帰命令の全てに復帰値がない場合、その関数を、値を返さない関数情報として記録し、前記値を返さない関数情報に記録されている関数の呼び出し後に、その関数の復帰情報の参照があった場合、画面に表示して誤った記述であることを利用者に知らせる機能を備えていることを特徴とする。
【００４１】
（５）  ：前記（１）  のプログラムチェック装置において、前記関数呼び出し検査手段と、誤り情報表示手段は、値を返す関数情報を画面に表示して利用者に提示し、復帰情報の中からエラー発生を知らせる値のみを選択してもらうことにより、エラーを知らせる関数情報として記録し、前記エラーを知らせる関数情報に記録されている関数の呼び出し後に、復帰値のチェックが漏れていた場合、画面に表示してチェック漏れがあることを利用者に知らせる機能を備えていることを特徴とする。
【００４２】
（作用）
前記構成に基づく本発明の作用を、図１に基づいて説明する。
【００４３】
（ａ）  ：前記（１）  では、復帰情報解析手段１０３は、関数内に、無限ループや復帰しないシステム関数の呼び出しの命令があると、この命令を通るルートは復帰することがないと見なし、関数内の全てのルートが復帰することがないと解析された場合、その関数を、復帰しない関数情報として記録する。
【００４４】
このようにして、利用者が作成した関数を自動的にチェックすることで、復帰しない関数の使用誤り、値を返さない関数の使用誤り、復帰値のチェック漏れ等を自動的に検出し、利用者に知らせることが可能な装置を実現させることが可能になる。
【００４５】
この場合、利用者が記述した関数に対して、使用の誤りや復帰値のチェック漏れがないかを自動的に検出できるし、復帰しない関数の誤りを検出するため、関数内の命令を調べることにより、自動的、かつ正確に復帰しない関数を検出し、復帰しない関数情報として記録できる。
【００４６】
（ｂ）  ：前記（２）  では、復帰情報補正手段１０４は、関数内に、無限ループや復帰しないシステム関数の呼び出しや前記復帰しない関数情報内に記録された関数の呼び出しの命令があると、その命令を通るルートは復帰することがないと見なし、関数内の全てのルートが復帰することがないと解析した場合、その関数を、前記復帰しない関数情報に追加登録する。
【００４７】
このようにして、利用者が作成した関数を自動的にチェックすることで、復帰しない関数の使用誤り、値を返さない関数の使用誤り、復帰値のチェック漏れ等を自動的に検出し、利用者に知らせることが可能な装置を実現させることが可能になる。
【００４８】
この場合、値を返さない関数の使用の誤りを検出するため、関数内の命令を調べることにより、自動的かつ正確かつ出来るだけ多く、復帰しない関数を検出し、復帰しない関数情報に追加記録できる。
【００４９】
（ｃ）  ：前記（３）  では、関数呼び出し検査手段１０５と、誤り情報表示手段１０６は、復帰しない関数情報に記録されている関数の呼び出しを調べ、その関数を呼び出した後に、実行される命令があれば、画面に表示して誤った記述であることを利用者に知らせる。
【００５０】
このようにして、利用者が作成した関数を自動的にチェックすることで、復帰しない関数の使用誤り、値を返さない関数の使用誤り、復帰値のチェック漏れ等を自動的に検出し、利用者に知らせることが可能な装置を実現させることが可能になる。
【００５１】
この場合、特に、復帰しない関数の使用誤りを自動的に検出し、表示して利用者に通知（メッセージ通知）する。
【００５２】
（ｄ）  ：前記（４）  では、関数呼び出し検査手段１０５と、誤り情報表示手段１０６は、復帰情報解析手段１０３において、関数が値を返す関数と記述されていても、関数内の実行される復帰命令の全てに復帰値がない場合、その関数を、値を返さない関数情報として記録し、前記値を返さない関数情報に記録されている関数の呼び出し後に、その関数の復帰情報の参照があった場合、画面に表示して誤った記述であることを利用者に知らせる。
【００５３】
このようにして、利用者が作成した関数を自動的にチェックすることで、復帰しない関数の使用誤り、値を返さない関数の使用誤り、復帰値のチェック漏れ等を自動的に検出し、利用者に知らせることが可能な装置を実現させることが可能になる。
【００５４】
この場合、特に、値を返さない関数の使用誤りを自動的に検出して表示することで利用者に知らせることができる。
【００５５】
（ｅ）  ：前記（５）  では、関数呼び出し検査手段１０５と、誤り情報表示手段１０６は、値を返す関数情報を画面に表示して利用者に提示し、復帰情報の中からエラー発生を知らせる値のみを選択してもらうことにより、エラーを知らせる関数情報として記録し、前記エラーを知らせる関数情報に記録されている関数の呼び出し後に、復帰値のチェックが漏れていた場合、画面に表示してチェック漏れがあることを利用者に知らせる。
【００５６】
このようにして、利用者が作成した関数を自動的にチェックすることで、復帰しない関数の使用誤り、値を返さない関数の使用誤り、復帰値のチェック漏れ等を自動的に検出し、利用者に知らせることが可能な装置を実現させることが可能になる。
【００５７】
この場合、特に、復帰値のチェック漏れを自動的に検出し、利用者に知らせることが可能になる。
【００５８】
【発明の実施の形態】以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００５９】
§１：装置の説明
図２はプログラムチェック装置の構成図である。このプログラムチェック装置は、パーソナルコンピュータ、ワークステーション、その他の任意のコンピュータにより実現されるものである。
【００６０】
このプログラムチェック装置には、装置本体（コンピュータ本体）１と、該装置本体１に接続されたマウス、キーボード等の入力装置３と、リムーバブルディスクドライブ（以下、単に「ＲＤＤ」と記す）４と、ハードディスク装置（（以下、単に「ＨＤＤ」と記す）等で構成されている。また、装置本体１には、ＣＰＵ１１と、ワークメモリ１２と、通信制御部１３等が設けてある。
【００６１】
そして、前記ＨＤＤ５にはプログラムや各種のデータ等が格納されている。ＣＰＵ１１は前記ＨＤＤ５のプログラムを実行することにより、以下に説明するプログラムチェック処理を行う。なお、ワークメモリ１２はＣＰＵ１１がワーク用として使用するメモリであり、通信制御部１３は、外部の装置と通信する際の各種通信制御を行うものである。
【００６２】
§２：全体構成の説明
図３は全体構成の説明図である。図３に示したように、プログラムチェック装置には、処理対象プログラム（予め、ＨＤＤ５に格納しておく）のプログラム構文解析を行うプログラム構文解析手段１０１（コンパイラと同じもの）と、プログラム構文解析手段１０１の解析結果に基づき、プログラムの意味を解析するプログラム意味解析手段１０２と、前記プログラム意味解析手段１０２の解析結果を基に、システム関数情報を入力して復帰情報を解析し、利用者関数情報を出力する復帰情報解析手段１０３とを、それぞれ構文解析単位で備えている。なお、前記プログラム構文解析手段１０１と、プログラム意味解析手段１０２は従来技術である。
【００６３】
また、前記利用者関数情報を入力し、複数の構文解析単位をひとまとめにして解析すると共に、利用者の人手による補正情報を取り込んで復帰情報の補正を行う復帰情報補正手段１０４と、前記復帰情報補正手段１０４の補正結果を基に関数呼び出し検査を行う関数呼び出し検査手段１０５と、関数呼び出し検査手段１０５の検査結果に基づいて誤り情報（例えば、誤り内容のメッセージ等）を画面上に表示する誤り情報表示手段１０６を備えている。このような構成により、以下の流れの中で関数の誤った使用や関数復帰値のチェック漏れ等を検出する。
【００６４】
なお、前記プログラム構文解析手段１０１、プログラム意味解析手段１０２、復帰情報解析手段１０３、復帰情報補正手段１０４、関数呼び出し検査手段１０５、誤り情報表示手段１０６は、全て、プログラムにより構成されている。そして、このプログラムは、予め、図２に示したＨＤＤ５内に格納しておき、ＣＰＵ１１が読み出して実行することにより実現するものである。
【００６５】
§３：復帰情報解析手段の詳細な説明
図４は復帰情報解析手段の詳細説明図である。以下、図３、図４を参照しながら処理を説明する。
【００６６】
（１）  ：図３に示したように、プログラムチェック装置は、処理対象プログラムに対し、プログラム構文解析手段１０１→プログラム意味解析手段１０２→復帰情報解析手段１０３→復帰情報補正手段１０４→関数呼び出し検査手段１０５→誤り情報表示手段１０６の順に処理を行う。
【００６７】
そして、プログラム構文解析手段１０１は、処理対象プログラム（単に「プログラム」とも記す）を入力して解析し、その構文解析結果をプログラム意味解析手段１０２に渡す。プログラム意味解析手段１０２は、プログラムの意味を解析し、以下のデータを作成する。
【００６８】
ａ：関数定義リスト
ひとつのプログラム内に定義された、関数一覧
ｂ：ロジックフロー情報
関数の処理手段の情報
ｃ：データフロー情報
ひとつのプログラム内で使用された変数の代入関係をつなげた情報。
【００６９】
また、復帰情報解析手段１０３は、関数定義リスト、ロジックフロー情報、データフロー情報とシステム関数情報から、以下の利用者関数情報を作成する。なお、システム関数情報とは、利用者が作成した関数ではなく、コンパイラなどが提供する標準化された関数の復帰値情報である。
【００７０】
また、復帰情報補正手段１０４は、複数の利用者関数情報と関数定義リスト、ロジックフロー情報、データフロー情報を入力し、情報の統合、利用者による情報入力などの補正を行い、情報の精度を高める。また、関数呼び出し検査手段１０５は、関数呼び出し部分に注目し、関数呼び出し後のロジックフローから、誤りを検出する。
【００７１】
（２）  ：関数定義リスト、ロジックフロー情報、システム関数情報の復帰しない関数情報から、全てのルートで、無限ループまたは復帰しないシステム関数を呼び出している関数を調べ、その関数名を記述した、利用者関数情報の、復帰しない関数情報を作成する。
【００７２】
（３）  ：関数定義リスト、ロジックフロー情報、システム関数情報の値を返さない関数情報から、関数内の実行される復帰命令の全てに復帰値がない関数を調べ、その関数名を記述した、利用者関数情報の、値を返さない関数情報を作成する。
【００７３】
（４）  ：関数定義リスト、ロジックフロー情報、データフロー情報、システム関数情報のエラーを知らせる関数情報から、復帰命令の復帰値を調べ、その関数名と以下の復帰値を記述した、利用者関数情報の、値を返す関数情報を作成する。
【００７４】
ａ：定数の場合は、その値
ｂ：関数呼び出しの場合は、その関数名
ｃ：関数外で宣言された変数の場合は、その変数名
ｄ：関数内で宣言された変数の場合は、その変数に代入される可能性のある上記ａ、ｂ、ｃ。
【００７５】
プログラムチェック装置では以上のように処理を行うが、特に、復帰情報解析手段１０３には、復帰しない関数情報解析手段２０１と、値を返さない関数情報解析手段２０２と、値を返す関数情報解析手段２０３を備え、前記各処理により復帰情報解析処理を行う。
【００７６】
この場合、先ず、復帰しない関数情報解析手段２０１は、システム関数情報の内、復帰しない関数情報を解析し、復帰しない関数情報を利用者関数情報として出力する。次に、値を返さない関数情報解析手段２０２は、システム関数情報の内、値を返さない関数情報を解析し、値を返さない関数情報を利用者関数情報として出力する。次に、値を返す関数情報解析手段２０３は、システム関数情報の内、エラーを知らせる関数情報を解析し、値を返す関数情報を利用者関数情報として出力する。
【００７７】
§４：復帰情報補正手段の詳細な説明
図５は復帰情報補正手段の説明図である。以下、図２〜図５を参照しながら処理を説明する。
【００７８】
（１）  ：図５に示したように、復帰情報補正手段１０４は、関数定義リスト、ロジックフロー情報、復帰しない関数情報から、関数呼び出し木構造情報を作成し、下位関数から復帰しない関数か調べ、利用者関数情報の復帰しない関数情報に追加する。関数呼び出し木構造情報の下位関数から調べることにより、効率的に、復帰しない関数情報の追加を行うことができる。
【００７９】
（２）  ：また、関数定義リスト、ロジックフロー情報、全てのシステム関数情報から作成した、未定義関数リストを利用者に提示し、エラーを知らせる復帰値を入力してもらい、その復帰値を利用者関数情報の値を返す関数情報に反映する。未定義関数リストを利用者に提示することにより、漏れなく、効率的に値を返す関数情報に反映できる。
【００８０】
復帰情報補正手段１０４は以上のように処理を行うが、特に、復帰情報補正手段１０４には、復帰しない関数情報補正手段３０１と、値を返す関数情報補正手段１（３０２）とを備え、次のようにして復帰情報補正処理を行う。
【００８１】
◎：復帰しない関数情報補正手段３０１の処理
ａ：関数定義リストとロジックフロー情報から関数呼び出し木構造情報を作成する。この関数呼び出し木構造情報は、図５の右上に図示したようなものであり、図示した○印は復帰しないシステム関数、△印は復帰しない利用者定義関数を示す。
【００８２】
ｂ：下位の関数から、復帰する関数、かつ、復帰しない利用者定義の関数を、呼び出している関数に対して、復帰しない関数になっていないかを調べる。
【００８３】
ｃ：復帰しない関数であった場合、復帰しない関数情報に追加する。
【００８４】
◎：値を返す関数情報補正処理１（３０２）の処理
ａ：ロジックフロー情報から抽出した呼び出し関数のうち、関数定義リストとシステム関数情報に登録された関数を除き、未定義関数名リストを作成する。
【００８５】
ｂ：未定義関数名リストを利用者に提示し、エラーを知らせる関数の場合は、復帰値を入力してもらう。
【００８６】
ｃ：利用者から入力された復帰値を値を返す関数情報に、追加する。
【００８７】
§５：復帰情報補正手段の詳細な説明
図６は復帰情報補正手段の詳細説明図である。以下、図２〜図６を参照しながら、復帰情報補正手段１０４の更なる詳細な処理を説明する。
【００８８】
（１）  ：図６に示したように、復帰情報補正手段１０４は、データフロー情報、利用者関数情報の値を返す関数情報から、利用者関数情報の値を返す関数情報の復帰値情報の変数名と関数名を、適切な定数値に置き換える。
【００８９】
（２）  ：また、復帰情報補正手段１０４は、利用者関数情報の値を返す関数情報を利用者に提示し、チェックすべき復帰値、チェック不要な関数の入力をしてもらい、エラーを知らせる関数情報を作成する。値を返す関数情報の利用者への提示は、自動的に求めた定数リストから選択あるいは変更する作業ですみ、利用者の入力の手間を出来るだけ少なく、漏れなくできる。
【００９０】
復帰情報補正手段１０４の更なる詳細な処理は次の通りである。復帰情報補正手段１０４には、値を返す関数情報補正手段２（３０３）と、エラーを知らせる関数情報補正手段３０４とを備えている。これらの手段の処理は次の通りである。
【００９１】
◎：値を返す関数情報補正手段２（３０３）の処理
ａ：値を返す関数情報の中から、復帰情報が変数名と関数名のものを抽出する。
【００９２】
ｂ：復帰情報が変数名の場合、データフロー情報から変数に設定される定数や関数呼び出しを求め、変数名を、定数の値か関数名に置き換える。
【００９３】
ｃ：復帰情報が関数名の場合、その関数の復帰情報を、値を返す関数情報から求め、関数名と置き換える。
【００９４】
◎：エラーを知らせる関数情報補正手段３０４の処理
ａ：値を返す復帰値情報を利用者に提示する。
【００９５】
ｂ：利用者は、チェックすべき復帰値の情報に変更する。チェック不要な関数は、エラーを知らせる関数情報に登録しない指示をする。
【００９６】
ｃ：入力されたチェックすべき復帰値情報を、エラーを知らせる関数情報として作成する。
【００９７】
§６：関数復帰情報補正手段の詳細な説明
図７は関数呼び出し検査手段の詳細説明図（その１）、図８は関数呼び出し検査手段の詳細説明図（その２）、図９は関数呼び出し検査手段の詳細説明図（その３）、図１０は関数呼び出し検査手段の詳細説明図（その４）である。以下、図２〜図１０を参照しながら、関数呼び出し検査手段１０５と、誤り情報表示手段１０６の処理を詳細に説明する。
【００９８】
（１）  ：図７に示したように、関数呼び出し検査手段１０５は、復帰しない関数情報とロジックフロー情報から、復帰しない関数の関数呼び出し直後の命令があるか調べ、あれば復帰しない関数の使用誤り情報を表示する。
【００９９】
（２）  ：図８に示したように、値を返さない関数情報とロジックフロー情報から、値を返さない関数の呼び出しを見つけ、関数呼び出しの復帰値を参照していれば、値を返さない関数の使用誤り情報を表示する。
【０１００】
（３）  ：図９、図１０に示すように、値を返さない関数情報とロジックフロー情報から、値を返さない関数の呼び出しを見つけ、関数の呼び出しの復帰値を参照していれば、値を返さない関数の使用誤り情報を表示する。
【０１０１】
（４）  ：エラーを知らせる関数情報とロジックフロー情報から、エラーを知らせる関数の呼び出しを見つけ、その呼び出しの復帰値に対して、関数呼び出し後に以下が行なわれていた場合、復帰値のチェック漏れとする。
【０１０２】
ａ：参照していない。
ｂ：エラーを知らせる関数情報の復帰情報と比較していない。
ｃ：演算している。
【０１０３】
ｄ：復帰命令で参照しており、その復帰命令を行っている関数がエラーを知らせる関数情報にない。あっても、その関数の復帰情報に含まれていない。
【０１０４】
ｅ：関数呼び出しのパラメータの参照で、呼び出している関数のパラメータが、ａ〜ｆのいずれかが当てはまる。
【０１０５】
ｆ：変数に代入された場合、その変数がａ〜ｆのいずれかが当てはまる。
【０１０６】
以上の説明を、更に図面に基づいて詳細に説明する。
【０１０７】
◎：関数呼び出し検査手段１０５は、復帰しない関数使用誤り解析手段４０１（図７参照）と、値を返さない関数使用誤り解析手段４０２（図８参照）と、エラーを知らせる関数のチェック漏れ検査手段４０３（図９、図１０参照）を備えている。以下、これらの処理を詳細に説明する。
【０１０８】
Ａ）：復帰しない関数使用誤り解析手段４０１の処理
ａ：復帰しない関数を呼び出している関数を検査対象の関数とする。
【０１０９】
ｂ：調査対象の関数のロジックフロー情報を調べ、復帰しない関数を呼んだ直後に命令がある場合、復帰しない関数の使用誤りとする。
【０１１０】
Ｂ）：値を返さない関数使用誤り解析手段４０２の処理
ａ：値を返さない関数を呼び出している関数を検査対象の関数とする。
【０１１１】
ｂ：解析対象の関数のロジックフローを調べ、値を返さない関数の関数呼び出しを探す。
【０１１２】
ｃ：関数呼び出しの結果を参照している場合、値を返さない関数の使用誤りとする。
【０１１３】
Ｃ）：エラーを知らせる関数のチェック漏れ検査手段４０３の処理
ａ：エラーを知らせる関数を呼び出している関数を検査対象の関数とする。
【０１１４】
ｂ：検査対象のロジックフロー情報を調べ、エラーを知らせる関数の呼び出しを探す。
【０１１５】
ｃ：関数呼び出しの結果を参照していない場合、チェック漏れとする。
ｄ：関数呼び出しの結果を参照している場合、参照種別により、以下のチェックを行う。
【０１１６】
（１）  条件参照の場合
エラーを知らせる関数情報の復帰情報と比較していない場合、チェック漏れとする。
【０１１７】
（２）  演算参照の場合
演算参照の場合、チェック漏れとする。
【０１１８】
（３）  復帰命令の参照の場合
検査対象の関数が、エラーを知らせる関数情報になければ、チェック漏れとする。あっても、関数呼び出しの結果が、検査対象の関数の復帰情報に含まれていなければ、チェック漏れとする。
【０１１９】
（４）  関数呼び出しのパラメータ参照の場合
関数呼び出しのパラメータ参照の場合は、前記のｃ、ｄの検査をする。
【０１２０】
（５）  代入された場合
代入した変数に対して、前記ｃ、ｄの検査をする。
【０１２１】
§７：その他の説明
（１）  ：プログラムチェック装置は、復帰情報解析手段１０３と、復帰情報補正手段１０４と、関数呼び出し検査手段１０５と、誤り情報表示手段１０６とを備えているため、関数呼び出しを行うプログラムにおいて、利用者の定義した関数に対しても、関数の誤った使用や関数復帰値のチェック漏れを自動的にチェックすることができる。これにより、漏れなく、レビューアのスキルに依存することなく、安定したプログラム品質が確保でき、極めて有用である。
【０１２２】
（２）  ：前記（１）  の復帰情報解析手段１０３において、関数内に、ａ）：無限ループやｂ）：復帰しないシステム関数の呼び出しの命令があると、この命令を通るルートは復帰することがないと見なす。そして、関数内の全てのルートが復帰することがないと解析された場合、その関数を、復帰しない関数情報として記録する手段を備えている。
【０１２３】
そのため、前記復帰しない関数情報により、利用者の定義した関数は復帰しない関数であることが自動的かつ正確にわかり、プログラムチェック装置は、以下の例のような関数の誤った使用（★の記述）が抽出される。
【０１２４】
【数１】
2005004301.tif 000003
【０１２５】
（３）  ：前記（１）  の復帰情報解析手段１０３において、関数が値を返す関数と記述されていても、関数内の実行される復帰命令の全てに復帰値がない場合、その関数を、値を返さない関数情報として登録する手段を備えている。
【０１２６】
そのため、値を返さない関数情報により、利用者の定義した関数は値を返さない関数であることが自動的かつ正確にわかり、プログラムチェック装置は、下記の例のような関数の誤った使用（★の記述）が抽出できる。従来のプログラムチェック装置では、ｆｕｎｃ２  関数はｉｎｔ  型を返す関数と処理され、以下の誤りが検出できない。
【０１２７】
【数２】
2005004301.tif 000004
【０１２８】
（４）  ：前記（１）  の復帰情報解析手段１０３において、ａ：復帰値となりうるものが定数の場合は、その値、ｂ：復帰値となりうるものが関数呼び出しの結果の場合は、その関数名、ｃ：復帰値となりうるものが外部変数の場合は、その変数名の復帰情報を付加して、値を返す関数情報として記憶する手段を備えている。そのため、前記値を返す関数情報により、利用者がエラーを知らせる関数情報を作成する手間を軽減できる。
【０１２９】
（５）  ：前記（１）  の復帰情報補正手段１０４において、関数内に、ａ：無限ループ（割り込みで、他の関数に飛ぶ場合、無限ループを作成するため）、ｂ：復帰しないシステム関数の呼び出し、ｃ：前記（２）  の復帰しない関数情報内に記録された関数の呼び出し、の命令があると、この命令を通るルートは復帰することがないと見なす。
【０１３０】
関数内の全てのルートが復帰することがないと解析された場合、その関数を、前記（２）  の復帰しない関数情報に追加記録する手段を備えている。
【０１３１】
そのため、復帰しない関数情報より、利用者の定義した復帰しない関数であることが、自動的に、かつ前記（２）  より正確にわかり、プログラムチェック装置は、以下の例のような関数の誤った（★の記述）が自動抽出可能となる。
【０１３２】
【数３】
2005004301.tif 000005
【０１３３】
（６）  ：前記（１）  の復帰情報補正手段１０４において、関数呼び出しはあるが、定義のない関数のうち、システム関数を除いた、関数リストを利用者に提示し、エラー発生を知らせる復帰値を入力してもらうことにより、前記（４）  の値を返す関数情報に追加記録する手段を備えている。
【０１３４】
そのため、前記値を返す関数情報により、その関数の仕様が利用者にしかわからない関数に対しても、エラー発生を知らせる復帰値のチェック漏れがないかを自動抽出可能となる。
【０１３５】
（７）  ：前記（１）  の復帰情報補正手段１０４において、前記（６）  の値を返す関数情報内の復帰値情報に関数名や変数名があれば、以下の置き換えを行う手段を備えている。
【０１３６】
ａ：前記（６）  の値を返す関数情報内の復帰値情報が、関数名の場合、関数名を、その関数の復帰値情報に置き換える。
【０１３７】
ｂ：前記（６）  の値を返す関数情報内の復帰値情報が、変数名の場合、変数名を、その変数に代入される可能性のある定数に置き換える。
【０１３８】
そのため、前記値を返す関数情報により、復帰値調査の手間を省くことができ、利用者がエラーを知らせる関数情報を作成する手間を軽減する。また、正確な情報を取ることができる。
【０１３９】
（８）  ：前記（１）  の復帰情報補正手段１０４において、前記（７）  の値を返す関数情報を利用者に提示し、復帰情報の中からエラー発生を知らせる値のみを選択してもらうことにより、エラーを知らせる関数情報として記録する手段を備えている。
【０１４０】
そのため、エラーを知らせる関数情報は利用者が補正できるため、プログラムの解読では得られない、より正確な情報がプログラムチェック装置に伝えられる。よって、以下の例のように、複数の異常値を統合したチェック方法でチェックさせたい場合や正常値しか返さない関数について、無駄な指摘を行なわないことが可能となる。
【０１４１】
【数４】
2005004301.tif 000006
【０１４２】
（９）  ：前記（１）  の関数呼び出し検査手段１０５と誤り情報表示手段１０６において、前記（５）  の復帰しない関数情報に記録されている関数の呼び出しを調べ、その関数を呼び出した後に、実行される命令があれば、誤った記述であることを、利用者に知らせる。
【０１４３】
そのため、プログラムチェック装置は、利用者の作成した関数が復帰しない関数かどうかわかり、復帰しない関数の誤った使用を利用者に知らせることができる。
【０１４４】
（１０）：前記（１）  の関数呼び出し検査手段１０５と誤り情報表示手段１０６において、前記（３）  の値を返さない関数情報に記録されている関数の呼び出し後に、その関数の復帰情報の参照があった場合、誤った記述であることを、利用者に知らせる。
【０１４５】
そのため、プログラムチェック装置は、利用者の作成した関数が値を返さない関数かどうか分かり、値を返さない関数の誤った使用を利用者に知らせることができる。
【０１４６】
（１１）：前記（１）  の関数呼び出し検査手段１０５と誤り情報表示手段１０６において、前記（８）  のエラーを知らせる関数情報に記録されている関数の呼び出し後に、復帰値のチェックが漏れていた場合、チェック漏れがあることを、利用者に知らせる。
【０１４７】
そのため、プログラムチェック装置は、利用者が定義した関数がエラーを知らせる復帰値を返すことが分かり、次のような、復帰値のチェック漏れ（★の記述）が自動抽出可能となる。
【０１４８】
【数５】
2005004301.tif 000007
【０１４９】
§８：付記の説明
前記の説明に対し、次の構成を付記する。
【０１５０】
（付記１）
復帰情報解析手段と、
復帰情報補正手段と、
関数呼び出し検査手段と、
誤り情報表示手段とを備えたプログラムチェック装置であって、
前記復帰情報解析手段は、関数内に、無限ループや復帰しないシステム関数の呼び出しの命令があると、この命令を通るルートは復帰することがないと見なし、
関数内の全てのルートが復帰することがないと解析した場合、その関数を、復帰しない関数情報として記録する機能を備えていることを特徴とするプログラムチェック装置。
【０１５１】
（付記２）
前記復帰情報補正手段は、
関数内に、無限ループや復帰しないシステム関数の呼び出しや前記復帰しない関数情報内に記録された関数の呼び出しの命令があると、その命令を通るルートは復帰することがないと見なし、
関数内の全てのルートが復帰することがないと解析した場合、その関数を、前記復帰しない関数情報に追加登録する機能を備えていることを特徴とする請求項１記載のプログラムチェック装置。
【０１５２】
（付記３）
前記関数呼び出し検査手段と、誤り情報表示手段は、
前記復帰しない関数情報に記録されている関数の呼び出しを調べ、その関数を呼び出した後に、実行される命令があれば、画面に表示して誤った記述であることを利用者に知らせる機能を備えていることを特徴とする請求項２記載のプログラムチェック装置。
【０１５３】
（付記４）
前記関数呼び出し検査手段と、誤り情報表示手段は、
前記復帰情報解析手段において、関数が値を返す関数と記述されていても、関数内の実行される復帰命令の全てに復帰値がない場合、その関数を、値を返さない関数情報として記録し、
前記値を返さない関数情報に記録されている関数の呼び出し後に、その関数の復帰情報の参照があった場合、画面に表示して誤った記述であることを利用者に知らせる機能を備えていることを特徴とする請求項１記載のプログラムチェック装置。
【０１５４】
（付記５）
前記関数呼び出し検査手段と、誤り情報表示手段は、
値を返す関数情報を画面に表示して利用者に提示し、復帰情報の中からエラー発生を知らせる値のみを選択してもらうことにより、エラーを知らせる関数情報として記録し、
前記エラーを知らせる関数情報に記録されている関数の呼び出し後に、復帰値のチェックが漏れていた場合、画面に表示してチェック漏れがあることを利用者に知らせる機能を備えていることを特徴とする請求項１記載のプログラムチェック装置。
【０１５５】
（付記６）
コンピュータに、
前記復帰しない関数情報に記録されている関数の呼び出しを調べ、その関数を呼び出した後に、実行される命令があれば、画面に表示して誤った記述であることを利用者に知らせる手順を実現させるためのプログラム、又は該プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１５６】
（付記７）
コンピュータに、
関数が値を返す関数と記述されていても、関数内の実行される復帰命令の全てに復帰値がない場合、その関数を、値を返さない関数情報として記録し、
前記値を返さない関数情報に記録されている関数の呼び出し後に、その関数の復帰情報の参照があった場合、画面に表示して誤った記述であることを利用者に知らせる手順を実現させるためのプログラム、又は該プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１５７】
（付記８）
コンピュータに、
値を返す関数情報を画面に表示して利用者に提示し、復帰情報の中からエラー発生を知らせる値のみを選択してもらうことにより、エラーを知らせる関数情報として記録し、
前記エラーを知らせる関数情報に記録されている関数の呼び出し後に、復帰値のチェックが漏れていた場合、画面に表示してチェック漏れがあることを利用者に知らせる手順を実現させるためのプログラム、又は該プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１５８】
（付記９）
復帰情報解析手段と、
復帰情報補正手段と、
関数呼び出し検査手段と、
誤り情報表示手段とを備えたプログラムチェック装置であって、
前記復帰情報解析手段は、復帰値情報を、復帰値となりうるものが定数の場合は、その値、復帰値となりうるものが関数呼び出しの結果の場合は、その関数名、復帰値となりうるものが外部変数名の場合は、その変数名であるとして、この復帰値情報を付加して、値を返す関数情報として登録する登録手段を備えていることを特徴とするプログラムチェック装置。
【０１５９】
（付記１０）
復帰情報解析手段と、
復帰情報補正手段と、
関数呼び出し検査手段と、
誤り情報表示手段とを備えたプログラムチェック装置であって、
前記復帰情報補正手段は、関数呼び出しはあるが、定義のない関数のうち、システム関数を除いた、関数リストを利用者に提示し、エラー発生を知らせる復帰値を入力してもらうことにより、値を返す関数情報に追加記録する追加記録手段を備えていることを特徴とするプログラムチェック装置。
【０１６０】
（付記１１）
復帰情報解析手段と、
復帰情報補正手段と、
関数呼び出し検査手段と、
誤り情報表示手段とを備えたプログラムチェック装置であって、
前記復帰情報補正手段は、値を返す関数情報を利用者に提示し、復帰値情報の中からエラー発生を知らせる値のみを選択してもらうことにより、エラーを知らせる関数情報として記録する記録手段を備えていることを特徴とするプログラムチェック装置。
【０１６１】
【発明の効果】以上説明したように、本発明によれば次のような効果がある。
【０１６２】
（１）  ：請求項１では、復帰情報解析手段は、関数内に、無限ループや復帰しないシステム関数の呼び出しの命令があると、この命令を通るルートは復帰することがないと見なし、関数内の全てのルートが復帰することがないと解析した場合、その関数を、復帰しない関数情報として記録する。
【０１６３】
このようにして、利用者が作成した関数を自動的にチェックすることで、復帰しない関数の使用誤り、値を返さない関数の使用誤り、復帰値のチェック漏れ等を自動的に検出し、利用者に知らせることが可能な装置を実現させることが可能になる。
【０１６４】
この場合、利用者が記述した関数に対して、使用の誤りや復帰値のチェック漏れがないかを自動的に検出できるし、復帰しない関数の誤りを検出するため、関数内の命令を調べることにより、自動的、かつ正確に復帰しない関数を検出し、復帰しない関数情報として記録できる。
【０１６５】
（２）  ：請求項２では、復帰情報補正手段は、関数内に、無限ループや復帰しないシステム関数の呼び出しや前記復帰しない関数情報内に記録された関数の呼び出しの命令があると、その命令を通るルートは復帰することがないと見なし、関数内の全てのルートが復帰することがないと解析された場合、その関数を、前記復帰しない関数情報に追加登録する。
【０１６６】
このようにして、利用者が作成した関数を自動的にチェックすることで、復帰しない関数の使用誤り、値を返さない関数の使用誤り、復帰値のチェック漏れ等を自動的に検出し、利用者に知らせることが可能な装置を実現させることが可能になる。
【０１６７】
この場合、値を返さない関数の使用の誤りを検出するため、関数内の命令を調べることにより、自動的かつ正確かつ出来るだけ多く、復帰しない関数を検出し、復帰しない関数情報に追加記録できる。
【０１６８】
（３）  ：請求項３では、関数呼び出し検査手段と、誤り情報表示手段は、復帰しない関数情報に記録されている関数の呼び出しを調べ、その関数を呼び出した後に、実行される命令があれば、画面に表示して誤った記述であることを利用者に知らせる。
【０１６９】
このようにして、利用者が作成した関数を自動的にチェックすることで、復帰しない関数の使用誤り、値を返さない関数の使用誤り、復帰値のチェック漏れ等を自動的に検出し、利用者に知らせることが可能な装置を実現させることが可能になる。
【０１７０】
この場合、特に、復帰しない関数の使用誤りを自動的に検出し、表示して利用者に通知（メッセージ通知）する。
【０１７１】
（４）  ：請求項４では、関数呼び出し検査手段と、誤り情報表示手段は、復帰情報解析手段において、関数が値を返す関数と記述されていても、関数内の実行される復帰命令の全てに復帰値がない場合、その関数を、値を返さない関数情報として記録し、前記値を返さない関数情報に記録されている関数の呼び出し後に、その関数の復帰情報の参照があった場合、画面に表示して誤った記述であることを利用者に知らせる。
【０１７２】
このようにして、利用者が作成した関数を自動的にチェックすることで、復帰しない関数の使用誤り、値を返さない関数の使用誤り、復帰値のチェック漏れ等を自動的に検出し、利用者に知らせることが可能な装置を実現させることが可能になる。
【０１７３】
この場合、特に、値を返さない関数の使用誤りを自動的に検出して表示することで利用者に知らせることができる。
【０１７４】
（５）  ：請求項５では、関数呼び出し検査手段と、誤り情報表示手段は、値を返す関数情報を画面に表示して利用者に提示し、復帰情報の中からエラー発生を知らせる値のみを選択してもらうことにより、エラーを知らせる関数情報として記録し、前記エラーを知らせる関数情報に記録されている関数の呼び出し後に、復帰値のチェックが漏れていた場合、画面に表示してチェック漏れがあることを利用者に知らせる。
【０１７５】
このようにして、利用者が作成した関数を自動的にチェックすることで、復帰しない関数の使用誤り、値を返さない関数の使用誤り、復帰値のチェック漏れ等を自動的に検出し、利用者に知らせることが可能な装置を実現させることが可能になる。
【０１７６】
この場合、特に、復帰値のチェック漏れを自動的に検出し、利用者に知らせることが可能になる。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】本発明の実施の形態におけるプログラムチェック装置の構成図である。
【図３】本発明の実施の形態における全体構成の説明図である。
【図４】本発明の実施の形態における復帰情報解析手段の詳細説明図である。
【図５】本発明の実施の形態における復帰情報補正手段の説明図である。
【図６】本発明の実施の形態における復帰情報補正手段の詳細説明図である。
【図７】本発明の実施の形態における関数呼び出し検査手段の詳細説明図（その１）である。
【図８】本発明の実施の形態における関数呼び出し検査手段の詳細説明図（その２）である。
【図９】本発明の実施の形態における関数呼び出し検査手段の詳細説明図（その３）である。
【図１０】本発明の実施の形態における関数呼び出し検査手段の詳細説明図（その４）である。
【図１１】従来例１の説明図であり、Ａ図は装置構成図、Ｂ図は処理フローチャートである。
【図１２】従来例２の説明図である。
【符号の説明】
１  装置本体
２  表示部
３  入力部
４  ＲＤＤ（リムーバブルディスクドライブ）
５  ＨＤＤ（ハードディスク装置）
１１  ＣＰＵ（中央演算処理装置）
１２  ワークメモリ
１３  通信制御部
１０１  プログラム構文解析手段
１０２  プログラム意味解析手段
１０３  復帰情報解析手段
１０４  復帰情報補正手段
１０５  関数呼び出し検査手段
１０６  誤り情報表示手段
【図１】
2005004301.tif 000008
【図２】
2005004301.tif 000009
【図３】
2005004301.tif 000010
【図４】
2005004301.tif 000011
【図５】
2005004301.tif 000012
【図６】
2005004301.tif 000013
【図７】
2005004301.tif 000014
【図８】
2005004301.tif 000015
【図９】
2005004301.tif 000016
【図１０】
2005004301.tif 000017
【図１１】
2005004301.tif 000018
【図１２】
2005004301.tif 000019