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