(57)【要約】【課題】ソースプログラムに対して挿入位置を指定しなくても正しい位置に所望するソースコードを挿入できるようにする。【解決手段】ソースプログラムと同一の言語で記述され、当該言語に対して予め用意された関数の引数となり得るソースコードを予め記憶しておく。そして、ソースプログラムを開発する工程で当該ソースプログラムに存在する関数を取得する。この取得した関数群の中からソースコードを引数とする関数が指定されると、その関数をソースプログラムから抽出し、この関数に対する引数として予め記憶されたソースコードを当該ソースプログラムに挿入する。【選択図】    図７
2005018458.tif 000002
【特許請求の範囲】
【請求項１】
所定のプログラミング言語によって記述されるソースプログラムと同一の言語で記述され、当該プログラミング言語に対して予め用意された関数の引数となり得るソースコードを記憶するコード記憶手段と、
このコード記憶手段に記憶されたソースコードを利用してプログラミングを行なうソースプログラムを選択させるプログラム選択手段と、
このプログラム選択手段により選択されたソースプログラムに存在する関数を取得する関数取得手段と、
この関数取得手段により取得した関数群の中から前記ソースコードを引数とする関数を指定させる関数指定手段と、
この関数指定手段により指定された関数を前記ソースプログラムから抽出し、この関数に対する引数として前記コード記憶手段により記憶されたソースコードを前記ソースプログラムに挿入するコード挿入手段と、
を具備したことを特徴とするプログラミング支援装置。
【請求項２】
前記コード挿入手段は、前記関数指定手段により関数が指定される毎にその関数を前記ソースコードの識別名とともに蓄積する蓄積手段と、挿入指示手段と、この挿入指示手段により前記ソースコードの挿入が指示されると、蓄積された識別名によって識別されるソースコードを前記コード記憶手段から順次読出すとともに、その識別名に対応する関数を前記ソースプログラムから抽出し、この関数に対する引数として前記コード記憶手段から読み出したソースコードを前記ソースプログラムに挿入する手段とからなることを特徴とする請求項１記載のプログラミング支援装置。
【請求項３】
前記コード挿入手段は、前記蓄積手段により蓄積される関数と識別名の蓄積順序を変更する蓄積順序変更手段をさらに具備したことを特徴とする請求項２記載のプログラミング支援装置。
【請求項４】
所定のプログラミング言語によって記述されるソースプログラムの開発を支援する方法であって、
前記ソースプログラムと同一の言語で記述され、当該プログラミング言語に対して予め用意された関数の引数となり得るソースコードを予め記憶しておき、
前記ソースコードを利用してプログラミングを行なうソースプログラムを選択させるプログラム選択工程と、
選択されたソースプログラムに存在する関数を取得する関数取得工程と、
この関数取得工程で取得した関数群の中から前記ソースコードを引数とする関数を指定させる関数指定工程と、
この関数指定工程で指定された関数を前記ソースプログラムから抽出し、この関数に対する引数として予め記憶された前記ソースコードを当該ソースプログラムに挿入するコード挿入工程と、
を実行することを特徴とするプログラミング支援方法。
【請求項５】
所定のプログラミング言語によって記述されるソースプログラムを開発するコンピュータに、
前記ソースプログラムと同一の言語で記述され、当該プログラミング言語に対して予め用意された関数の引数となり得るソースコードを記憶する機能と、
前記ソースコードを利用してプログラミングを行なうソースプログラムを選択させる機能と、
選択されたソースプログラムに存在する関数を取得する機能と、
取得した関数群の中から前記ソースコードを引数とする関数を指定させる機能と、
指定された関数を前記ソースプログラムから抽出し、この関数に対する引数として予め記憶された前記ソースコードを当該ソースプログラムに挿入する機能と、
を実現させることを特徴とするプログラミング支援プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムをコンピュータ上で効率よく開発できるように支援するプログラミング支援装置及び方法並びにプログラミング支援プログラムに関する。
【０００２】
【従来の技術】
プログラミング作業においては、例えば所定の関数に対する引数として、同一内容のソースコードを何度も記述する作業がしばしば発生する。そこで従来、このような手間を無くすプログラミング支援技術として、利用頻度の高いソースコードを抽出して別途記憶しておき、ソースプログラムの開発工程中にこのソースコードを引用して所望のソースプログラムを開発する技術が知られていた。具体的には、開発工程中のソースプログラムにソースコードを挿入する位置を指定すると、記憶部から所定のソースコードが読み出され、指定された位置にこのソースコードが挿入される。このような技術を利用することによって、同一内容のソースコードを何度も記述する手間を無くすことができる。（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特開平１１−３２７８８６号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のこの種のプログラミング支援技術を用いた場合においても、プログラミング作業者は、開発工程中のソースプログラムの記述中から予め記憶しておいたソースコードを挿入する位置を探して指定しなければならなかったので、挿入位置を容易に見つけ出すことができず、かえって効率が悪くなるということがあった。
【０００５】
本発明は、このような事情に基づいてなされたもので、その目的とするところは、関数の引数となり得るソースコードであれば、ソースプログラムに対して挿入位置を指定しなくても正しい位置に所望するソースコードを挿入することができ、プログラミング作業者の負担を軽減しつつプログラムを効率よく開発することができるプログラミング支援装置及び方法並びにプログラミング支援プログラムを提供しようとするものである。
【０００６】
【課題を解決するための手段】
本発明のプログラミング支援装置は、所定のプログラミング言語によって記述されるソースプログラムと同一の言語で記述され、当該プログラミング言語に対して予め用意された関数の引数となり得るソースコードを記憶するコード記憶手段と、このコード記憶手段に記憶されたソースコードを利用してプログラミングを行なうソースプログラムを選択させるプログラム選択手段と、このプログラム選択手段により選択されたソースプログラムに存在する関数を取得する関数取得手段と、この関数取得手段により取得した関数群の中からソースコードを引数とする関数を指定する関数指定手段と、この関数指定手段により指定された関数をソースプログラムから抽出し、この関数に対する引数としてコード記憶手段により記憶されたソースコードをソースプログラムに挿入するコード挿入手段とを備えたものである。
【０００７】
本発明のプログラミング支援方法は、所定のプログラミング言語によって記述されるソースプログラムの開発を支援する方法であって、ソースプログラムと同一の言語で記述され、当該プログラミング言語に対して予め用意された関数の引数となり得るソースコードを予め記憶しておく。そして、ソースコードを利用してプログラミングを行なうソースプログラムを選択させるプログラム選択工程と、選択されたソースプログラムに存在する関数を取得する関数取得工程と、この関数取得工程で取得した関数群の中からソースコードを引数とする関数を指定させる関数指定工程と、この関数指定工程で指定された関数をソースプログラムから抽出し、この関数に対する引数として予め記憶されたソースコードを当該ソースプログラムに挿入するコード挿入工程とを実行するものである。
【０００８】
本発明のプログラミング支援プログラムは、所定のプログラミング言語によって記述されるソースプログラムを開発するコンピュータに、ソースプログラムと同一の言語で記述され、当該プログラミング言語に対して予め用意された関数の引数となり得るソースコードを記憶する機能と、ソースコードを利用してプログラミングを行なうソースプログラムを選択させる機能と、選択されたソースプログラムに存在する関数を取得する機能と、取得した関数群の中からソースコードを引数とする関数を指定させる機能と、指定された関数をソースプログラムから抽出し、この関数に対する引数として予め記憶されたソースコードを当該ソースプログラムに挿入する機能とを実現させるものである。
【０００９】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて説明する。
なお、この実施の形態は、オブジェクト指向プログラミングを実施するコンピュータに本発明のプログラミング支援技術を適用した場合である。因みに、オブジェクト指向プログラミングは、複数のクラスを組み合わせて一つのオブジェクトを開発し、さらに、１つのオブジェクトと他のオブジェクトとを関連付けることによってソースプログラムを開発するプログラミング工程を有するものである。クラスは、引数と呼ばれるデータを受け取り、規則に従った処理を実行して結果を出力するといった手続きの形式である関数をまとめて定義したもので、多くのプログラミング言語では、利用頻度の高い機能が関数として予め用意されている。
【００１０】
図１はオブジェクト指向プログラミングを実施するプログラミング装置の要部構成を示すブロック図であり、図中符号１の二点鎖線で囲った枠内は、プログラミング装置本体を示している。プログラミング装置本体１は、コンピュータによって構成されており、プログラミング基本機能部１１、記憶部１２、入出力インタフェース部１３、通信制御部１４及びプログラミング支援機能部１５が設けられている。
【００１１】
プログラミング基本機能部１１は、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標），Ｖｉｓｕａｌ  Ｃ＃，Ｖｉｓｕａｌ  Ｊ＃等の所定の言語によって記述されるソースプログラムを開発する機能と、開発されたソースプログラムをコンパイルして所期の目的であるプログラムを完成させる機能とを有するものである。プログラミング基本機能部１１は、当該プログラミング装置本体１の中枢を担う中央処理装置（ＣＰＵ）と、オペレーティング・システム（ＯＳ），エディタ，コンパイラ等のプログラムを記憶するメモリ等で構成されている。
【００１２】
記憶部１２は、プログラミング基本機能部１１によって開発されている途中のソースプログラムを格納したプログラムファイル１２１や、プログラミング支援機能部１５によって管理されるコードブロックファイル１２２，編集対象リストファイル１２３等を記憶保存するもので、例えばハードディスクや光磁気ディスク等の不揮発性の記憶媒体で構成されている。
【００１３】
１つのプログラムファイル１２１には１種類のソースプログラムが格納されており、記憶部１２には、開発途中のソースプログラムのプログラムファイル１２１をまとめて保管するプログラムフォルダ１２４が形成されている。
【００１４】
入出力インタフェース部１３は、プログラミング装置本体１に接続された操作部２の操作により入力されるデータ信号をプログラミング基本機能部１１に与える機能と、プログラミング基本機能部１１から与えられる表示データをプログラミング装置本体１に接続された表示部３に出力する機能とを有するものである。操作部２としては、キーボードやポインティングデバイス等が用いられている。表示部３としては、ＣＲＴディスプレイや液晶ディスプレイ等の画面表示器が用いられている。
【００１５】
通信制御部１４は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の通信媒体を介して外部コンピュータ機器との間で行われるデータ通信を制御するものである。
【００１６】
プログラミング支援機能部１５は、ファイル管理機能１５１と、コードブロック登録機能１５２と、コードブロック挿入機能１５３とを有するものである。プログラミング支援機能部１５は、前記ＣＰＵと、プログラミング支援プログラムを格納したメモリ等で構成されている。プログラミング支援プログラムは、通信制御部１４に接続された通信媒体を介して有線または無線により外部コンピュータ機器から当該プログラミング装置本体１のメモリにインストールされる。あるいは、ＣＤ−ＲＯＭ，フレキシブルディスク等のコンピュータ読取り可能な記憶媒体に記憶され、ディスクドライブなどの読取り装置を介してプログラミング装置本体１のメモリにインストールされる。
【００１７】
ファイル管理機能１５１は、コードブロックファイル１２２と編集対象リストファイル１２３を前記記憶部１２に形成し、当該ファイル１２２，１２３へのデータの書込み及び当該ファイル１２２，１２３からのデータの読出しを行なうもので、プログラミング支援プログラムの一機能である。
【００１８】
コードブロックファイル１２２には、図２に示すように、コードブロック名によって特定されるコードブロックデータが、そのコードブロックデータのプログラム言語を識別する言語データ（Ｃ＃等）及びそのコードブロックデータの概要を説明するテキストデータとともに書き込まれる。コードブロックデータは、ソースプログラムに記述されるソースコードのうち再利用性の高いソースコードの集合体であり、特に、予め設定された関数の引数となり得るソースコードの集合体がコードブロックデータとして登録される。コードブロックファイル１２２に登録されたデータは、コンピュータの電源オフ時も消去されることなく保存される。
【００１９】
編集対象リストファイル１２３には、図３に示すように、１からの連続番号である順序データに対応して、前記コードブロックデータを引数として使用する関数の関数名と、そのコードブロック名とが書き込まれる。
【００２０】
コードブロック登録機能１５２は、図４の流れ図に示す手順に従い、任意のコードブロックデータをコードブロック名データ，言語データ及び説明データとともにコードブロックファイル１２２に登録する機能を実現するもので、プログラミング支援プログラムの一機能である。
【００２１】
すなわち、操作部２の操作によりコードブロック登録業務が選択され、その実行が指令されると、プログラミング基本機能部１１は、プログラミング支援機能部１５に対してコードブロック登録業務の開始を指令する。この指令を受けて、プログラミング支援機能部１５は、コードブロック登録機能１５２を動作させて、図４の処理を開始する。
【００２２】
先ず、プログラミング支援機能部１５は、ＳＴ（ステップ）１として例えば図５に示すレイアウトのコードブロック登録ダイアログボックス６を表示部３に表示させる。このダイアログボックス６には、少なくともコードブロック名データの入力エリア６１、説明データの入力エリア６２及びコードブロックデータの入力エリア６３と、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標），Ｖｉｓｕａｌ  Ｃ＃，Ｖｉｓｕａｌ  Ｊ＃及びＡｌｌ  ｌａｎｇｕａｇｅの４種類のプログラミング言語の中からいずれか１種類を選択可能な言語選択エリア６４と、コードブロックデータの登録を指示するＯＫボタン６５及び登録中止を指示するキャンセルボタン６６とが形成されている。そして、プログラミング作業者が操作部２を操作することによって、各入力エリア６１，６２，６３にそれぞれ所望するコードブロック名データ，説明データ，コードブロックデータをテキストデータとして入力できるようになっている。また、言語選択エリア６４のなかからいずれか１種類の言語データを選択できるようになっている。さらに、ＯＫボタン６５及びキャンセルボタン６６を操作できるようになっている。なお、言語選択エリア６４では、デフォルトとして例えばＡｌｌ  ｌａｎｇｕａｇｅが予め選択されている。デフォルトとして選択される言語は、Ａｌｌ  ｌａｎｇｕａｇｅに限定されるものではなく、Ｖｉｓｕａｌ  Ｃ＃，Ｖｉｓｕａｌ  Ｊ＃またはＶｉｓｕａｌ  Ｂａｓｉｃ（登録商標）のいずれかであってもよい。
【００２３】
この状態で、プログラミング支援機能部１５は、ＳＴ２としてキャンセルボタン６６が操作されるか、ＳＴ３としてＯＫボタン６５が操作されるのを待機する。ここで、キャンセルボタン６６が操作されたことを検知した場合には、プログラミング支援機能部１５は、ＳＴ９として表示部３のコードブロック登録ダイアログボックス６を消去して、この処理を終了する。
【００２４】
ＳＴ３にてＯＫボタン６５が操作されたことを検知した場合には、プログラミング支援機能部１５は、ＳＴ４として入力エリア６１にコードブロック名データが入力されていること、ＳＴ５として入力エリア６２に説明データが入力されていること、ＳＴ６として入力エリア６３のコードブロックデータが入力されていること、ＳＴ７として言語選択エリア６４にていずれか１種類のプログラミング言語が選択されていることを確認する。そして、各入力エリア６１，６２，６３にそれぞれ該当するデータが格納されていること及び言語選択エリア６４にていずれか１種類のプログラミング言語が選択されていることを確認したならば、プログラミング支援機能部１５は、ＳＴ８としてその各入力エリア６１，６２，６３にそれぞれ入力されたコードブロック名データ，説明データ及びコードブロックデータと、言語選択エリア６４にて選択されているプログラミング言語の識別データとを対応付けてコードブロックファイル１２２の空エリアに書込み、登録する。しかる後、プログラミング支援機能部１５は、ＳＴ９として表示部３のコードブロック登録ダイアログボックス６を消去して、この処理を終了する。
【００２５】
なお、少なくとも一つの入力エリア６１，６２，６３にデータが入力されていないか、プログラミング言語が選択されていない場合には、ＯＫボタン６５の操作を無効にして、再度ＯＫボタン６５が操作されるか、キャンセルボタン６６が操作されるのを待機する。
【００２６】
コードブロック挿入機能１５３は、図６〜図８の流れ図に示す手順に従い、開発途中であるソースプログラムに、コードブロックデータとして予めコードブロックファイル１２２に登録されているソースコードを挿入するもので、プログラミング支援プログラムの一機能である。
【００２７】
すなわち、操作部２の操作によりコードブロック挿入業務が選択され、その実行が指令されると、プログラミング基本機能部１１は、プログラミング支援機能部１５に対してコードブロック挿入業務の開始を指令する。この指令を受けて、プログラミング支援機能部１５は、コードブロック挿入機能１５３を動作させて、図６の処理を開始する。
【００２８】
先ず、プログラミング支援機能部１５は、ＳＴ１１として例えば図９に示すレイアウトのブロック挿入ウィザードダイアログボックス７のコードブロックリストパネル７０を表示部３に表示させる。このコードブロックリストパネル７０には、少なくともコードブロックリスト表示エリア７１と、挿入ボタン７２と、終了ボタン７３とが設けられている。また、コードブロックリストパネル７０を選択するためのコードブロックリストタブ７４に隣接して、当該コードブロックリストパネル７０の裏側に隠れたクラスツリーパネル８０を選択するためのクラスツリータブ８１が設けられている。そしてプログラミング支援機能部１５は、コードブロックファイル１２２に記憶されているコードブロック名データ，説明データ及びプログラミング言語の識別データを読込み、そのリストをコードブロックリスト表示エリア７１に表示させる。
【００２９】
この状態で、プログラミング支援機能部１５は、ＳＴ１２として終了ボタン７３が操作されるか、ＳＴ１３として挿入ボタン７２が操作されるか、ＳＴ１４としてクラスツリータブ８１が選択されるのを待機する。ここで、終了ボタン７３が操作されたことを検知した場合には、プログラミング支援機能部１５は、ＳＴ２４として表示部３のブロック挿入ウィザードダイアログボックス７を消去して、この処理を終了する。
【００３０】
ＳＴ１３にて挿入ボタン７２が操作されたことを検知した場合には、プログラミング支援機能部１５は、ＳＴ１５としてリスト表示エリア７１に表示されているコードブロックリストのコードブロック名の中からいずれか１つのコードブロック名が選択されているか確認する。ここで、コードブロック名が選択されていない場合には、プログラミング支援機能部１５は挿入ボタン７２の操作を無視し、再び終了ボタン７３または挿入ボタン７２が操作されるか、クラスツリータブ８１が選択されるのを待機する。
【００３１】
これに対し、操作部２の操作により１つのコードブロック名が選択されていた場合には、プログラミング支援機能部１５は、ＳＴ１６としてポインタ位置挿入処理を実行する。この挿入処理は、選択されたコードブロック名によって特定されるコードブロックデータの言語がプログラミング基本機能部１１にて開発途中のソースプログラムの言語と一致するとき、当該コードブロックデータをコードブロックファイル１２２から読出し、操作部２によって操作されるポインタが示すソースプログラムの位置に挿入する処理である。そして、プログラミング支援機能部１５は、この挿入処理を終了すると、再び終了ボタン７３または挿入ボタン７２が操作されるか、クラスツリータブ８１が選択されるのを待機する。
【００３２】
ＳＴ１４にてクラスツリータブ８１が選択されたことを検知した場合には、プログラミング支援機能部１５は、ＳＴ１７としてブロック挿入ウィザードダイアログボックス７の内容を例えば図１０に示すレイアウトのクラスツリーパネル８０に切換える。このクラスツリーパネル８０には、少なくともプログラム名表示エリア８２と、クラス名表示エリア８３と、関数名表示エリア８４と、編集ボタン８５と、終了ボタン８６とが設けられている。また、クラスツリータブ８１に隣接して、当該クラスツリーパネル８０の裏側に隠れたコードブロックリストパネル７０を選択するためのコードブロックリストタブ７４が設けられている。そしてプログラミング支援機能部１５は、プログラムフォルダ１２４に保存されているプログラムファイル１２１に格納されているプログラムの名称（プログラム名）をプログラム表示エリア８２に選択可能に表示させる（プログラム選択手段）。また、プログラム名表示エリア８２に表示されたプログラム名の中から１つのプログラム名が選択されると、そのプログラム名のソースプログラムを構成する各クラスのクラス名をクラス名表示エリア８３に選択可能に表示させる。さらに、クラス名表示エリア８３に表示されたクラス名の中から１つのクラス名が選択されると、そのクラス名のクラスに定義されたすべての関数を取得し（関数取得手段）、その関数名を関数名表示エリア８４に表示させる。
【００３３】
この状態で、プログラミング支援機能部１５は、ＳＴ１８として終了ボタン８６が操作されるか、ＳＴ１９として編集ボタン８５が操作されるか、ＳＴ２０としてコードブロックリストタブ７４が選択されるのを待機する。ここで、終了ボタン８６が操作されたことを検知した場合には、プログラミング支援機能部１５は、ＳＴ２４として表示部３のブロック挿入ウィザードダイアログボックス７を消去して、この処理を終了する。
【００３４】
ＳＴ１９にて編集ボタン８５が操作されたことを検知した場合には、プログラミング支援機能部１５は、ＳＴ２１としてプログラム名表示エリア８２に表示されているプログラム名の１つが選択されていること、及びＳＴ２２としてクラス名表示エリア８３に表示されているクラス名の１つが選択されていることを確認する。ここで、プログラム名及びクラス名の少なくとも一方が選択されていない場合には、プログラミング支援機能部１５は編集ボタン８５の操作を無視し、再び終了ボタン８６または編集ボタン８５が操作されるか、コードブロックリストタブ７４が選択されるのを待機する。
【００３５】
プログラム名とクラス名が選択されていることを確認した場合には、プログラミング支援機能部１５は、ＳＴ２３として後述する関数挿入処理を実行する。そして、この関数挿入処理を終了したならば、プログラミング支援機能部１５は、再び終了ボタン８６または編集ボタン８５が操作されるか、コードブロックリストタブ７４が選択されるのを待機する。
【００３６】
ＳＴ２０にてコードブロックリストタブ７４が選択されたことを検知した場合には、プログラミング支援機能部１５はＳＴ１１の処理に戻り、ブロック挿入ウィザードダイアログボックス７の内容をコードブロックリストパネル７０に切換える。そして、終了ボタン７３または挿入ボタン７２が操作されるか、クラスツリータブ８１が選択されるのを待機する。
【００３７】
図７は、図６中ＳＴ２３の関数挿入処理の手順を具体的に示す流れ図である。すなわちプログラミング支援機能部１５は、関数挿入処理に入ると、先ず、ＳＴ３１として例えば図１１に示すレイアウトの編集ダイアログボックス９を表示部３に表示する。この編集ダイアログボックス９には、少なくともクラス名表示エリア９１、コードブロック名表示エリア９２、説明データ表示エリア９３、関数名表示エリア９４、関数名とコードブロック名とからなる編集対象リストの表示エリア９５、追加ボタン９６、ＯＫボタン９７及びキャンセルボタン９８が設けられている。また、編集対象リスト表示エリア９５には、アップボタン９５１，ダウンボタン９５２及び削除ボタン９５３のリスト編集ボタンが設けられている。そしてプログラミング支援機能部１５は、クラスツリーパネル８０にて選択されたクラス名をクラス名表示エリア９１に表示させる。また、その選択されたクラス名のクラスに定義されたすべての関数名を関数名表示エリア９４に選択可能に表示させる（関数指定手段）。さらに、コードブロックファイル１２２に登録されている各コードブロックデータのコードブロック名をコードブロック名表示エリア９２にプルダウン表示可能とし、デフォルトとして先頭のコードブロック名を表示させる。そして、このコードブロック名表示エリア９２に表示されたコードブロック名のコードブロックデータに対応する説明データを説明データ表示エリア９３に表示させる。
【００３８】
次に、プログラミング支援機能部１５は、ＳＴ３２としてコードブロック名表示エリア９２にプルダウン表示されるコードブロック名のなかからいずれか１つのコードブロック名が選択されるか、ＳＴ３３として追加ボタン９６が操作されるか、ＳＴ３４としてリスト編集ボタン９５１〜９５３が操作されるか、ＳＴ３５としてＯＫボタン９７が操作されるか、ＳＴ３６としてキャンセルボタン９８が操作されるのを待機する。
【００３９】
ここで、コードブロック名が選択されたことを検知した場合には、プログラミング支援機能部１５は、ＳＴ３７としてその選択されたコードブロック名に対応する説明データをコードブロックファイル１２２から読出し、説明データ表示エリア９３に表示させる。しかる後、コードブロック名の選択若しくは各ボタン９５１〜９５３，９６，９７，９８の操作待機状態に戻る。
【００４０】
ＳＴ３３にて追加ボタン９６が操作されたことを検知した場合には、プログラミング支援機能部１５は、ＳＴ３８として関数名表示エリア９４に表示されている関数名の中からいずれか１つの関数名が選択されているか否かを判断する。そして選択されていない場合には、追加ボタン９６の操作を無視して、コードブロック名の選択若しくは各ボタン９５１〜９５３，９６，９７，９８の操作待機状態に戻る。
【００４１】
これに対し、いずれか１つの関数名が選択されていた場合には、プログラミング支援機能部１５は、ＳＴ３９としてその選択された関数名とコードブロック名とを編集対象リストファイル１２３に格納する。このとき、編集対象リストファイル１２３の空いている順序データのなかで、最小の順序データに対応させて関数名とコードブロック名とを格納する（蓄積手段）。しかる後、コードブロック名の選択若しくは各ボタン９５１〜９５３，９６，９７，９８の操作待機状態に戻る。
【００４２】
ＳＴ３４にてリスト編集ボタン１５１〜１５３が操作されたことを検知した場合には、プログラミング支援機能部１５は、ＳＴ４０（図８）として編集対象リスト表示エリア９５に表示されている編集対象データの中からいずれか１つのデータが選択されているか否かを判断する。そして選択されていない場合には、リスト編集ボタン１５１〜１５３の操作を無視して、コードブロック名の選択若しくは各ボタン９５１〜９５３，９６，９７，９８の操作待機状態に戻る。
【００４３】
これに対し、いずれか１つの編集対象データ（関数名，コードブロック名）が選択されていた場合には、プログラミング支援機能部１５は、ＳＴ４１として操作されたリスト編集ボタンを判別する。ここで、操作ボタンがアップボタン９５１であった場合には、プログラミング支援機能部１５は、ＳＴ４２として選択された編集対象データが編集対象リストファイル１２３の先頭に位置するようにシフトするとともに、編集対象リスト表示エリア９５のリスト表示を更新する（蓄積順序変更手段）。また、操作ボタンがダウンボタン９５２であった場合には、プログラミング支援機能部１５は、ＳＴ４３として選択された編集対象データが編集対象リストファイル１２３の最後尾に位置するようにシフトするとともに、編集対象リスト表示エリア９５のリスト表示を更新する（蓄積順序変更手段）。また、操作ボタンが削除ボタン９５３であった場合には、プログラミング支援機能部１５は、ＳＴ４４として選択された編集対象データを編集対象リストファイル１２３から削除するとともに編集対象リスト表示エリア９５のリスト表示を更新する。その後、プログラミング支援機能部１５は、コードブロック名の選択若しくは各ボタン９５１〜９５３，９６，９７，９８の操作待機状態に戻る。
【００４４】
ＳＴ３５にてＯＫボタン３５が操作されたことを検知した場合には、プログラミング支援機能部１５は、ＳＴ４５として編集対象リストファイル１２３に編集対象データが格納されているか否かを判断する。そして編集対象データが格納されていない場合には、ＯＫボタンの操作を無視して、コードブロック名の選択若しくは各ボタン９５１〜９５３，９６，９７，９８の操作待機状態に戻る。
【００４５】
これに対し、編集対象データが格納されている場合には、プログラミング支援機能部１５は、ＳＴ４６としてクラスツリーパネル８０のプログラム名表示エリア８２上で選択されたプログラム名のソースプログラムに対し、その編集対象データの関数名によって特定される関数の引数記述領域に、コードブロック名によって特定されるコードブロックデータを挿入する。具体的には、先ず、編集対象リストファイル１２３から先頭の編集対象データを読み出す。次に、この読み出した編集対象データのコードブロック名によって特定されるコードブロックデータの言語が、当該ソースプログラムの言語と一致するかどうか調べる。そして言語が一致する場合には、当該コードブロックデータをコードブロックファイル１２２から読み出すとともに、当該編集対象データの関数名によって特定される関数を当該ソースプログラムから抽出し、この関数の引数記述領域に当該コードブロックデータを挿入する（コード挿入手段）。言語が一致しない場合には、コードブロックデータを挿入しない。以後、編集対象リストファイル１２３から編集対象データを読み出す毎に、上記処理を繰返す。
【００４６】
こうして、編集対象リストファイル１２３に格納された全ての編集対象データについて上記処理を実行したならば、プログラミング支援機能部１５は、ＳＴ４７として編集対象リストファイル１２３をクリアする。また、ＳＴ４８として編集ダイアログボックス９を消去したならば、この関数挿入処理を終了する。ここに、編集ダイアログボックス９のＯＫボタン９７は、挿入指示手段として機能する。
【００４７】
ＳＴ３６にてキャンセルボタン９８が操作されたことを検知した場合には、プログラミング支援機能部１５は、その時点で編集対象リストファイル１２３をクリアするとともに編集ダイアログボックス９を消去して、この関数挿入処理を終了する。
【００４８】
このように構成された本実施の形態においては、プログラミング作業者は、例えばソースプログラムを開発している段階で、関数の引数等として再利用性のあるソースコードを発見すると、それをコードブロックデータとしてコードブロックファイル１２２に適時登録する。
【００４９】
すなわちプログラミング作業者は、操作部２を操作してプログラミング装置本体１に対しコードブロック登録業務の実行を指令する。すると、表示部３に、図５に示すコードブロック登録ダイアログボックス６が表示されるので、プログラミング作業者は、操作部２を操作してこのダイアログボックス６の入力エリア６１〜６３に、それぞれ所望するコードブロック名，説明及びコードブロックの各データを入力する。また、言語選択エリア４４の中から当該コードブロックデータの言語を指定する。しかる後、ＯＫボタン６５を操作する。こうすることにより、当該コードブロックデータが説明データ，コードブロック名データ及び言語データとともにコードブロックファイル１２２に登録される。
【００５０】
しかしてプログラミング作業者は、ソースプログラムを開発している最中に、コードブロックファイル１２２に登録されているコードブロックデータ（ソースコード）を利用できると判断すると、操作部２を操作してコードブロック挿入業務の実行を指令する。そうすると、表示部３に、図９に示す挿入ウィザードダイアログボックス７のコードブロックリストパネル７０が表示されるので、プログラミング作業者は、ソースプログラムにコードブロックデータを関数指定により挿入するか、マニュアル指定により挿入するかを決める。マニュアル指定により挿入対象のソースプログラムを選択後、このソースプログラムの挿入位置をマウスポインタで指示する。しかる後、コードブロックリスト表示エリア７１からその位置に挿入するコードブロックデータのコードブロック名を選択し、挿入ボタン７２を操作する。こうすることにより、選択されたコードブロック名のコードブロックデータが当該ソースプログラムのマウスポインタによって指示された位置に挿入される。
【００５１】
これに対し、関数指定により挿入する場合には、プログラミング作業者は、クラスツリータブ８１を操作する。すると、図１０に示す如く、ブロック挿入ウィザードダイアログボックス７の内容がクラスツリーパネル８０に切換わり、開発中のソースプログラムのプログラム名リストがプログラム名表示エリア８２に表示されるので、プログラミング作業者は、操作部２を操作してコードブロックデータ挿入対象プログラムのプログラム名を選択する。すると、このプログラム名が設定されたソースプログラムを構成するクラスのクラス名リストがクラス名表示エリア８３に表示されるので、プログラミング作業者は、操作部２を操作してコードブロックデータ挿入対象クラスのクラス名を選択する。すると、このクラス名のクラス内部に記述されている関数の関数名リストが関数名表示エリア８４に表示されるので、当該コードブロックデータを引数とする関数があることを確認する。そして、確認したならば編集ボタン８５を操作する。
【００５２】
これにより、表示部３には、図１１に示す編集ダイアログボックス９が表示される。そこで、プログラミング作業者は、コードブロック名表示エリア９２から挿入するコードブロックデータのコードブロック名を選択する。また、関数名表示エリア９４から当該コードブロックデータを引数として記述する関数の関数名を１つ選択する。そして、追加ボタン９６を操作する。すると、当該関数名とコードブロック名とが編集対象リストファイル１２３の１番目に格納され、その内容が編集対象リスト表示エリア９５に表示される。
【００５３】
ここで、同一のコードブロックデータを他の関数の引数としても用いる場合には、プログラミング作業者は、関数名表示エリア９４から該当する関数名を選択し、追加ボタン９６を操作する。これにより、この関数名と当該コードブロック名とが編集対象リストファイル１２３の２番目に格納され、その内容が編集対象リスト表示エリア９５に表示される。
【００５４】
なお、他のコードブロックデータも挿入する場合には、プログラミング作業者は、コードブロック名の選択操作と関数名の選択操作とを繰返せばよい。
【００５５】
例えば、今、図１１に示すように、関数名「Ｐａｇｅ＿Ｌｏａｄ」の関数に対してコードブロック名「ＤＢＡｃｃｅｓｓ０４」のコードブロックデータを挿入すること、及び関数名「ＯｎＩｎｉｔ」の関数に対しても同じコードブロックデータを挿入することが指示されたとする。また、挿入対象として選択されたソースプログラムを図１２に示す内容のものとする。
【００５６】
この状態で、プログラミング作業者が編集ダイアログボックス９のＯＫボタン９７を操作すると、ソースプログラム中の１行目の関数「Ｐａｇｅ＿Ｌｏａｄ」に対する引数記述領域（２行目の“｛”から４行目の“｝”までの領域）と、５行目の関数「ＯｎＩｎｉｔ」に対する引数記述領域（６行目の“｛”から最下行の“｝”までの領域）とに、コードブロック名「ＤＢＡｃｃｅｓｓ０４」のコードブロックデータ１００が挿入され、ソースプログラムは、図１３に示す内容のものとなる。
【００５７】
このように本実施の形態によれば、関数の引数として再利用性のあるソースコードを予め登録しておくことによって、ソースプログラムに対して挿入位置を指定しなくても当該ソースコードを正しい位置に挿入することができる。したがって、プログラミング作業者の負担になることなく同じ内容のソースコードを何度も記述する手間を不要にできるので、プログラムをより一層効率よく開発することができるようになる。
【００５８】
なお、前記実施の形態ではオブジェクト指向プログラミングの支援技術として本発明を説明したが、オブジェクト指向でないプログラム開発の支援技術にも本発明は適用できるものである。
【００５９】
また、前記実施の形態では、コードブロック登録機能１５２をプログラミング支援プログラムの一機能として説明したが、プログラミング支援プログラムとは別のプログラムによって機能されるものであってもよい。
【００６０】
【発明の効果】
以上詳述したように本発明によれば、関数の引数となり得るソースコードであれば、ソースプログラムに対して挿入位置を指定しなくても正しい位置に所望するソースコードを挿入することができ、プログラミング作業者の負担を軽減しつつプログラムを効率よく開発することができるプログラミング支援装置及び方法並びにプログラミング支援プログラムを提供できる。
【図面の簡単な説明】
【図１】本発明の一実施の形態であるプログラミング装置の要部構成を示すブロック図。
【図２】同プログラミング装置の記憶部に形成されるコードブロックファイルのデータ構造を示す模式図。
【図３】同プログラミング装置の記憶部に形成される編集対象リストファイルのデータ構造を示す模式図。
【図４】同プログラミング装置のプログラミング支援機能部が制御するコードブロック登録機能の主要な処理手順を示す流れ図。
【図５】同プログラミング装置の表示部に表示されるコードブロック登録ダイアログボックスの一例を示す模式図。
【図６】同プログラミング装置のプログラミング支援機能部が制御するコードブロック挿入機能の主要な処理手順を示す流れ図。
【図７】図６における関数挿入処理を具体的に示す流れ図。
【図８】図７におけるリスト編集ボタン入力後の処理を具体的に示す流れ図。
【図９】同プログラミング装置の表示部に表示されるブロック挿入ウイザードのコードブロックパネルの一例を示す模式図。
【図１０】同プログラミング装置の表示部に表示されるブロック挿入ウイザードのクラスツリーパネルの一例を示す模式図。
【図１１】同プログラミング装置の表示部に表示されるクラスツリー編集ダイアログボックスの一例を示す模式図。
【図１２】コードブロックデータ挿入前のソースプログラムの一例を示す図。
【図１３】コードブロックデータ挿入後のソースプログラムの一例を示す図。
【符号の説明】
１…プログラミング装置本体、２…操作部、３…表示部、１１…プログラミング基本機能部、１２…記憶部、１２１…プログラムファイル、１２２…コードブロックファイル、１２３…編集対象リストファイル、１３…入出力インタフェース部、１４…通信制御部、１５…プログラミング支援機能部、１５１…ファイル管理機能、１５２…コードブロック登録機能、１５３…コードブロック挿入機能。
【図１】
2005018458.tif 000003
【図２】
2005018458.tif 000004
【図３】
2005018458.tif 000005
【図４】
2005018458.tif 000006
【図５】
2005018458.tif 000007
【図６】
2005018458.tif 000008
【図７】
2005018458.tif 000009
【図８】
2005018458.tif 000010
【図９】
2005018458.tif 000011
【図１０】
2005018458.tif 000012
【図１１】
2005018458.tif 000013
【図１２】
2005018458.tif 000014
【図１３】
2005018458.tif 000015