(57)【要約】【課題】  一般の操作者が容易にプログラムの異常発生箇所を特定できるようするプログラム作成支援装置を提供する。【解決手段】  プログラムを記憶するプログラム記憶部１、記憶されたプログラムを所定の手続きで改変するプログラム改変部３、改変されたプログラムを実行させるプログラム実行部４、実行されたプログラムの各命令の変数の値、それらの各命令と変数の値との対応関係、およびそれらの各命令の実行順からなる変数情報を取得する変数情報取得部５、プログラム中の各命令と変数情報取得部５によって取得された変数情報とを取得して表示情報に変換する表示情報制御部６、表示情報を記憶する表示情報記憶部７、表示情報記憶部７に記憶された表示情報を取得して、表示情報のうち複数の命令とそれらの各命令に含まれる変数の値とそれらの命令それぞれの実行順を表示する表示部８を備えた。【選択図】図３
2008047083.tif 000002
【特許請求の範囲】
【請求項１】
複数の変数を含む、複数の命令からなる原プログラムを記憶するプログラム記憶部と、
前記原プログラムに所定の改変を施すプログラム改変部と、
前記プログラム改変部に改変されてなるプログラムを実行して、前記原プログラムを構成する複数の命令それぞれに含まれる変数の値を取得する変数値情報取得部と、
前記原プログラムを構成する複数の命令と前記変数値情報取得部に取得された該原プログラムを構成する複数の命令それぞれに含まれる変数の値とを、命令および該命令に含まれる変数の値を互いに対応させて表示する表示部とを備えたことを特徴とするプログラム作成支援装置。
【請求項２】
前記変数値情報取得部が、前記原プログラムを構成する複数の命令それぞれの実行順を取得するものであり、
前記表示部が、表示する複数の命令中の１つの命令および該命令に含まれる変数の値をいずれか１つ以上強調表示するものであって、前記変数値情報取得部に取得された実行順に基づいて、強調表示する箇所を実行順および実行順の逆順に変更自在であることを特徴とする請求項１記載のプログラム作成支援装置。
【請求項３】
前記変数値情報取得部が、ループ内の繰り返される命令に含まれた変数の各回の値それぞれを取得するものであり、
前記表示部が、それらの変数の各回の値それぞれを並べて表示するものであることを特徴とする請求項１記載のプログラム作成支援装置。
【請求項４】
前記原プログラムを構成する複数の命令と前記変数値情報取得部により取得された該原プログラムを構成する複数の命令に含まれる変数の値とを１つの表示情報とした、１つ以上の表示情報を記憶する表示情報記憶部と、
前記表示情報記憶部に複数の表示情報が記憶されている場合にそれらの表示情報のうちの２つの表示情報の差の情報を表示する差異情報表示部を備えたものであることを特徴とする請求項１記載のプログラム作成支援装置。
【請求項５】
前記原プログラム中の所定の変数に値を入力する入力命令を該原プログラムに挿入する入力命令挿入部を備えたものであることを特徴とする請求項１記載のプログラム作成支援装置。
【請求項６】
コンピュータシステムで実行されることにより、該コンピュータシステムを、
複数の変数を含む、複数の命令からなる原プログラムを記憶するプログラム記憶部と、
前記原プログラムに所定の改変を施すプログラム改変部と、
前記プログラム改変部に改変されてなるプログラムを実行して、前記原プログラムを構成する複数の命令それぞれに含まれる変数の値を取得する変数値情報取得部と、
前記原プログラムに含まれる複数の命令と前記変数値情報取得部に取得された該原プログラムに含まれる複数の命令それぞれに含まれる変数の値とを、命令および該命令に含まれる変数の値を互いに対応させて表示する表示部とを備えたプログラム作成支援装置として動作させることを特徴としたプログラム作成支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、プログラムの作成を支援するプログラム作成支援装置、およびコンピュータシステムで実行させることによりそのコンピュータシステムをプログラム作成支援装置として動作させるプログラム作成支援プログラムに関する。
【背景技術】
【０００２】  従来、プログラムの作成を支援する最も基本的な方法として、ログの書き出しが行われている。プログラマは、プログラムの作成時に、プログラムが正常に動作しているかどうか判断し、動作に異常がある場合にはプログラム上のどの箇所にその異常の原因が存在しているのかを突き止める作業を行う。プログラマは、プログラムのソースコード上に命令文を追加修正して追加箇所での変数の値を標準出力やファイル等にログ出力することで、その出力結果を参照してプログラムの動作を確認することができる。しかし、プログラムに出力用の命令を追加する作業は手間がかかり、またプログラムのソースコードの視認性が悪化するという問題があった。【０００３】  そこで、プログラムの作成を支援するプログラム支援装置として、プログラムを修正することなくプログラム内の変数の値を確認できるデバッガが広く使用されるようになった。デバッガは、一般に、プログラムの実行をユーザの操作で指定された命令文で一時的に止め、その時点でのプログラム上の各変数の値を示すものである。プログラマは、その値を参照することでプログラムの動作確認を行うことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】  しかし、従来のプログラム作成支援装置では、プログラム上での異常の発生箇所を突き止めるために、実行を止める命令文の位置を何度も変更して、その度に変数の値を注意深く確認する必要があり、また、一度、１つの命令文の実行を通り過ぎてしまうと後戻りはできず、もう一度始めから実行しなおさなくてはならなかった。このため、特に、大規模なプログラムや、他のプログラマが作成した詳細な仕様が不明確なプログラム等において、異常の発生箇所を特定する作業に時間がかかるという問題があった。【０００５】  本発明は上記事情に鑑み、プログラムの作成を支援して、一般の操作者が容易にプログラムの異常発生箇所を特定できるようにするプログラム作成支援装置、およびコンピュータシステムで実行されることによりそのコンピュータシステムをそのようなプログラム作成支援装置として動作させるプログラム作成支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】  上記目的を達成する本発明のプログラム作成支援装置は、
複数の変数を含む、複数の命令からなる原プログラムを記憶するプログラム記憶部と、
上記原プログラムに所定の改変を施すプログラム改変部と、
上記プログラム改変部に改変されてなるプログラムを実行して、上記原プログラムを構成する複数の命令それぞれに含まれる変数の値を取得する変数値情報取得部と、
上記原プログラムを構成する複数の命令と上記変数値情報取得部に取得されたその原プログラムを構成する複数の命令それぞれに含まれる変数の値とを、命令およびその命令に含まれる変数の値を互いに対応させて表示する表示部とを備えたことを特徴とする。【０００７】  ここでいう原プログラムは、プログラムのソースコードであってもよく、プログラムがコンパイルされた後の実行形式のプログラムであってもよい。また、ここでいうプログラムの改変は変数の値を取得するための改変を意味するものであり、プログラムのソースコードに加える改変、プログラムのコンパイル時に行う改変、および実行形式のプログラムに加える改変のいずれであってもよい。【０００８】  なお、上記表示部における、互いに対応させて表示するとは、例えば、プログラムの各命令文の右横や下の行にそれらの各命令文に含まれる変数の値を表示することのように、プログラムの各命令文とそれらの各命令文に含まれる変数の値の対応が明らかになるようそれらを共に表示することを意味する。また、上記変数情報取得部は、同じ名称の変数が異なる命令文に存在する場合、それらの各命令文に含まれる変数の値それぞれを取得する。【０００９】  また、上記表示部に表示される対象となる、上記原プログラムを構成する複数の命令と上記変数値情報取得部に取得されたその原プログラムを構成する複数の命令それぞれに含まれる変数の値は、その原プログラムの全命令文とそれらの命令文に対する変数の値であってもよく、その原プログラムの一部の領域に含まれる一連の複数の命令文とそれらの命令文に対する変数の値であってもよい。【００１０】  上記本発明のプログラム作成支援装置では、上記原プログラムを構成する複数の命令と上記変数値情報取得部に取得されたその原プログラムを構成する複数の命令それぞれに含まれる変数の値を、上述したように対応させて表示することにより、操作者が、一々操作を加えることなくプログラムの広い範囲での変数の値をプログラムの命令文と共に確認することができるため、プログラム上の異常個所の発生位置の視認が容易になる。【００１１】  上記本発明のプログラム作成支援装置は、上記プログラム改変部が、上記原プログラムを構成する複数の命令に、命令に含まれる変数値を配列変数に格納する命令文および該配列変数のデータを出力する命令文を追加するものであり、
上記変数値情報取得部が、前記配列変数のデータを取得することにより、上記原プログラムを構成する複数の命令それぞれに含まれる変数の値を取得するものであることが好ましい。【００１２】  ここで、例えば、上記命令に含まれる変数値を格納する配列変数の引数を、その命令の行番号とすることで、命令とその命令に含まれる変数の値とを対応させることができる。【００１３】  上記本発明のプログラム作成支援装置は、上記変数値情報取得部が、上記原プログラムを構成する複数の命令それぞれの実行順を取得するものであり、
上記表示部が、上記原プログラムを構成する複数の命令と上記変数値情報取得部に取得されたその原プログラムを構成する複数の命令それぞれの実行順とを、命令およびその命令の実行順を互いに対応させて表示するものであることが好ましい。【００１４】  このプログラム作成支援装置は、このように命令の実行順を表示するものであるため、操作者は、プログラムが実行される順番を容易に追うことができる。【００１５】  上記本発明のプログラム作成支援装置は、上記変数値情報取得部が、上記原プログラムを構成する複数の命令それぞれの実行順を取得するものであり、
上記表示部が、表示する複数の命令中の１つの命令およびその命令に含まれる変数の値をいずれか１つ以上強調表示するものであって、上記変数値情報取得部に取得された実行順に基づいて、強調表示する箇所を実行順および実行順の逆順に変更自在であることが好ましい。【００１６】  ここで、強調表示とは、例えば、該当箇所の背景部分の色および模様を変更する表示、該当箇所の文字の色およびフォントを変更する表示、該当箇所の文字に下線をつける表示、該当箇所の文字を枠で囲む表示等が挙げられる。【００１７】  このプログラム作成支援装置は、このように強調表示する箇所を実行順および実行順の逆順に変更自在であるため、操作者は、プログラムの実行順を容易に追うことができる。【００１８】  なお、強調表示する箇所の実行順の逆順への変更は、上記本発明のプログラム作成支援装置が、上記原プログラムを構成する複数の命令に含まれる複数の変数の値を取得する変数値情報取得部を有することにより実現される。【００１９】  上記本発明のプログラム作成支援装置は、上記表示部が、および上記変数値情報取得部に取得された複数の変数の値を、上記原プログラムにコメントとして追加して表示するものであることが好ましい。【００２０】  このプログラム作成支援装置は、このように、変数の値をプログラムにコメントとして追加することにより、実行結果を１つのファイルにまとめることができるため、取り扱いが容易となり、結果の視認性を向上させる。【００２１】  上記本発明のプログラム作成支援装置は、上記変数値情報取得部が、ループ内の繰り返される命令に含まれた変数の各回の値それぞれを取得するものであり、
上記表示部が、それらの変数の各回の値それぞれを並べて表示するものであることが好ましい。【００２２】  このプログラム作成支援装置は、このように、ループ内の繰り返される命令に含まれた変数の各回の値を並べて表示するものであるため、ユーザは、ループ内の繰り返される命令の結果も一目で確認することができる。【００２３】  上記本発明のプログラム作成支援装置は、上記原プログラムを構成する複数の命令と上記変数値情報取得部により取得されたその原プログラムを構成する複数の命令に含まれる変数の値とを１つの表示情報とした、１つ以上の表示情報を記憶する表示情報記憶部と、
上記表示情報記憶部に複数の表示情報が記憶されている場合にそれらの表示情報のうちの２つの表示情報の差の情報を表示する差異情報表示部を備えたものであることが好ましい。【００２４】  このプログラム作成支援装置は、このように、２つの表示情報の差異の情報を表示するものであるため、例えば、同じプログラムであっても環境によって異なる結果が出力される場合などに、その違いの発生箇所の指摘を容易にする。また、異なるが類似したプログラムの動作の違いが分かりやすくなる。【００２５】  上記本発明のプログラム作成支援装置は、上記原プログラム中の所定の変数に値を入力する入力命令をその原プログラムに挿入する入力命令挿入部を備えたものであることが好ましい。【００２６】  このプログラム作成支援装置は、このように、プログラムに、所定の変数に値を入力する入力命令を挿入するものであるため、操作者は、挿入箇所以降のプログラムのテストを容易に行うことができる。【００２７】  上記入力命令挿入部を備えたプログラム作成支援装置は、上記原プログラム中の所定の変数の値を判定する判定命令をその原プログラムに挿入する判定命令挿入部を備えたものであり、
上記表示部が、上記判定命令挿入部により挿入された判定命令の判定結果を表示するものであることが好ましい。【００２８】  このプログラム作成支援装置は、このように、所定の変数の値を判定する判定命令を挿入するものであるため、プログラムのテスト結果の判定をより容易にする。【００２９】  上記目的を達成する本発明のプログラム作成支援プログラムは、
コンピュータシステムで実行されることにより、そのコンピュータシステムを、
複数の変数を含む、複数の命令からなる原プログラムを記憶するプログラム記憶部と、
上記原プログラムに所定の改変を施すプログラム改変部と、
上記プログラム改変部に改変されてなるプログラムを実行して、上記原プログラムを構成する複数の命令それぞれに含まれる変数の値を取得する変数値情報取得部と、
上記原プログラムに含まれる複数の命令と上記変数値情報取得部に取得されたその原プログラムに含まれる複数の命令それぞれに含まれる変数の値とを、命令およびその命令に含まれる変数の値を互いに対応させて表示する表示部とを備えたプログラム作成支援装置として動作させることを特徴する。【００３０】  上記プログラム作成支援プログラムがコンピュータシステムで実行されることによりプログラム作成支援装置として動作するコンピュータシステムは、上記本発明のプログラム作成支援装置と同じ作用効果を奏する。【００３１】  なお、プログラム作成支援装置とプログラム作成支援プログラムとで構成要素に同じ名前をつけたけれども、それらの構成要素は、プログラム作成支援装置ではハードウェアおよびソフトウェアを意味し、プログラム作成支援プログラムではソフトウェアのみを意味する。
【発明の効果】
【００３２】  以上説明したように、本発明によれば、プログラムの作成を支援して、一般の操作者が容易にプログラムの異常発生箇所を特定できるようにするプログラム作成支援装置、およびコンピュータシステムで実行されることによりそのコンピュータシステムをそのようなプログラム作成支援装置として動作させるプログラム作成支援プログラムが提供される。
【発明を実施するための最良の形態】
【００３３】  以下、本発明の実施形態について説明する。【００３４】  図１は、本発明のプログラム作成支援装置の一実施形態が適用されたコンピュータシステム１００の概略構成図である。以下、このコンピュータシステム１００の構成および動作について説明する。【００３５】  コンピュータシステム１００は、ＣＰＵ、主記憶装置、ハードディスク等が内蔵された本体部１０１、この本体部１０１からの指示により表示画面１０２ａ上に画面や文字列の表示を行うＣＲＴディスプレイ１０２、このコンピュータシステム１００にユーザの指示や文字情報を入力するためのキーボード１０３、上記表示画面１０２ａ上の任意の位置を指定することにより、その指定時にその位置に表示されていたアイコン等に応じた指示を入力するマウス１０４を備えている。【００３６】  本体１０１には、ＣＤ−ＲＯＭ１０５が取り出し自在に装填され、そのように装填されたＣＤ−ＲＯＭ１０５に記憶された情報を再生するＣＤ−ＲＯＭドライブが内蔵されている。【００３７】  コンピュータシステム１００のハードウェア構成は以下のようになる。【００３８】  図２は、コンピュータシステムのハードウェア構成図である。【００３９】  このハードウェア構成図には、ＣＰＵ（中央演算処理装置）１１１、ＲＡＭ１１２、ＨＤＤ（ハードディスクドライブ）１１３、およびＣＤ−ＲＯＭドライブ１１４が示されており、それらはバス１１０で相互に接続されている。【００４０】  ＨＤＤ１１３は、記録媒体であるハードディスク１２０を内蔵しており、このハードディスク１２０に対し情報の記録再生を行う。また、ＣＤ−ＲＯＭドライブ１１４には、ＣＤ−ＲＯＭ１０５が取り出し自在に装填される。【００４１】  また、図１には、図示しない複数のＩ／Ｏインターフェースそれぞれを介してバス１１０に接続された、ＣＲＴディスプレイ１０２、キーボード１０３、およびマウス１０４が示されている。【００４２】  本実施形態では、ＣＤ−ＲＯＭ１０５に、本発明にいうプログラム作成支援プログラムが記憶されている。【００４３】  このＣＤ−ＲＯＭ１０５は本体１０１内に装填され、ＣＤ−ＲＯＭドライブ１１４からそのＣＤ−ＲＯＭ１０５に記憶されたプログラム作成支援プログラムが読み込まれ、バス１１０を経由してハードディスク１２０内にインストールされる。【００４４】  このハードディスク１２０内にインストールされたプログラム作成支援プログラムが起動されると、このハードディスク１２０内のプログラム作成支援プログラムはＲＡＭ１１２にロードされ、ＣＰＵ１１１により実行される。すなわち、このコンピュータシステム１００には、ソフトウェアと、そのソフトウェアを動作させる環境としてのハードウェアとの双方からなる、プログラム作成支援装置１００＿１が、図３に示すように実現される。【００４５】  なお、上記ＣＤ−ＲＯＭ１０５に記憶されたプログラム作成支援プログラムは、上記のようにしてコンピュータシステム１００のハードディスク内にインストールされるが、そのプログラム作成支援プログラムがインストールされた状態のハードディスクも、本発明のプログラム作成支援プログラムの一実施形態に相当する。【００４６】  また、図１に示すコンピュ��タシステム１００では、プログラム作成支援プログラムを記憶するプログラム記憶媒体としてＣＤ−ＲＯＭ１０５を用いているが、本発明にいうプログラムを記憶する媒体は、ＣＤ−ＲＯＭに限られるものではなく、それ以外の光ディスク、ＭＯ、フロッピーディスク、磁気テープなどの記憶媒体でありえる。プログラム作成支援プログラムを記憶した状態にあるそれらのプログラム記憶媒体は、本発明のプログラム作成支援プログラムの一実施形態に相当する。【００４７】  図３は、図１に示す本実施形態のプログラム作成支援装置の概略構成図である。【００４８】  コンピュータシステム１００に実現された本実施形態のプログラム作成支援装置１００＿１は、図３に示すように、複数の変数を含む、複数の命令からなるプログラムを記憶するプログラム記憶部１、ユーザの操作情報を取得するユーザ操作情報取得部２、上記プログラム記憶部１に記憶されたプログラムを所定の手続きで、必要に応じユーザ操作情報取得部２によって取得された情報に基づいて改変するプログラム改変部３、上記プログラム改変部３によって改変されたプログラムをコンパイルして実行させるプログラム実行部４、プログラム実行部４によって実行されたプログラムの各命令の変数の値、そのプログラムの各命令と変数の値との対応関係、およびそのプログラムの各命令の実行順からなる変数情報を取得する変数情報取得部５、プログラム記憶部１に記憶されたプログラム中の各命令と変数情報取得部５によって取得された変数情報とを取得して表示情報に変換するとともにその表示情報のやりとりを制御する表示情報制御部６、表示情報制御部６によって変換されてなる表示情報を記憶する表示情報記憶部７、表示情報記憶部７に記憶された表示情報を取得して、表示情報のうち複数の命令とそれらの各命令に含まれる変数の値とそれらの命令それぞれの実行順を表示する表示部８によって構成されている。【００４９】  ここで、ユーザ操作情報取得部２は、その構成要素の１つとして、ユーザの操作に応じて所定のテスト用の情報を取得するテスト情報取得部２＿１を有する。また、ユーザ操作情報取得部２および表示部８は、図１に示す表示画面１０２ａを共有する。【００５０】  なお、本発明にいう変数値情報取得部は、プログラム改変部３、プログラム実行部４、および変数情報取得部５の総体に相当し、本発明にいう表示部は、表示情報制御部６、表示情報記憶部７、および表示部８の総体に相当する。また、表示部８は、本発明にいう差異情報表示部を兼ね、テスト情報取得部２＿１は、本発明にいう入力命令挿入部および判定命令挿入部を兼ねる。【００５１】  図４は、図１に示す表示画面１０２ａの一例を示す図である。【００５２】  同図に示される表示画面を用いて、ユーザは、プログラムおよび変数値の内容確認、各種情報の入力、プログラムの実行、表示情報の変更などを行う。同図に示すように、プログラムの表示画面は、ウィンドウ８＿１を有する。そのウィンドウ８＿１は、中央にプログラムのソースコードを表示するプログラム表示領域８１、その右に変数の値を表示する変数値表示領域８２、その右にプログラムの実行順を表示する実行順表示領域８３、その右にテスト用のデータ入力文および判��条件文を編集自在に表示するテスト情報表示領域８４、プログラム表示領域８１の左に命令文を指定する矢印マークを表示する命令文指定領域８５、画面上部左に、クリックすることによりプログラム中の変数値の情報の取得が実行される実行ボタン８６、およびクリックすることによりテスト情報表示領域８４に表示された情報を使用した上でプログラム中の変数値の情報の取得が実行されるテスト実行ボタン８７から構成されている。【００５３】  同図のプログラム表示領域８１に改変前のプログラムが横書きで上から下に複数の命令が並べられて表示され、プログラム表示領域８１の右隣に位置する変数値表示領域８２には、左の各命令に含まれる各変数の値がそれらの各命令のちょうど右隣に位置するよう表示されている。また、変数値表示領域８２の右隣に位置する実行順表示領域８３には、左の各命令の実行順のデータが変数の値を挟んでそれらの各命令のちょうど右隣に位置するよう表示されている。【００５４】  同図には、実行順表示領域８３中の１つの実行順の番号８３＿１、その実行順の番号８３＿１に対応するプログラム表示領域８１の１つの命令文８１＿１と、その実行順の番号８３＿１に対応する変数値表示領域８２の１つの変数の値８２＿１とが枠で囲まれて強調表示されている。また、同図には、実行順表示領域８３中の、上記実行順の番号８３＿１に１を加えた実行順の番号８３＿２、その実行順の番号８３＿２に対応するプログラム表示領域８１の１つの命令文８１＿２と、その実行順の番号８３＿２に対応する変数値表示領域８２の１つの変数の値８２＿２とが枠で囲まれて強調表示されている。また、変数値表示領域８２には、もう１つの変数の値８２＿３が枠で囲まれて強調表示されている。【００５５】  また、テスト情報表示領域８４には、ユーザによって入力された、変数に値を入力する変数値入力命令文８４＿１および変数の値を判定する変数値判定命令文８４＿２が表示されている。【００５６】  また、同図に示すように、プログラムの表示画面は、ウィンドウ８＿２を有する。このウィンドウ８＿２の構成要素は図示されていない。このウィンドウ８＿２の構成要素およびその機能は、ウィンドウ８＿１の構成要素および機能と同じものである。【００５７】  次に、図３に示す本実施形態のプログラム作成支援装置を構成する各部の動作について、図５（Ａ）、図５（Ｂ）のフローチャートに従って、適宜図４の表示画面を参照し、また、図６（Ａ）、図６（Ｂ）、図６（Ｃ）のデータ例を参照しながら説明する。まず、図５（Ａ）のフローチャートから説明する。【００５８】  図５（Ａ）は、本実施形態のプログラム作成支援装置の一動作を示すフローチャートである。【００５９】  本実施形態のプログラム作成支援装置１００＿１は、図５に示すフローチャートに従って動作する。【００６０】  図５に示すフローチャートは、図４に示す表示画面のプログラム表示領域８１に図３に示すプログラム記憶部に記憶されたプログラムが表示された状態からスタートする。【００６１】  図５に示すフローチャートのステップＳ１では、ユーザが図４の実行ボタン８６をクリックすることで、図３に示すブログラム改変部３が、プログラム記憶部１に記憶されたプログ��ムを取得し、そのプログラムを解析した上で改変する。プログラムの改変の内容は以下で図６を用いて説明する。【００６２】  図６（Ａ）は、改変前のブログラムを示す図であり、図６（Ｂ）は改変後のプログラムを示す図であり、図６（Ｃ）は、改変後のプログラムから出力された行番号、変数の値、および命令の実行順のデータを示す図である。【００６３】  図６（Ａ）には、改変前のプログラムを構成する複数の命令３１が示されており、図６（Ｂ）には、改変前のプログラムを構成する複数の命令３１、それらの複数の命令行３１各行の次行にそれぞれ挿入された複数の挿入命令３２、および最後に挿入された最終挿入命令３３が示されている。挿入命令３２は、前行の命令３１が変数Ｘを含む「ｘ＝ａ＋ｂ；」のようなものであった場合、変数ｘを「ａｒｙ＿ｌｉｎｅ［５］＝ｘ；」のように、配列変数ａｒｙ＿ｌｉｎｅ［］格納するものである。図３に示すプログラム改変部３は、この挿入命令３２を、上記命令３１を解析して変数名を抜き出し、また、改変前プログラムの行番号を取得して作成する。この配列変数の引数である５の値は、この変数ｘを含む命令３１が図６（Ａ）では５行目に存在することを表す。また、挿入命令３２は、同時に、グローバル変数ｉを各行でインクリメントすることにより、図示しない配列ａｒｙ＿ｉ［］に変数ｉの値を格納するものである。この場合、変数ｉの値はプログラムの実行順を表している。図６（Ｂ）の最終挿入命令３３は、これらの配列変数ａｒｙ＿ｌｉｎｅ［］および配列変数配列ａｒｙ＿ｉ［］の引数とそれぞれの値とを出力する命令である。【００６４】  図６（Ｃ）には、左側に、図６（Ａ）に示す複数の命令３１各行の行番号３４＿１が縦並びで示され、行番号３４＿１の右側に、それらの各行に含まれる変数の値３４＿２が縦並びで示され、変数の値３４＿２の右側に、それらの各行の実行順３４＿３が縦並びで示されている。これらの行番号３４＿１、変数の値３４＿２、および実行順３４＿３のデータは、図６（Ｂ）に示す最終挿入命令３２によって出力されたものである。行番号３４＿１、変数の値３４＿２、および実行順３４＿３のうち、互いに横並びになっている各行のデータの組みは、複数の命令３１のうちの１つの命令と互いに対応したものであり、その命令の行番号、その命令に含まれる変数の値、およびその命令の実行順を表している。【００６５】  ここで、命令３１がループ中の複数回繰り返される命令である場合、その命令に対応する変数の値３４＿２および実行順３４＿３の各行は、「３，５，１１」のようにカンマで区切られた複数の値を横並びにした形で表されている。このようなカンマ区切りの表示は、図６（Ｂ）に示す挿入命令３２を、「ａｒｙ＿ｌｉｎｅ［３］＋＝ｘ＋‘，’；」のように、配列変数ａｒｙ＿ｌｉｎｅ［］にカンマおよび変数の値を追記するようなものとすればよい。同じく、配列変数ａｒｙ＿ｉ［］もカンマおよび実行順を追記するようなものとすればよい。次にステップＳ２へ進む。【００６６】  ステップＳ２では、図３に示すプログラム実行部４が、ステップＳ１で改変されてなる、図６（Ｂ）に示す改変後のプログラムをコンパイルして実行形式のファイルを作成して実行する。なお、���実施形態では、プログラムのソースコード自体を改変する例をあげているが、プログラムをコンパイルする際に改変するものであってもよく、コンパイル後の実行形式のプログラムを改変するものであってもよい。また、プログラムがインタプリタ言語で記述されている場合にはプログラムのコンパイルを行う必要はない。次にステップＳ３へ進む。【００６７】  ステップＳ３では、図３に示す変数情報取得部５によって、ステップＳ２で行われた実行により出力された、図６（Ｃ）に示す行番号、変数の値、および実行順のデータを取得する。次にステップＳ４へ進む。【００６８】  ステップＳ４では、図３に示す表示情報制御部６によって、ステップＳ３で図３に示す変数情報取得部５によって取得された行番号、変数の値、および実行順のデータ、並びに図３に示すプログラム記憶部１に記憶されたプログラムを、図３に示す表示情報記憶部７に記憶させ、また、図３に示す表示部８に送る。次にステップＳ５へ進む。【００６９】  ステップＳ５では、図３に示す表示部８が、ステップＳ４で送られた行番号、変数の値、および実行順のデータ、並びにプログラムを表示する。表示の詳細は図４に示したように、プログラム表示領域８１に改変前のプログラムが横書きで上から下に複数の命令が並べられて表示される。プログラム表示領域８１の右隣に位置する変数値表示領域８２には、左の各命令に含まれる各変数の値がそれらの各命令のちょうど右隣に位置するよう表示される。また、変数値表示領域８２の右隣に位置する実行順表示領域８３には、左の各命令の実行順のデータが変数の値をはさんでそれらの各命令のちょうど右隣に位置するよう表示される。【００７０】  本実施形態のプログラム作成支援装置１００＿１は、このように、プログラムの各命令のちょうど右隣に、それらの各命令に含まれる各変数およびそれらの各命令の実行順が位置することにより、プログラムの各命令と、それらの各命令に含まれる各変数およびそれらの各命令の実行順とが対応付けられて表示されることになる。そしてプログラムと複数の変数の値とを上述したように対応させて表示することにより、操作者が、一々操作を加えることなくプログラムの広い範囲での変数の値をプログラムと共に確認することができるため、プログラム上の異常個所の発生位置の視認が容易になる。また、本実施形態のプログラム作成支援装置１００＿１は、上述したように命令の実行順を表示するものであるため、操作者は、プログラムが実行される順番を容易に追うことができる。【００７１】  なお、図３に示す表示部８では、ステップＳ１の説明と同様に、ループ中の複数回繰り返される命令に対しては、その命令に対応する変数の値およびそれらの命令の実行順が、それぞれＡ，Ｂ，Ｃおよび８，１２，１６のようにカンマで区切られた複数の値で表されている。【００７２】  本実施形態のプログラム作成支援装置１００＿１は、このように、上記命令中の変数の複数回実行されたそれぞれの値を並べて表示するものであるため、複数回実行された命令の結果をプログラムの命令と対応して表示させることができる。【００７３】  また、図３に示す表示部８は、プログラム、変数の値等の表示情報を表示画面１０２ａ上に表示す��ものであるが、プログラムの命令の右側に、その命令に含まれる変数の値および命令の実行順をコメントとして追加してファイル等に表示するものであってもよい。本実施形態のプログラム作成支援装置１００＿１は、このように、変数の値および命令の実行順をプログラムにコメントとして追加することにより、実行結果を１つのファイルにまとめることができるので、取り扱いが容易となり、結果の視認性を向上させることができる。【００７４】  なお、本実施形態のプログラム作成支援装置１００＿１は、１つの命令に対して最大１つ変数を対象にしてその変数の値を表示しているが、１つの命令に対して複数の変数を対象としてそれらの変数の値を表示するものであってもよく、また変数が配列やオブジェクトであってもよい。それらの場合には、変数名や配列の引数、オブジェクトのプロパティなどと合わせてそれらの値を共に表示すればよい。【００７５】  次に、図５（Ｂ）のフローチャートについて説明する。【００７６】  図５（Ｂ）は、本実施形態のプログラム作成支援装置の一動作を示すフローチャートである。【００７７】  図５（Ｂ）のフローチャートでは、図５（Ａ）のフローチャートに従って表示された情報を、実行順に基づいて強調表示する箇所を変更する。図５（Ｂ）のフローチャートの初期状態は、図５（Ａ）の終了状態である。【００７８】  図５（Ｂ）に示すフローチャートのステップＳ１１では、ユーザが図４に示す実行順表示領域８３中の実行順の番号８３＿１をクリックして、図３に示す表示情報制御部６が実行順の番号８３＿１を取得する。次にステップＳ１２へ進む。【００７９】  ステップＳ１２では、図３に示す表示情報制御部６が、表示情報記憶部７に記憶された、プログラム、変数の値、および実行順のデータを取得し、ステップＳ１１で取得された実行順の番号８３＿１に対応する命令および変数の値の各アドレスを取得する。次にステップ１３へ進む。【００８０】  ステップＳ１３では、図３に示す表示部８が、表示情報制御部６から、プログラムを構成する命令、変数の値、および実行順のデータを取得して図５（Ａ）のステップＳ５と同様に図４に示す画面の表示を行うとともに、ステップＳ１２で取得した実行順の番号８３＿１、プログラムの命令および変数の値の各アドレスを取得して、実行順の番号８３＿１、その実行順の番号８３＿１に対応する命令文８１＿１と、その実行順の番号８３＿１に対応する変数の値８２＿１とを枠で囲んで強調表示する。次に、ユーザがキーボード１０３に通常備わる下方向矢印キーを押下することで、再びステップＳ１１〜ステップＳ１３を繰り返す。【００８１】  ２回目のステップＳ１１〜ステップＳ１３の動作では、１回目のステップＳ１１〜ステップＳ１３の動作と比べて、実行順の番号８３＿１が実行順の番号８３＿２へと１つ進み、それに応じて、実行順の番号８３＿２に対応する命令文８１＿２と、その実行順の番号８３＿２に対応する変数の値８２＿２とが枠で囲んで強調表示される。次に、ユーザがキーボード１０３に備わる上方向矢印キーを押下することで、再びステップＳ１１〜ステップＳ１３を繰り返す。【００８２】  ３回目のステップＳ１１〜ステップＳ１３の動作では、２回目のステッ��Ｓ１１〜ステップＳ１３の動作と比べて、実行順の番号８３＿２が実行順の番号８３＿１へと１つ戻り、それに応じて、実行順の番号８３＿１に対応する命令文８１＿１と、その実行順の番号８３＿１に対応する変数の値８２＿１とが枠で囲んで強調表示される。【００８３】  なお、本実施形態のプログラム作成支援装置１００＿１は、ユーザが、図４に示す実行順表示領域８３中の任意の実行順の番号をクリックして、実行順の番号、その実行順の番号に対応する命令文と、その実行順の番号に対応する変数の値とを枠で囲んで強調表示することができ、また、ユーザが、キーボード１０３に備わる下方向矢印キーを押下しつづけることで、強調表示する実行順の番号の変更を実行の進行方向、すなわち現在強調表示されている実行順の番号より大きな実行順の番号に変更し続けることができ、また、ユーザが、キーボード１０３に備わる上方向矢印キーを押下しつづけることで、実行順とは逆方向、すなわち現在強調表示されている実行順の番号より小さな実行順の番号に変更し続けることもできる。【００８４】  また、上記の強調表示は、該当箇所を枠で囲む表示の他に、背景部分の色を変更する表示、模様を変更する表示、該当箇所の文字の色およびフォントを変更する表示、該当箇所の文字に下線をつける表示等であってもよい。【００８５】  本実施形態のプログラム作成支援装置は、上述したようにユーザの指定に応じて、命令の実行順の番号、その実行順の番号に対応する命令、およびその実行順の番号に対応する変数の値の強調表示箇所を、実行順および実行順の逆順に変更するものであるため、操作者は、プログラムの実行順を容易に追うことができる。【００８６】  再び図５（Ａ）のフローチャートに戻り、上述したステップＳ１〜ステップＳ５の実行の後、図４のプログラム表示領域８１に示されるプログラムの動作する環境を変更して、再びステップＳ１〜ステップＳ５を実行する。環境を変更する例としては、プログラム表示領域８１に示されるプログラムがブラウザを使用するものであって、最初の実行と今回の実行とで異なるブラウザを用いる場合がある。【００８７】  この場合、ステップＳ１〜ステップＳ３までは、上述した１回目のステップＳ１〜ステップＳ３と同じ動作が行われる。次にステップＳ４に進む。【００８８】  ステップＳ４では、上述した１回目のステップＳ４と同様に、図３に示す表示制御部６によって、ステップＳ３で図３に示す変数情報取得部５によって取得された行番号、変数の値、および実行順のデータ、並びに図３に示すプログラム記憶部１に記憶されたプログラム（以下、これらを今回の表示情報と称する）を、図３に示す表示情報記憶部７に記憶させ、また、図３に示す表示部８に送る。さらに、表示情報制御部６は、表示情報記憶部７から、上述した１回目のステップＳ４で記憶された、行番号、変数の値、および実行順のデータ、並びにプログラム（以下、これらを１回目の表示情報と称する）を取得し、これらの情報も表示部８に送る。次にステップＳ５へ進む。【００８９】  ステップＳ５では、図３に示す表示部８に、ウィンドウ８＿１上に、ステップＳ４で送られた今回の表示情報を表示し、ウィンドウ８＿２上にステップＳ４で送られた１回目の表示情報を表示する。それぞれの表示の詳細は上述したステップＳ５で説明したとおりである。ここで、表示部８は、今回の表示情報と、１回目の表示情報とを比較して、プログラムの同じ命令に対する変数の値が互い異なるものである場合、その変数の値を強調表示する。図４の枠を付けられて強調表示された変数の値８２＿３がそれに当たる。【００９０】  なお、今回の表示情報に含まれるプログラムの命令と１回目の表示情報に含まれるプログラムの命令とに違いが存在する場合にも、２つのファイルの間の違いを探すいわゆるディフ（Ｄｉｆｆ）コマンドのように、互いに一致する命令どうしを対応させて、一致のない命令部分を強調表示し、また、互いに一致する２つの命令のそれぞれの変数の値が互いに異なるものである場合、それらの変数の値を強調表示するものであってもよい。【００９１】  本実施形態のプログラム作成支援装置１００＿１は、このように、２つの表示情報の差異の情報を強調して表示するものであるため、例えば、同じプログラムであっても環境によって異なる結果が出力される場合などに、その違いの発生箇所の指摘を容易にする。【００９２】  次に、図７のフローチャートを用いて、ユーザが、図４に示すテスト情報表示領域８４に、テスト用の変数値入力命令８４＿１および変数値判定命令文８４＿２を追加して、テスト実行ボタン８７をクリックした場合について説明する。【００９３】  図７は、本実施形態のプログラム作成支援装置の一動作を示すフローチャートである。【００９４】  ステップＳ２０では、図３に示すテスト情報取得部２が、図４に示すテスト情報表示領域８４に入力されたデータ入力命令および変数の値の判定命令を取得し、プログラム記憶部１に記憶された改変前のプログラムを取得し、取得した改変前のプログラムに取得した変数値入力命令８４＿１および変数値判定命令８４＿２を挿入してテスト用プログラムを作成し、作成したテスト用プログラムをプログラム記憶部１に格納する。次にステップＳ２１〜ステップＳ２５へ進む。【００９５】  ステップＳ２１〜ステップＳ２５の各ステップは、図５（Ａ）に示すステップＳ１〜ステップＳ５に対応している。図５（Ａ）に示すステップＳ１〜ステップＳ５では、プログラム記憶部１に記憶された改変前のプログラムを改変し、実行し、変数の値等を取得し、表示部８に改変前のプログラムおよび変数の値等を表示した。一方、図７に示すステップＳ２１〜ステップＳ２５では、プログラム記憶部１に記憶されたテスト用プログラムを用いる点がステップＳ１〜ステップＳ５とは異なる。ステップＳ２１〜ステップＳ２５では、そのテスト用プログラムを改変し、実行し、変数の値等を取得し、表示部８にテスト用のプログラムおよび変数の値等を表示する。【００９６】  本実施形態のプログラム作成支援装置１００＿１は、このように、プログラムに、所定の変数に値を入力する入力命令を挿入するものであるため、操作者は、挿入箇所以降のプログラムのテストを容易に行うことができる。【００９７】  また、本実施形態のプログラム作成支援装置１００＿１は、このように、所定の変数の値を判定する判定命令を挿入するものであるため、プログラムのテスト結果の判定をより容易��する。【００９８】  以上で、本発明の実施形態の説明を終了する。
【図面の簡単な説明】
【００９９】
【図１】  図１は、本発明のプログラム作成支援装置の一実施形態が適用されたコンピュータシステム１００の概略構成図である。
【図２】  図２は、コンピュータシステムのハードウェア構成図である。
【図３】  図３は、図１に示す本実施形態のプログラム作成支援装置の概略構成図である。
【図４】  図４は、図１に示す表示画面１０２ａの一例を示す図である。
【図５】  図５（Ａ）および図５（Ｂ）は、それぞれ、本実施形態のプログラム作成支援装置の一動作を示すフローチャートである。
【図６】  図６（Ａ）は、改変前のプログラムを示す図であり、図６（Ｂ）は改変後のプログラムを示す図であり、図６（Ｃ）は、改変後のプログラムから出力された行番号、変数の値、および命令の実行順のデータを示す図である。
【図７】  図７は、本実施形態のプログラム作成支援装置の一動作を示すフローチャートである。
【符号の説明】
【０１００】１  プログラム記憶部
２  ユーザ操作情報取得部
２＿１  テスト情報取得部
３  プログラム改変部
４  プログラム実行部
５  変数情報取得部
６  表示情報変換部
７  表示情報記憶部
８  表示部
８＿１，８＿２  ウィンドウ
３１  命令
３２  挿入命令
３３  最終挿入命令
３４＿１  行番号
３４＿２  変数の値
３４＿３  実行順
５０  プログラム作成支援プログラム
８１  表示領域
８１＿１  命令文
８２  変数値表示領域
８２＿１，８２＿２，８２＿３  変数の値
８３  実行順表示領域
８３＿１，８３＿２  実行順の番号
８４  テスト情報表示領域
８４＿１  変数値入力命令文
８４＿２  変数値判定命令文
８５  命令文指定領域
８６  実行ボタン
８７  テスト実行ボタン
１００  コンピュータシステム
１００＿１  プログラム作成支援装置
１０１  本体部
１０２  ＣＲＴディスプレイ
１０２ａ  表示画面
１０３  キーボード
１０４  マウス
１０５  ＣＤ−ＲＯＭ
１１０  バス
１１１  ＣＰＵ（中央演算処理装置）
１１２  ＲＡＭ
１１３  ＨＤＤ（ハードディスクドライブ）
１１４  ＣＤ−ＲＯＭドライブ
１２０  ハードディスク
【図１】
2008047083.tif 000003
【図２】
2008047083.tif 000004
【図３】
2008047083.tif 000005
【図４】
2008047083.tif 000006
【図５】
2008047083.tif 000007
【図６】
2008047083.tif 000008
【図７】
2008047083.tif 000009