JP2004139313A - ソースコード表示システム及びプログラム - Google Patents
ソースコード表示システム及びプログラム Download PDFInfo
- Publication number
- JP2004139313A JP2004139313A JP2002302814A JP2002302814A JP2004139313A JP 2004139313 A JP2004139313 A JP 2004139313A JP 2002302814 A JP2002302814 A JP 2002302814A JP 2002302814 A JP2002302814 A JP 2002302814A JP 2004139313 A JP2004139313 A JP 2004139313A
- Authority
- JP
- Japan
- Prior art keywords
- source code
- program
- display
- information
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】実行プログラムのソースコードあるいはソースコードに関連する情報を、実行プログラムの実行時に連動して表示し、実行プログラムの意味等の学習を支援すること。
【解決手段】ソースコード表示対象のプログラムの実行状態で、当該プログラム内に表示制御コマンドが記述されているか否かを判定し、記述されていたならば、当該プログラムの実行を一時停止し、停止状態において、記述された表示制御コマンドを識別し、識別した表示制御コマンドに応じて、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルまたは関連情報ファイルから取得する情報取得手段と、取得したソースコードまたは関連情報を表示する表示手段とを備えることを特徴とする。
【選択図】 図1
【解決手段】ソースコード表示対象のプログラムの実行状態で、当該プログラム内に表示制御コマンドが記述されているか否かを判定し、記述されていたならば、当該プログラムの実行を一時停止し、停止状態において、記述された表示制御コマンドを識別し、識別した表示制御コマンドに応じて、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルまたは関連情報ファイルから取得する情報取得手段と、取得したソースコードまたは関連情報を表示する表示手段とを備えることを特徴とする。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、プログラムのソースコード表示システムに関し、特にプログラムを実行しながらソースコードまたは関連情報を表示するソースコード表示システムに関するものである。
【0002】
【従来の技術】
コンピュータのプログラミングの学習時などにおいては、プログラムのサンプルコードを表示し、実際にそれを動かしてみて理解を深める、というのが一般的である。また、コンパイルや実行の指示をコマンドラインから行うのではなくて、グラフィカル・ユーザー・インタフェースで行うことができ、学習者の手助けとなるツールは存在する。
【0003】
一方、プログラムを実行させながら、その実行状態を表示する機能を持つシステムとしては、デバッガが一般的に使われている。これは、開発者が作成したプログラムコードにバグがないかを検証するために使われるツールである(例えば、特許文献1参照)。その使用形態としては、ソースコードを表示した上で、操作者がそのコード中のどのポイントでどのような情報を表示するのか指定することによって、そのソースコードを実行しながらその動的な情報(変数の値の変化など)を表示して、プログラムコードの健全性をチェックしている(例えば、特許文献2参照)。
【0004】
【特許文献1】
特開平10−207740号
【0005】
【特許文献2】
特開2002−196950号
【0006】
【発明が解決しようとする課題】
実行中のプログラムの記述を理解する場合、そのソースコードを解読し、ある処理とそれに対応するソースコードを自ら適切に把握し、ソースコードをたどっていく作業の必要が生じる。また、その処理が複数のプログラムからなる処理の場合は、複数のソースコード間で的確に処理手順を追っていくことになる。
そこで、プログラミングの学習時において、サンプルプログラム提供者がソースコードに関連するさまざまな情報をプログラムの実行に連動して伝達することが可能な手段またはツールが存在すれば、サンプルプログラムの学習者はそのソースコードの意味や関連情報を容易に理解することが可能となる。
これに対し、上記特許文献1,2で開示されたデバッガを用いることが考えられるが、デバッガによりブレークポイントを指定して実行状態の情報を取得する場合には、前提条件として、操作者がブレークポイントの適切な指定位置の情報を予め把握している必要がある。
すなわち、あるプログラムの詳細を理解するためには、プログラムの実行を実現しているソースコードおよびその記述箇所を正確に把握しておく必要があり、初心者等においては利用できないという問題がある。
【0007】
本発明は、実行プログラムのソースコードあるいはソースコードに関連する情報を、実行プログラムの実行時に連動して表示し、実行プログラムの意味等の学習を支援することができるソースコード表示システム及びプログラムを提供することを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ソースコード表示対象の実行プログラムの実行状態で、当該実行プログラム内に表示制御コマンドが記述されているか否かを判定し、記述されていたならば、当該実行プログラムの実行を一時停止し、停止状態において、記述された表示制御コマンドを識別し、識別した表示制御コマンドに応じて、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルまたは関連情報ファイルから取得する情報取得手段と、取得したソースコードまたは関連情報の一部または全部を表示する表示手段とを備えることを特徴とする。
そして、前記情報取得手段は、実行プログラム内でソースコードまたは関連情報を表示したい箇所に記述された1行の表示制御コマンドを識別し、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルまたは関連情報ファイルから取得することを特徴とする。
また、前記情報取得手段は、実行プログラム内でソースコードまたは関連情報を表示したい範囲の開始位置と終了位置に記述された表示制御コマンドを識別し、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルおよび関連情報ファイルから取得することを特徴とする。
また、前記情報取得手段は、実行プログラムのソースコードに記述している変数の値をさらに取得し、前記表示手段に表示させることを特徴とする。
【0009】
本発明に係るソースコード表示プログラムは、ソースコード表示対象の実行プログラムの実行状態で、当該実行プログラム内に表示制御コマンドが記述されているか否かを判定し、記述されていたならば、当該実行プログラムの実行を一時停止し、停止状態において、記述された表示制御コマンドを識別し、識別した表示制御コマンドに応じて、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルまたは関連情報ファイルから取得するステップと、取得したソースコードまたは関連情報の一部または全部を表示するステップとを備えることを特徴とする。
このような構成によって、プログラムを実行しながら、それを実行するために必要とされるソースコードまたはソースコードの一部、ソースコードに関連する情報、ソースコードで利用されている変数の値の表示が可能となる。
また、それら各情報の表示によって、プログラムの実行に関する情報を容易に取得することが可能となる。
【0010】
【発明の実施の形態】
以下、図面と共に本発明の実施の形態を詳細に説明する。
図1は、本発明に係るソースコード表示システムの実施に形態を示すシステム構成図である。
図1において、101は本システムを稼動する際に、ソースコードおよびそれに関連する情報を表示する対象となる実行プログラムのファイルである。
102は実行プログラムファイル101中の実行プログラムを作成するために使用したソースコードのファイルであり、本システムから参照できる場所に存在する。
103はソースコードファイル102中のソースコードの説明文等、ソースコードに関連する表示情報を記述した表示情報リソースファイルである。
104は実行プログラムファイル101中の実行プログラムに埋め込まれた本システム用コマンドの処理を行う機能情報を保持している情報表示制御用コマンドライブラリである。
105はソースコードファイル102中のソースコードで使用されている変数の値を時系列に格納しておく変数値格納用テーブルである。
106は本システムの演算処理部であり、プログラム実行部107と表示情報制御部108とからなる。
【0011】
プログラム実行部107は、実行プログラムファイル101中の実行プログラムを実行するプログラム実行機能、実行過程において本システム用コマンド(後述する)が出現した場合は情報表示制御用コマンドライブラリ104からそのコマンドを呼び出す情報表示制御用コマンド呼び出し機能、実行プログラムファイル101中の実行プログラムの実行状態の表示を表示情報制御部108に依頼する機能、情報表示制御用コマンドライブラリ104から返ってきた処理内容を表示情報制御部108に転送する表示情報生成処理依頼機能を備えている。
【0012】
表示情報制御部108は、プログラム実行部107から送信された処理命令をもとに、ソースコードファイル102の内容(ソースコード)または表示情報リソースファイル103内のメッセージリソースまたは変数値格納用テーブル105にある変数の情報から表示情報を生成する機能、生成した情報の表示を出力機器(ディスプレイなど)に指示する機能、実行プログラムファイル101の実行プログラムの実行状態の表示を出力機器(ディスプレイなど)に指示する機能を備えている。
【0013】
109は表示情報制御部108から送信された表示情報を表示する機能を持つディスプレイ装置である。
110は実行プログラムファイル101中の実行プログラム実行においてデータベースが必要な場合に使用する実行プログラム用データベースであり、データベースが必要でない場合には不要である。
【0014】
図2(a)は、変数値格納用テーブル105に保存されるデータの構造例を示す図である。
図2(a)において、201の行はステップ位置を表わす数値を表わしている。ここで、ステップ位置とは、実行プログラムの実行を一時停止させる位置のことである。ステップ位置を表わす数値は、実行プログラムを始動してからカウントが開始され、実行プログラムの実行を一時停止するごとに、1ずつ増加される数値である。また、実行プログラムが一時停止される箇所は、ソースコード内で本システム制御用コマンドが記述された箇所である。
202の変数名とは、実行プログラムのソースコード内で使用されている変数のうち、変数値の監視を指示された変数の名前であり、202が示す箇所より下のセルにその変数名(index,amount,dayなど)が格納される。格納される順序は、ソースコード内でその変数の初出箇所が早い順である。
203はステップ位置の順に変数の値が格納されるエリアであり、あるステップ位置で存在しない変数の場合、例えばステップ1の変数dayの場合は符合204で示すようにNULLになる。
【0015】
図2(b)は、ソースコードの説明文などメッセージ表示エリア305(図3)に表示する文字列を格納する表示情報リソースファイルの構造例を示す図である。
図2(b)において、206はソースコードの説明文などを識別するためのキーである。
207は実際にメッセージ表示エリア305(図3)に表示される文字列である。
説明文のキー206とそれに対応する説明文の文字列207とで、「キー=表示文字列」という形式で記述しておく。
【0016】
図2(c)は、本システムの制御用コマンドを実行プログラムのソースコードに記述した例を示す図である。
図2(c)において、208は変数値の表示を行いたい変数を指定するコマンドである。本コマンドによるシステム動作例は図7で詳しく述べる。
209は本システムの制御用コマンドのラインコマンドの例である。本コマンドによるシステム動作例は図5で詳しく述べる。
210および211は本システムの制御用コマンドのブロックコマンドの例である。ソースコードのある部分を、対になる開始コマンド210と終了コマンド211で囲むことによって使用する。本コマンドによるシステム動作例は図6で詳しく述べる。
【0017】
図3はディスプレイ装置109の画面例を示す図である。
図3において、301は本システムの表示画面の枠である。
302は実行中のプログラムに関連する情報を表示する枠である。
303は実行中のプログラムのソースコードのファイル名である。
304はソースコードのファイル名303に表示したソースコードの内容を表示するソースコード表示エリアであり、そのデータは、ソースコードファイル102の内容である。
【0018】
305はソースコード表示エリア304に表示されたソースコードに対応する説明文等のソースコードに関連する情報を表示するメッセージ表示エリアであり、そのデータは表示情報リソースファイル103に記述されている内容である。306はソースコードで使用されている変数値のうち、ソースコード内で指定のあった変数の値を時系列に表示する変数値表示エリアであり、そのデータは変数値格納用テーブル105に格納されている情報である。
307は一時停止していた実行プログラムの処理を再開し、次のステップ位置で処理を一時停止する命令を行うユーザー・インタフェースであり、このボタンを押すことによって情報の表示枠302またはメッセージ表示エリア305または変数値表示エリア306に表示される情報が次のステップ位置までの情報に更新される。
308は処理を終了させるためのボタンである。
【0019】
図4は、本実施形態の処理の概要を示すフローチャートである。
以下、本フローチャートに従い、本実施形態の概要について説明する。
まず、プログラム実行部107は、ステップ401において、ソースコードを表示したい対象となるプログラム(実行プログラムファイル101中の実行プログラム)の実行を開始する。
次に、ステップ402において、ソースコード中に情報表示制御用コマンドが記述されている限り、以下に示すステップ403からステップ407までの処理を繰り返し実行する。
【0020】
まず、ステップ403において、次の情報表示制御用コマンドまでプログラムの処理を実行する。
次に、プログラム実行部107は、ステップ404において情報表示制御用コマンドの識別を行い、次にステップ405において情報表示制御用コマンドライブラリ104から識別した情報表示制御用コマンドの呼び出しを行い、コマンドに対応する適切な処理内容の情報を取得し、それを表示情報制御部108へ転送する。
ここで、転送される情報には、生成する表示情報の種別とともに表示するリソースを指示する情報等が含まれている。また、プログラム実行部107は、ここで実行中のプログラムを一時停止する。
【0021】
ステップ406において、表示情報制御部108は転送された情報をもとに表示する情報の種別、表示するリソースを判別して、表示情報の生成を行う。表示情報の生成についての詳細は、図5、図6、図7に後述する。
次に、ステップ407において、ステップ406において生成された表示情報をディスプレイ装置109に表示する。表示の後、次のステップ位置へ処理を進めるボタン307が、本システムの利用者によって押されると、次の処理へ進む。
最後に、ステップ408において、対象プログラムが終了するまで実行する。
【0022】
図5は、図4のステップ406の表示情報の生成に対し、ソースコード中のある1行に対する説明文を表示するラインコマンド209に対する処理の流れを示すフローチャートである。
以下、本フローチャートに従い、ラインコマンドに対する処理の詳細を説明する。
まず、ステップ501において、プログラム実行部107は実行中のプログラムのプログラム名および実行中の行番号およびコマンドの引数情報を表示情報制御用コマンドとともに表示情報制御部108に転送する。ここで、コマンドの引数情報とは、表示する説明文を表示情報リソースファイル103から検索するキー等を含むものである。
表示情報制御部108はソースコードファイル102より、送られた実行中のファイル名と同名のファイルを取得する。
【0023】
次に、ステップ502において、表示情報制御部108はステップ501にて取得したソースコードファイルから、プログラム実行部107から送信された行番号の前後数行(例えば10行)のソースコードを文字列として取得する。
次に、ステップ503において、表示情報制御部108はステップ501にて取得した本コマンドの引数情報をもとに表示情報リソースファイル103から該当するソースコード説明文を取得する。
次に、ステップ504において、表示情報制御部108はステップ501にて取得したソースコードのファイル名を図3の303のようにディスプレイ装置109に表示する。
次に、ステップ505において、表示情報制御部108はステップ502にて取得したソースコードの一部またはソースコード全てを、ソースコード表示エリア304に表示する。
最後に、ステップ506において、表示情報制御部108はステップ503にて取得したソースコード説明文を、メッセージ表示エリア305に表示する。
【0024】
図6は、図4のステップ406の表示情報の生成に対し、実行プログラムの実行中にデータベース110へアクセスするデータベース処理の前後をブロックコマンド210および211で囲むことによって、そのデータベース処理の前後におけるデータベース情報を取得するブロックコマンドに対する処理の流れを示すフローチャートである。
以下、本フローチャートに従い、ブロックコマンドに対する処理の詳細を説明する。
まず、ステップ601において、ブロックコマンドの開始用コマンド210の箇所を処理する時点で、プログラム実行部107はデータベース処理前の情報をデータベース110から取得する。
次に、ステップ602において、ブロックコマンドの開始用コマンド210と終了用コマンド211で囲まれた箇所に記述されているデータベース処理等を実行する。
【0025】
次に、ステップ603において、ステップ602によるデータベース処理後の情報をデータベース110から取得する。
次に、ステップ604において、ステップ601とステップ603で取得したデータベース処理前後の情報を、ソースコードに関連する情報としてメッセージエリア305に表示するために、表示情報制御部108にこれら情報の表示処理をするように指示する。また、同時にステップ501と同様の手順にて、ソースコードの情報を取得する。
最後に、ステップ605において、ステップ504およびステップ505における手順と同様にして、ソースコードのファイル名およびソースコードを、ソースコードファイル名欄303およびソースコード表示エリア304にそれぞれ表示する。
【0026】
図7は、実行プログラムの一時中断時に、変数値表示エリア306に指定された変数の値を時系列に表示する処理の流れを示すフローチャートである。
以下、本フローチャートに従い、変数値表示処理の詳細を説明する。
まず、ステップ701において、変数宣言時に変数指定コマンド208によって、変数の監視を指定しているかどうかチェックする。もし、変数の監視の指定が行われていれば、ステップ702を実行する。
ステップ702において、プログラム実行部107は表示情報制御部108に変数を変数値格納用テーブル105に格納するように指示する。表示情報制御部108は渡された変数を変数値格納用テーブル105に格納する。
ステップ703において、実行プログラムが本システムの他の制御用コマンドによって一時中断するたびに、ステップ704からステップ706の処理を実行する。
ステップ704において、プログラム実行部107は変数が変数値格納用テーブル105に登録されているかどうかチェックする。登録されている場合は、ステップ705を実行する。
【0027】
ステップ705において、変数の値を変数値格納用テーブル105に格納することを、プログラム実行部107が表示情報制御部108に指示し、それを表示情報制御部108が実行する。
ステップ706において、表示情報制御部108は変数値格納用テーブル105の内容を変数値表示エリア306に表示する。
ステップ707において、プログラム実行時に変数が消滅される。
ステップ708において、消滅された変数を変数値格納用テーブル105から削除するように、プログラム実行部107が表示情報制御部108に指示し、それを表示情報制御部108が実行する。
【0028】
以上のように本実施形態によれば、学習対象となる実行プログラムを実行した際に、その動作を実現するために利用されているプログラムのソースコードおよびその一部、またはそのソースコードに関連する情報を、実行手順に沿って容易に閲覧することが可能となる。
従って、例えば、本機能を実現するプログラム(プログラム実行部107と表示情報制御部108)および関連するテーブル105やライブラリ104と、サンプルプログラム(ソースコードを学習するプログラム)をCD−ROM等の媒体に格納して配布、またはネットワーク経由で有償で配布し、ユーザが所有するコンピュータ上で両プログラムを実行することにより、サンプルプログラムの機能を動かしながら、その実装方法の修得、理解を容易、かつ効率的に支援することが可能になる。
【0029】
なお、本機能を実現するプログラム(プログラム実行部107と表示情報制御部108)および関連するテーブル105やライブラリ104が既に存在する環境であれば、実行プログラムファイル101およびそのソースコードファイル102、表示情報リソースファイル103のみをCD−ROM等でユーザに提供し、実行プログラムの学習を支援することができる。
【0030】
【発明の効果】
以上の説明から明らかなように、本発明によれば、ソースコードあるいはソースコードに関連する情報をプログラムの実行時に連動して表示し、実行プログラムの意味等の学習を支援することができる。
【図面の簡単な説明】
【図1】本発明に係るソースコード表示システムの実施の形態を示すシステム構成図である。
【図2】変数値格納用テーブルのデータ構造、表示情報リソースファイルのデータ例、ソースコードの実装例を示す図である。
【図3】ソースコードおよび関連情報の表示画面の例を示す図である。
【図4】実施形態における処理の概要を示すフローチャートである。
【図5】ラインコマンドに対する処理の詳細を示すフローチャートである。
【図6】ブロックコマンドに対する処理の詳細を示すフローチャートである。
【図7】変数値を表示する処理のフローチャートである。
【符号の説明】
101…実行プログラムファイル、102…ソースコードファイル、103…表示情報リソースファイル、104…情報表示制御用コマンドライブラリ、105…変数値格納用テーブル、106…演算制御部、107…プログラム実行部、108…表示情報制御部、109…ディスプレイ装置、208…変数指定コマンド、209…ラインコマンド、210…ブロック開始コマンド、211…ブロック終了コマンド。
【発明の属する技術分野】
本発明は、プログラムのソースコード表示システムに関し、特にプログラムを実行しながらソースコードまたは関連情報を表示するソースコード表示システムに関するものである。
【0002】
【従来の技術】
コンピュータのプログラミングの学習時などにおいては、プログラムのサンプルコードを表示し、実際にそれを動かしてみて理解を深める、というのが一般的である。また、コンパイルや実行の指示をコマンドラインから行うのではなくて、グラフィカル・ユーザー・インタフェースで行うことができ、学習者の手助けとなるツールは存在する。
【0003】
一方、プログラムを実行させながら、その実行状態を表示する機能を持つシステムとしては、デバッガが一般的に使われている。これは、開発者が作成したプログラムコードにバグがないかを検証するために使われるツールである(例えば、特許文献1参照)。その使用形態としては、ソースコードを表示した上で、操作者がそのコード中のどのポイントでどのような情報を表示するのか指定することによって、そのソースコードを実行しながらその動的な情報(変数の値の変化など)を表示して、プログラムコードの健全性をチェックしている(例えば、特許文献2参照)。
【0004】
【特許文献1】
特開平10−207740号
【0005】
【特許文献2】
特開2002−196950号
【0006】
【発明が解決しようとする課題】
実行中のプログラムの記述を理解する場合、そのソースコードを解読し、ある処理とそれに対応するソースコードを自ら適切に把握し、ソースコードをたどっていく作業の必要が生じる。また、その処理が複数のプログラムからなる処理の場合は、複数のソースコード間で的確に処理手順を追っていくことになる。
そこで、プログラミングの学習時において、サンプルプログラム提供者がソースコードに関連するさまざまな情報をプログラムの実行に連動して伝達することが可能な手段またはツールが存在すれば、サンプルプログラムの学習者はそのソースコードの意味や関連情報を容易に理解することが可能となる。
これに対し、上記特許文献1,2で開示されたデバッガを用いることが考えられるが、デバッガによりブレークポイントを指定して実行状態の情報を取得する場合には、前提条件として、操作者がブレークポイントの適切な指定位置の情報を予め把握している必要がある。
すなわち、あるプログラムの詳細を理解するためには、プログラムの実行を実現しているソースコードおよびその記述箇所を正確に把握しておく必要があり、初心者等においては利用できないという問題がある。
【0007】
本発明は、実行プログラムのソースコードあるいはソースコードに関連する情報を、実行プログラムの実行時に連動して表示し、実行プログラムの意味等の学習を支援することができるソースコード表示システム及びプログラムを提供することを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ソースコード表示対象の実行プログラムの実行状態で、当該実行プログラム内に表示制御コマンドが記述されているか否かを判定し、記述されていたならば、当該実行プログラムの実行を一時停止し、停止状態において、記述された表示制御コマンドを識別し、識別した表示制御コマンドに応じて、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルまたは関連情報ファイルから取得する情報取得手段と、取得したソースコードまたは関連情報の一部または全部を表示する表示手段とを備えることを特徴とする。
そして、前記情報取得手段は、実行プログラム内でソースコードまたは関連情報を表示したい箇所に記述された1行の表示制御コマンドを識別し、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルまたは関連情報ファイルから取得することを特徴とする。
また、前記情報取得手段は、実行プログラム内でソースコードまたは関連情報を表示したい範囲の開始位置と終了位置に記述された表示制御コマンドを識別し、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルおよび関連情報ファイルから取得することを特徴とする。
また、前記情報取得手段は、実行プログラムのソースコードに記述している変数の値をさらに取得し、前記表示手段に表示させることを特徴とする。
【0009】
本発明に係るソースコード表示プログラムは、ソースコード表示対象の実行プログラムの実行状態で、当該実行プログラム内に表示制御コマンドが記述されているか否かを判定し、記述されていたならば、当該実行プログラムの実行を一時停止し、停止状態において、記述された表示制御コマンドを識別し、識別した表示制御コマンドに応じて、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルまたは関連情報ファイルから取得するステップと、取得したソースコードまたは関連情報の一部または全部を表示するステップとを備えることを特徴とする。
このような構成によって、プログラムを実行しながら、それを実行するために必要とされるソースコードまたはソースコードの一部、ソースコードに関連する情報、ソースコードで利用されている変数の値の表示が可能となる。
また、それら各情報の表示によって、プログラムの実行に関する情報を容易に取得することが可能となる。
【0010】
【発明の実施の形態】
以下、図面と共に本発明の実施の形態を詳細に説明する。
図1は、本発明に係るソースコード表示システムの実施に形態を示すシステム構成図である。
図1において、101は本システムを稼動する際に、ソースコードおよびそれに関連する情報を表示する対象となる実行プログラムのファイルである。
102は実行プログラムファイル101中の実行プログラムを作成するために使用したソースコードのファイルであり、本システムから参照できる場所に存在する。
103はソースコードファイル102中のソースコードの説明文等、ソースコードに関連する表示情報を記述した表示情報リソースファイルである。
104は実行プログラムファイル101中の実行プログラムに埋め込まれた本システム用コマンドの処理を行う機能情報を保持している情報表示制御用コマンドライブラリである。
105はソースコードファイル102中のソースコードで使用されている変数の値を時系列に格納しておく変数値格納用テーブルである。
106は本システムの演算処理部であり、プログラム実行部107と表示情報制御部108とからなる。
【0011】
プログラム実行部107は、実行プログラムファイル101中の実行プログラムを実行するプログラム実行機能、実行過程において本システム用コマンド(後述する)が出現した場合は情報表示制御用コマンドライブラリ104からそのコマンドを呼び出す情報表示制御用コマンド呼び出し機能、実行プログラムファイル101中の実行プログラムの実行状態の表示を表示情報制御部108に依頼する機能、情報表示制御用コマンドライブラリ104から返ってきた処理内容を表示情報制御部108に転送する表示情報生成処理依頼機能を備えている。
【0012】
表示情報制御部108は、プログラム実行部107から送信された処理命令をもとに、ソースコードファイル102の内容(ソースコード)または表示情報リソースファイル103内のメッセージリソースまたは変数値格納用テーブル105にある変数の情報から表示情報を生成する機能、生成した情報の表示を出力機器(ディスプレイなど)に指示する機能、実行プログラムファイル101の実行プログラムの実行状態の表示を出力機器(ディスプレイなど)に指示する機能を備えている。
【0013】
109は表示情報制御部108から送信された表示情報を表示する機能を持つディスプレイ装置である。
110は実行プログラムファイル101中の実行プログラム実行においてデータベースが必要な場合に使用する実行プログラム用データベースであり、データベースが必要でない場合には不要である。
【0014】
図2(a)は、変数値格納用テーブル105に保存されるデータの構造例を示す図である。
図2(a)において、201の行はステップ位置を表わす数値を表わしている。ここで、ステップ位置とは、実行プログラムの実行を一時停止させる位置のことである。ステップ位置を表わす数値は、実行プログラムを始動してからカウントが開始され、実行プログラムの実行を一時停止するごとに、1ずつ増加される数値である。また、実行プログラムが一時停止される箇所は、ソースコード内で本システム制御用コマンドが記述された箇所である。
202の変数名とは、実行プログラムのソースコード内で使用されている変数のうち、変数値の監視を指示された変数の名前であり、202が示す箇所より下のセルにその変数名(index,amount,dayなど)が格納される。格納される順序は、ソースコード内でその変数の初出箇所が早い順である。
203はステップ位置の順に変数の値が格納されるエリアであり、あるステップ位置で存在しない変数の場合、例えばステップ1の変数dayの場合は符合204で示すようにNULLになる。
【0015】
図2(b)は、ソースコードの説明文などメッセージ表示エリア305(図3)に表示する文字列を格納する表示情報リソースファイルの構造例を示す図である。
図2(b)において、206はソースコードの説明文などを識別するためのキーである。
207は実際にメッセージ表示エリア305(図3)に表示される文字列である。
説明文のキー206とそれに対応する説明文の文字列207とで、「キー=表示文字列」という形式で記述しておく。
【0016】
図2(c)は、本システムの制御用コマンドを実行プログラムのソースコードに記述した例を示す図である。
図2(c)において、208は変数値の表示を行いたい変数を指定するコマンドである。本コマンドによるシステム動作例は図7で詳しく述べる。
209は本システムの制御用コマンドのラインコマンドの例である。本コマンドによるシステム動作例は図5で詳しく述べる。
210および211は本システムの制御用コマンドのブロックコマンドの例である。ソースコードのある部分を、対になる開始コマンド210と終了コマンド211で囲むことによって使用する。本コマンドによるシステム動作例は図6で詳しく述べる。
【0017】
図3はディスプレイ装置109の画面例を示す図である。
図3において、301は本システムの表示画面の枠である。
302は実行中のプログラムに関連する情報を表示する枠である。
303は実行中のプログラムのソースコードのファイル名である。
304はソースコードのファイル名303に表示したソースコードの内容を表示するソースコード表示エリアであり、そのデータは、ソースコードファイル102の内容である。
【0018】
305はソースコード表示エリア304に表示されたソースコードに対応する説明文等のソースコードに関連する情報を表示するメッセージ表示エリアであり、そのデータは表示情報リソースファイル103に記述されている内容である。306はソースコードで使用されている変数値のうち、ソースコード内で指定のあった変数の値を時系列に表示する変数値表示エリアであり、そのデータは変数値格納用テーブル105に格納されている情報である。
307は一時停止していた実行プログラムの処理を再開し、次のステップ位置で処理を一時停止する命令を行うユーザー・インタフェースであり、このボタンを押すことによって情報の表示枠302またはメッセージ表示エリア305または変数値表示エリア306に表示される情報が次のステップ位置までの情報に更新される。
308は処理を終了させるためのボタンである。
【0019】
図4は、本実施形態の処理の概要を示すフローチャートである。
以下、本フローチャートに従い、本実施形態の概要について説明する。
まず、プログラム実行部107は、ステップ401において、ソースコードを表示したい対象となるプログラム(実行プログラムファイル101中の実行プログラム)の実行を開始する。
次に、ステップ402において、ソースコード中に情報表示制御用コマンドが記述されている限り、以下に示すステップ403からステップ407までの処理を繰り返し実行する。
【0020】
まず、ステップ403において、次の情報表示制御用コマンドまでプログラムの処理を実行する。
次に、プログラム実行部107は、ステップ404において情報表示制御用コマンドの識別を行い、次にステップ405において情報表示制御用コマンドライブラリ104から識別した情報表示制御用コマンドの呼び出しを行い、コマンドに対応する適切な処理内容の情報を取得し、それを表示情報制御部108へ転送する。
ここで、転送される情報には、生成する表示情報の種別とともに表示するリソースを指示する情報等が含まれている。また、プログラム実行部107は、ここで実行中のプログラムを一時停止する。
【0021】
ステップ406において、表示情報制御部108は転送された情報をもとに表示する情報の種別、表示するリソースを判別して、表示情報の生成を行う。表示情報の生成についての詳細は、図5、図6、図7に後述する。
次に、ステップ407において、ステップ406において生成された表示情報をディスプレイ装置109に表示する。表示の後、次のステップ位置へ処理を進めるボタン307が、本システムの利用者によって押されると、次の処理へ進む。
最後に、ステップ408において、対象プログラムが終了するまで実行する。
【0022】
図5は、図4のステップ406の表示情報の生成に対し、ソースコード中のある1行に対する説明文を表示するラインコマンド209に対する処理の流れを示すフローチャートである。
以下、本フローチャートに従い、ラインコマンドに対する処理の詳細を説明する。
まず、ステップ501において、プログラム実行部107は実行中のプログラムのプログラム名および実行中の行番号およびコマンドの引数情報を表示情報制御用コマンドとともに表示情報制御部108に転送する。ここで、コマンドの引数情報とは、表示する説明文を表示情報リソースファイル103から検索するキー等を含むものである。
表示情報制御部108はソースコードファイル102より、送られた実行中のファイル名と同名のファイルを取得する。
【0023】
次に、ステップ502において、表示情報制御部108はステップ501にて取得したソースコードファイルから、プログラム実行部107から送信された行番号の前後数行(例えば10行)のソースコードを文字列として取得する。
次に、ステップ503において、表示情報制御部108はステップ501にて取得した本コマンドの引数情報をもとに表示情報リソースファイル103から該当するソースコード説明文を取得する。
次に、ステップ504において、表示情報制御部108はステップ501にて取得したソースコードのファイル名を図3の303のようにディスプレイ装置109に表示する。
次に、ステップ505において、表示情報制御部108はステップ502にて取得したソースコードの一部またはソースコード全てを、ソースコード表示エリア304に表示する。
最後に、ステップ506において、表示情報制御部108はステップ503にて取得したソースコード説明文を、メッセージ表示エリア305に表示する。
【0024】
図6は、図4のステップ406の表示情報の生成に対し、実行プログラムの実行中にデータベース110へアクセスするデータベース処理の前後をブロックコマンド210および211で囲むことによって、そのデータベース処理の前後におけるデータベース情報を取得するブロックコマンドに対する処理の流れを示すフローチャートである。
以下、本フローチャートに従い、ブロックコマンドに対する処理の詳細を説明する。
まず、ステップ601において、ブロックコマンドの開始用コマンド210の箇所を処理する時点で、プログラム実行部107はデータベース処理前の情報をデータベース110から取得する。
次に、ステップ602において、ブロックコマンドの開始用コマンド210と終了用コマンド211で囲まれた箇所に記述されているデータベース処理等を実行する。
【0025】
次に、ステップ603において、ステップ602によるデータベース処理後の情報をデータベース110から取得する。
次に、ステップ604において、ステップ601とステップ603で取得したデータベース処理前後の情報を、ソースコードに関連する情報としてメッセージエリア305に表示するために、表示情報制御部108にこれら情報の表示処理をするように指示する。また、同時にステップ501と同様の手順にて、ソースコードの情報を取得する。
最後に、ステップ605において、ステップ504およびステップ505における手順と同様にして、ソースコードのファイル名およびソースコードを、ソースコードファイル名欄303およびソースコード表示エリア304にそれぞれ表示する。
【0026】
図7は、実行プログラムの一時中断時に、変数値表示エリア306に指定された変数の値を時系列に表示する処理の流れを示すフローチャートである。
以下、本フローチャートに従い、変数値表示処理の詳細を説明する。
まず、ステップ701において、変数宣言時に変数指定コマンド208によって、変数の監視を指定しているかどうかチェックする。もし、変数の監視の指定が行われていれば、ステップ702を実行する。
ステップ702において、プログラム実行部107は表示情報制御部108に変数を変数値格納用テーブル105に格納するように指示する。表示情報制御部108は渡された変数を変数値格納用テーブル105に格納する。
ステップ703において、実行プログラムが本システムの他の制御用コマンドによって一時中断するたびに、ステップ704からステップ706の処理を実行する。
ステップ704において、プログラム実行部107は変数が変数値格納用テーブル105に登録されているかどうかチェックする。登録されている場合は、ステップ705を実行する。
【0027】
ステップ705において、変数の値を変数値格納用テーブル105に格納することを、プログラム実行部107が表示情報制御部108に指示し、それを表示情報制御部108が実行する。
ステップ706において、表示情報制御部108は変数値格納用テーブル105の内容を変数値表示エリア306に表示する。
ステップ707において、プログラム実行時に変数が消滅される。
ステップ708において、消滅された変数を変数値格納用テーブル105から削除するように、プログラム実行部107が表示情報制御部108に指示し、それを表示情報制御部108が実行する。
【0028】
以上のように本実施形態によれば、学習対象となる実行プログラムを実行した際に、その動作を実現するために利用されているプログラムのソースコードおよびその一部、またはそのソースコードに関連する情報を、実行手順に沿って容易に閲覧することが可能となる。
従って、例えば、本機能を実現するプログラム(プログラム実行部107と表示情報制御部108)および関連するテーブル105やライブラリ104と、サンプルプログラム(ソースコードを学習するプログラム)をCD−ROM等の媒体に格納して配布、またはネットワーク経由で有償で配布し、ユーザが所有するコンピュータ上で両プログラムを実行することにより、サンプルプログラムの機能を動かしながら、その実装方法の修得、理解を容易、かつ効率的に支援することが可能になる。
【0029】
なお、本機能を実現するプログラム(プログラム実行部107と表示情報制御部108)および関連するテーブル105やライブラリ104が既に存在する環境であれば、実行プログラムファイル101およびそのソースコードファイル102、表示情報リソースファイル103のみをCD−ROM等でユーザに提供し、実行プログラムの学習を支援することができる。
【0030】
【発明の効果】
以上の説明から明らかなように、本発明によれば、ソースコードあるいはソースコードに関連する情報をプログラムの実行時に連動して表示し、実行プログラムの意味等の学習を支援することができる。
【図面の簡単な説明】
【図1】本発明に係るソースコード表示システムの実施の形態を示すシステム構成図である。
【図2】変数値格納用テーブルのデータ構造、表示情報リソースファイルのデータ例、ソースコードの実装例を示す図である。
【図3】ソースコードおよび関連情報の表示画面の例を示す図である。
【図4】実施形態における処理の概要を示すフローチャートである。
【図5】ラインコマンドに対する処理の詳細を示すフローチャートである。
【図6】ブロックコマンドに対する処理の詳細を示すフローチャートである。
【図7】変数値を表示する処理のフローチャートである。
【符号の説明】
101…実行プログラムファイル、102…ソースコードファイル、103…表示情報リソースファイル、104…情報表示制御用コマンドライブラリ、105…変数値格納用テーブル、106…演算制御部、107…プログラム実行部、108…表示情報制御部、109…ディスプレイ装置、208…変数指定コマンド、209…ラインコマンド、210…ブロック開始コマンド、211…ブロック終了コマンド。
Claims (5)
- 実行プログラムのソースコードを表示するソースコード表示システムであって、
ソースコード表示対象の実行プログラムの実行状態で、当該実行プログラム内に表示制御コマンドが記述されているか否かを判定し、当該コマンドが記述されていたならば、当該実行プログラムの実行を一時停止し、停止状態において、記述された表示制御コマンドを識別し、識別した表示制御コマンドに応じて、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルまたは関連情報ファイルから取得する情報取得手段と、
取得したソースコードまたは関連情報の一部または全部を表示する表示手段とを備えることを特徴とするソースコード表示システム。 - 前記情報取得手段は、実行プログラム内でソースコードまたは関連情報を表示したい箇所に記述された1行の表示制御コマンドを識別し、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルまたは関連情報ファイルから取得することを特徴とする請求項1に記載のソースコード表示システム。
- 前記情報取得手段は、実行プログラム内でソースコードまたは関連情報を表示したい範囲の開始位置と終了位置に記述された表示制御コマンドを識別し、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルおよび関連情報ファイルから取得することを特徴とする請求項1に記載のソースコード表示システム。
- 前記情報取得手段は、実行プログラムのソースコードに記述している変数の値をさらに取得し、前記表示手段に表示させることを特徴とする請求項1または2に記載のソースコード表示システム。
- 実行プログラムのソースコードを表示するソースコード表示プログラムであって、
ソースコード表示対象の実行プログラムの実行状態で、当該実行プログラム内に表示制御コマンドが記述されているか否かを判定し、記述されていたならば、当該実行プログラムの実行を一時停止し、停止状態において、記述された表示制御コマンドを識別し、識別した表示制御コマンドに応じて、対応する当該実行プログラムのソースコードまたは関連情報をソースコードファイルまたは関連情報ファイルから取得するステップと、
取得したソースコードまたは関連情報の一部または全部を表示するステップとを備えることを特徴とするコンピュータが実行可能なソースコード表示プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002302814A JP2004139313A (ja) | 2002-10-17 | 2002-10-17 | ソースコード表示システム及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002302814A JP2004139313A (ja) | 2002-10-17 | 2002-10-17 | ソースコード表示システム及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004139313A true JP2004139313A (ja) | 2004-05-13 |
Family
ID=32450775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002302814A Pending JP2004139313A (ja) | 2002-10-17 | 2002-10-17 | ソースコード表示システム及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004139313A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006350676A (ja) * | 2005-06-16 | 2006-12-28 | Hitachi Software Eng Co Ltd | 組込みシステムのプログラムデバッグ方法 |
JP2007004516A (ja) * | 2005-06-24 | 2007-01-11 | Hitachi Software Eng Co Ltd | 組込みシステムのプログラムデバッグ方法 |
CN1315041C (zh) * | 2004-12-29 | 2007-05-09 | 华为技术有限公司 | 一种提高程序运行信息可理解性的实现方法及*** |
-
2002
- 2002-10-17 JP JP2002302814A patent/JP2004139313A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1315041C (zh) * | 2004-12-29 | 2007-05-09 | 华为技术有限公司 | 一种提高程序运行信息可理解性的实现方法及*** |
JP2006350676A (ja) * | 2005-06-16 | 2006-12-28 | Hitachi Software Eng Co Ltd | 組込みシステムのプログラムデバッグ方法 |
JP2007004516A (ja) * | 2005-06-24 | 2007-01-11 | Hitachi Software Eng Co Ltd | 組込みシステムのプログラムデバッグ方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6175206B1 (en) | Robot information processor | |
US5317688A (en) | Software agent used to provide instruction to a user for a plurality of computer applications | |
CN105683908A (zh) | 知晓上下文的用户界面部分 | |
US7426717B1 (en) | System and method for debugging files in a runtime environment | |
CN109783081A (zh) | 一种应用程序的开发方法、装置及集成开发工具 | |
KR20070061535A (ko) | 그래픽 사용자 인터페이스를 갖는 컴퓨터 프로그램과상호작용하도록 개인을 교육하는 시스템 및 방법 | |
JP4877068B2 (ja) | ソフトウェア開発支援プログラム、ソフトウェア開発支援方法 | |
JP2004139313A (ja) | ソースコード表示システム及びプログラム | |
CN101340311B (zh) | 显示控制设备、显示控制程序和显示控制方法 | |
JP4889593B2 (ja) | 構成管理システム | |
JPH07219807A (ja) | プログラマブルコントローラシステム | |
EP0352908A2 (en) | Computing system and method used to provide instruction to a user for a plurality of computer applications | |
CN114327416A (zh) | 应用于开发分支的接口同步方法、装置及电子设备 | |
JP2007004516A (ja) | 組込みシステムのプログラムデバッグ方法 | |
JP2012523640A (ja) | 複合システムの開発または使用を支援するための方法 | |
JPH02275539A (ja) | デバッグ処理方式 | |
JP2004287869A (ja) | プログラム実行監視装置および方法 | |
JP2012133775A (ja) | タスクスクリプトのデバッギング方法及び遠隔デバッギング方法 | |
CN114398290B (zh) | 一种程序调试方法、装置、设备及介质 | |
JP4590907B2 (ja) | ソフトウェア開発支援装置及びソフトウェア開発支援プログラム | |
JPH08263130A (ja) | シミュレーション方式 | |
JP2006350676A (ja) | 組込みシステムのプログラムデバッグ方法 | |
JPH1153219A (ja) | ソフトウェア検証装置 | |
JPH0950388A (ja) | データベースアプリケーションソフトウェア検証装置 | |
JPH10214204A (ja) | デバッガー |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070502 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070702 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070725 |