(57)【要約】【課題】変更箇所を容易に特定することが可能なプログラム等を提供する。【解決手段】コンピュータに、第１ソースコードの引数の情報量に基づき、対象引数の位置情報を取得させる処理を実行させる。また、当該処理を終えた後、コンピュータに、前記第１ソースコードに対し呼び出し関係にある第２ソースコードの引数の情報量、及び、前記位置情報に基づき、前記第２ソースコードから、前記対象引数に対応する対応ソースコードを抽出する処理を実行させる。【選択図】図７
2016015052.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
第１ソースコードの引数の情報量に基づき、対象引数の位置情報を取得し、
前記第１ソースコードに対し呼び出し関係にある第２ソースコードの引数の情報量及び前記位置情報に基づき、前記第２ソースコードから前記対象引数に対応する対応ソースコードを抽出する
処理を実行させるプログラム。
【請求項２】
抽出した対応ソースコードを、他の第２ソースコードと異なる形態で表示する
処理を実行させる請求項１に記載のプログラム。
【請求項３】
第１ソースコードに複数行にわたり記載された引数の情報量を、先頭行から対象引数の行数まで順に加算することによって、対象引数の位置情報を取得する
請求項１または２に記載のプログラム。
【請求項４】
第１ソースコードの引数の情報量に基づき、対象引数の位置情報を取得する取得部と、
前記第１ソースコードに対し呼び出し関係にある第２ソースコードの引数の情報量及び前記位置情報に基づき、前記第２ソースコードから前記対象引数に対応する対応ソースコードを抽出する抽出部と
を備える情報処理装置。
【請求項５】
情報処理装置を用いた情報処理方法において、
第１ソースコードの引数の情報量に基づき、対象引数の位置情報を取得し、
前記第１ソースコードに対し呼び出し関係にある第２ソースコードの引数の情報量及び前記位置情報に基づき、前記第２ソースコードから前記対象引数に対応する対応ソースコードを抽出する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
従来、プログラムにおけるデータ構造と記憶域上での配置を視覚的かつ、直感的に理解することを支援するシステム及び方法が提案されている（例えば、特許文献１〜３参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−２８２１５０号公報
【特許文献２】特開平１１−２７２５０３号公報
【特許文献３】特開２００７−１２２２０７号公報
【特許文献４】特開２００１−３２５１００号公報
【特許文献５】特開平１０−３０１７７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方法では、呼び出し元のプログラムに変更がなされた場合でも、呼び出し元と呼び出し先のプログラムとの間で引数の名前等が相違していることもあり、変更箇所を容易に特定できないという問題があった。
【０００５】
一つの側面では、変更箇所を容易に特定することが可能なプログラム等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願に開示するプログラムは、コンピュータに、第１ソースコードの引数の情報量に基づき、対象引数の位置情報を取得し、前記第１ソースコードに対し呼び出し関係にある第２ソースコードの引数の情報量及び前記位置情報に基づき、前記第２ソースコードから前記対象引数に対応する対応ソースコードを抽出する処理を実行させる。
【発明の効果】
【０００７】
一つの側面では、変更箇所を容易に特定することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置のハードウェア群を示すブロック図である。
【図２】ソースコードの一例を示す説明図である。
【図３】参照ファイルのレコードレイアウトを示す説明図である。
【図４】呼び出し元の位置情報を示す説明図である。
【図５】呼び出し先の位置情報を示す説明図である。
【図６】位置ファイルのレコードレイアウトを示す説明図である。
【図７】表示処理を示す説明図である。
【図８】対応付け処理の手順を示すフローチャートである。
【図９】抽出処理手順を示すフローチャートである。
【図１０】ソースコード例を示す説明図である。
【図１１】呼び出し元の位置情報を示す説明図である。
【図１２】呼び出し先の位置情報を示す説明図である。
【図１３】位置ファイルのレコードレイアウトを示す説明図である。
【図１４】表示処理を示す説明図である。
【図１５】位置情報の決定処理手順を示すフローチャートである。
【図１６】部分参照子を含む場合の位置情報決定処理の手順を示すフローチャートである。
【図１７】呼び出し元ソースコード及び呼び出し先ソースコードの例を示す説明図である。
【図１８】呼び出し先の位置情報を示す説明図である。
【図１９】位置ファイルのレコードレイアウトを示す説明図である。
【図２０】表示形態を示す説明図である。
【図２１】表示処理の例を示す説明図である。
【図２２】表示処理手順を示すフローチャートである。
【図２３】上述した形態のコンピュータの動作を示す機能ブロック図である。
【図２４】実施の形態５に係るコンピュータのハードウェア群を示すブロック図である。
【発明を実施するための形態】
【０００９】
実施の形態１
以下実施の形態を、図面を参照して説明する。図１は情報処理装置１のハードウェア群を示すブロック図である。情報処理装置１は、パーソナルコンピュータ、サーバコンピュータ、携帯電話、スマートフォン、または、ＰＤＡ（Personal Digital Assistant）等である。以下では情報処理装置１をコンピュータ１であるものとして説明する。コンピュータ１は制御部としてのＣＰＵ（Central Processing Unit）１１、ＲＡＭ(Random Access Memory)１２、入力部１３、表示部１４、記憶部１５、通信部１６、及び時計部１８等を含む。ＣＰＵ１１は、バス１７を介してハードウェア各部と接続されている。ＣＰＵ１１は記憶部１５に記憶された制御プログラム１５Ｐに従いハードウェア各部を制御する。ＲＡＭ１２は例えばＳＲＡＭ（Static RAM）、ＤＲＡＭ(Dynamic RAM)、フラッシュメモリ等である。ＲＡＭ１２は、記憶部としても機能し、ＣＰＵ１１による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００１０】
入力部１３はマウスまたはキーボード、マウスまたはタッチパネル等の入力デバイスであり、受け付けた操作情報をＣＰＵ１１へ出力する。表示部１４は液晶ディスプレイまたは有機ＥＬ（electroluminescence）ディスプレイ等であり、ＣＰＵ１１の指示に従い各種情報を表示する。通信部１６は通信モジュールであり、インターネットまたは公衆回線網等の通信網Ｎを介して図示しない他のコンピュータとの間で情報の送受信を行う。
【００１１】
時計部１８は日時をＣＰＵ１１へ出力する。記憶部１５はハードディスクまたは大容量メモリであり、制御プログラム１５Ｐ、参照ファイル１５１、プログラムファイル１５２及び位置ファイル１５３等を含む。プログラムファイル１５２には編集対象となるプログラムのソースコードが記憶されている。ＣＰＵ１１は、プログラムファイル１５２からＲＡＭ１２にソースコードを読み出す。ＣＰＵ１１は、入力部１３からソースコードの変更を受け付け、変更後のソースコードをプログラムファイル１５２に記憶する。本実施形態ではプログラム言語としてＣＯＢＯＬを用いる例を挙げて説明するが、これに限るものではない。例えば、Ｃ言語を用いるものであっても良い。また、本実施形態では、参照ファイル１５１、プログラムファイル１５２及び位置ファイル１５３等を記憶部１５に記憶する例を挙げて説明するがこれに限るものではない。例えばＲＡＭ１２に記憶するほか、通信網Ｎを介して接続される図示しないコンピュータに記憶しても良い。
【００１２】
図２はソースコードの一例を示す説明図である。図２の左側が呼び出し元のソースコードであり、右側が呼び出し先のソースコードである。呼び出し元のソースコードには、引数DATA-Xとして、基本項目名DATA-1〜DATA-6が記述されている。また基本項目名に続いてPICTURE句が記述されている。例えばDATA-1  PIC X.と記述されている。PICTURE句のＸは英数字項目であり、任意の文字を含む１文字を示し情報量は１バイトである。またＸ(2)は、任意の文字を含む２個の文字を示し情報量は２バイトとなる。呼び出し先プログラムはCALL文で読み出される。
【００１３】
図２の例では、“PGM-Y”と称するプログラムが読み出される。呼び出し先ソースコードは引数を受け取る。図２の例では、基本項目名がPRM-1〜PRM-3に変更されている。ＣＰＵ１１は、引数の情報量に基づき位置情報を取得する。
【００１４】
図３は参照ファイル１５１のレコードレイアウトを示す説明図である。参照ファイル１５１は文字フィールド及び情報量フィールドを含む。文字フィールドにはPICTURE文字列が記憶されている。情報量フィールドにはPICTURE文字列に対応付けて情報量が記憶されている。Ｘは上述したとおりであり、USAGE句が指定されていない９は外部10進の数字項目であり、情報量は１バイトである。また例えば9(2)は２桁の符号無しの数字を示し、情報量は２バイトとなる。また、９にUSAGE句 BINARY等が指定された２進数の数字項目の場合、情報量は１〜４桁は２、５〜９桁は４、１０〜１８桁は８等である。情報量は言語の仕様が定める値である。
【００１５】
Ｎは日本語項目であり、情報量は２バイトである。例えばN(3)は全角日本語の３個の文字を示し、情報量は６バイトとなる。Ｓ９は符号付きの数字を示し、情報量は１バイトである。例えばＳ９（４）は符号付き数字４桁を示し、情報量は４バイトである。ＣＰＵ１１は、引数のPICTURE文字列及び参照ファイル１５１を参照し、各引数の情報量を取得する。図２の例では、全ての引数はPIC X.であり、情報量は１となる。ＣＰＵ１１は、Ｘ、９、Ｎの文字に括弧書きで数字が付加されている場合、情報量１に付加されている数字を乗じる。例えばX(2)の場合、情報量は２となる。
【００１６】
ＣＰＵ１１は、ＲＡＭ１２に基本項目名に対応付けて情報量及び位置情報を記憶する。図４は呼び出し元の位置情報を示す説明図である。ＣＰＵ１１は、基本項目名に対応付けて、取得した情報量を記憶する。図４の例では全ての引数の情報量が１である。続いて、ＣＰＵ１１は、情報量に基づき、位置情報を算出する。ＣＰＵ１１は、先頭行から順に情報量を加算することで位置情報を算出する。例えばDATA-3は１＋１＋１により、位置情報は３となる。
【００１７】
同様にＣＰＵ１１は、呼び出し先の引数の情報量を取得する。基本項目名PRM-1は、USAGE句 BINARYが記述されているＳ９（４）であるので情報量は２バイトとなる。基本項目名PRM-2はX.であるので情報量は１バイトとなる。基本項目名PRM-3はX(2)であるので、情報量は２バイトとなる。
【００１８】
図５は呼び出し先の位置情報を示す説明図である。ＣＰＵ１１は、基本項目名に対応付けて、取得した情報量を記憶する。図５の例では基本項目名PRM-1の情報量は２、PRM-2の情報量は１、PRM-3の情報量は２である。ＣＰＵ１１は、情報量に基づき、位置情報を算出する。ＣＰＵ１１は、引数の先頭行から順に情報量を加算することで位置情報を算出する。具体的にはＣＰＵ１１は、第１行目の引数には初期値１を付与し、情報量２に初期値１を加算して最大値３を求める。ＣＰＵ１１は、初期値と、最大値３から１減じた値との間の値１、２を位置情報とする。
【００１９】
また第２行目以降の引数には、前行の引数の最大位置情報に１を加算した値を初期値として付与する。以降は同様に、情報量に初期値を加算して最大値を求める。そして、初期値と、最大値３から１減じた値との間の値１、２を位置情報とする。例えばPRM-2は１行目の最大位置情報２に１を加算した３が初期値となる。情報量２に１を加算し最大値は３となる。初期値と、最大値から１を減じた値との間の値は３であるので、位置情報は３となる。PRM-3は２行目の最大位置情報３に１を加算した４が初期値（情報量２＋１に１を加算したもの）となる。情報量２に４を加算して最大値は６となる。４と最大値６から１を減じた５との間の値は４，５となるので、位置情報は４及び５となる。ＣＰＵ１１は、算出した位置情報を基本項目名及び情報量に対応付けて図５の如くＲＡＭ１２に記憶する。
【００２０】
図６は位置ファイル１５３のレコードレイアウトを示す説明図である。位置ファイル１５３は位置情報フィールド、呼び出し元ソースコードフィールド及び呼び出し先ソースコードフィールド等を含む。位置情報に対応付けて呼び出し元ソースコード及び呼び出し先ソースコードが記憶されている。例えば呼び出し元ソースコード「DATA-5」と呼び出し先ソースコード「PRM-3」とは共に位置情報が「５」であることが理解できる。
【００２１】
ＣＰＵ１１は、ＲＡＭ１２に記憶した呼び出し元の基本項目名及び位置情報と（図４参照）、ＲＡＭ１２に記憶した呼び出し先の基本項目名及び位置情報と（図５参照）に基づき、位置ファイル１５３に位置情報、呼び出し元のソースコード及び呼び出し先ソースコードを記憶する。例えば位置情報３は、DATA-3とPRM-2であるので、位置ファイル１５３に当該対応付けを記憶する。これにより、例えば呼び出し元の基本項目名「DATA-5」の記述が変更された場合でも、ＣＰＵ１１は、位置ファイル１５３を参照し、呼び出し先ソースコードの内、影響を受けるものは、位置情報が一致する「PRM-3」であると特定することができる。
【００２２】
図７は表示処理を示す説明図である。ＣＰＵ１１は、プログラムファイル１５２を参照し、表示部１４に呼び出し元のソースコードを表示する。ＣＰＵ１１は、呼び出し元のソースコードの引数の選択を入力部１３から受け付ける。図７の例では、対象引数として「DATA-5」が選択されている。ＣＰＵ１１は、入力部１３から受け付けた呼び出し元のソースコードに対応する呼び出し先ソースコードを位置ファイル１５３から読み出す。図７の例では「PRM-3」が読み出される。ＣＰＵ１１は、プログラムファイル１５２を参照し、呼び出し先ソースコードを読み出す。ＣＰＵ１１は、読み出した呼び出し元のソースコードの対応するソースコード「PRM-3」が、他の呼び出し先ソースコードと視覚により識別することが可能な形態で表示部１４に表示する。なお、本実施形態では説明を容易にするために位置ファイル１５３を用いた例を示したがこれに限るものではない。呼び出し元のソースコードの選択を受ける度に、情報量を取得し、位置情報を求めても良い。そしてＣＰＵ１１は、求めた位置情報に基づき、呼び出し先ソースコードから対応するソースコードを抽出しても良い。
【００２３】
また、ＣＰＵ１１は、呼び出し元の選択されたソースコード「DATA-5」についても、呼び出し元ソースコードとは視覚により識別できる形態で表示部１４に表示する。例えば、他のソースコードとは異なる色で表示する、フォントを変更して表示する、白黒反転させて表示する、四角枠で囲って表示する等すればよい。その他、ポインタで表示する、他のウィンドウに当該ソースコードを抽出して表示する、音声により読み上げる等、要は影響を受ける箇所が特定できるのであれば何れの方式であっても良い。
【００２４】
また、本実施形態では、基本項目名のみを他のソースコードとは異なる形態で表示しているが、当該基本項目が属する行全体を他の行と異なる形態で表示しても良い。例えば、呼び出し先のソースコード「02  PRM-3  PIC X(2).」の行全体または、一部を他の行とは異なる形態で表示すればよい。また本実施形態ではＣＰＵ１１が入力部１３を通じて呼び出し元のソースコードの入力を受け付けた場合に、呼び出し先の対応するソースコードを表示する例を挙げたが、これに限るものではない。呼び出し元のソースコードに変更が完了した後に、対応する呼び出し先のソースコードを異なる形態で表示しても良い。
【００２５】
図８は対応付け処理の手順を示すフローチャートである。ＣＰＵ１１は、プログラムファイル１５２から変更対象となるプログラムを読み出す（ステップＳ８１）。ＣＰＵ１１は、読み出したプログラムを表示部１４に表示する（ステップＳ８２）。ＣＰＵ１１は、呼び出し元のソースコードの内、引数に対する変更を、入力部１３から受け付ける（ステップＳ８３）。ＣＰＵ１１は、参照ファイル１５１を参照し、引数の情報量を取得する（ステップＳ８４）。なお、本実施形態においては、呼び出し元の引数が複数存在する場合、全ての引数の情報量を取得する例を挙げて説明するがこれに限るものではない。第１行目から、変更のあった引数に係る行までの情報量を取得する形態であっても良い。
【００２６】
ＣＰＵ１１は、読み出した各行の引数の情報量に基づき、各行の位置情報を算出する（ステップＳ８５）。ＣＰＵ１１は、各引数に対応付けて呼び出し元の情報量及び位置情報を図４の如くＲＡＭ１２に記憶する（ステップＳ８６）。ＣＰＵ１１は、呼び出し元のCALL句を参照し、呼び出し先のプログラムを読み出す（ステップＳ８７）。ＣＰＵ１１は、呼び出し先の引数の情報量を取得する（ステップＳ８８）。ＣＰＵ１１は、情報量に基づき各引数の位置情報を算出する（ステップＳ８９）。ＣＰＵ１１は、各引数に対応付けて呼び出し先の情報量及び位置情報を、図５の如くＲＡＭ１２に記憶する（ステップＳ８１０）。
【００２７】
ＣＰＵ１１は、ＲＡＭ１２に記憶された位置情報を参照し、呼び出し元ソースコードと、呼び出し先ソースコードとの対応付けを位置ファイル１５３に記憶する（ステップＳ８１１）。これにより、変更のあった呼び出し元のソースコードにより影響を受ける呼び出し先のソースコードを特定することが可能となる。なお、本実施形態では、位置ファイル１５３に全ての引数の位置情報を記憶する例を示したがこれに限るものではない。変更のあった呼び出し元のソースコード及び対応する呼び出し先のソースコードのみを記憶しても良い。
【００２８】
図９は抽出処理手順を示すフローチャートである。ＣＰＵ１１は、呼び出し元のソースコードを表示部１４に表示する（ステップＳ９１）。ＣＰＵ１１は、引数の選択を、入力部１３から受け付ける（ステップＳ９２）。ＣＰＵ１１は、選択を受け付けた引数の行を、他の行とは識別できるよう、着色表示する（ステップＳ９３）。ＣＰＵ１１は、引数内の基本項目名に基づき、位置ファイル１５３から対応する呼び出し先のソースコードを抽出する（ステップＳ９４）。
【００２９】
ＣＰＵ１１は、呼び出し先のソースコードを表示部１４に表示する（ステップＳ９５）。ＣＰＵ１１は、ステップＳ９４で抽出したソースコードに係る行を着色表示する（ステップＳ９６）。これにより、呼び出し元のソースコードが変更された場合でも、容易に呼び出し先の影響を受けるソースコードを特定することが可能となる。すなわち、本実施形態の如く、基本項目名が呼び出し先にて変更されている場合、テキスト検索によっては特定することができないが、上述した処理により、容易に変更箇所を特定することが可能となる。特にプログラムが長文に及ぶ場合、または、作成者が異なる場合に有効である。また、対応する箇所を異なる形態で表示するので、プログラムの検証を迅速化することが可能となる。また情報量を加算した位置情報を用いることから、処理負担をかけることなく容易に変更箇所を特定することが可能となる。
【００３０】
実施の形態２
実施の形態２は第２ソースコードに部分参照子を含む形態に関する。図１０はソースコード例を示す説明図である。図２の左側が呼び出し元のソースコードであり、右側が呼び出し先のソースコードである。呼び出し元ソースコードには、引数DATA-XとしてDATA-1からDATA-6までが記述されている。呼び出し先ソースコードの引数はPRM-Xである。呼び出し先ソースコードには部分参照子が記述されている。部分参照子は、最左端文字位置及び長さで定義される。
【００３１】
図１０の例では、PRM-X(1:1)、PRM-X(4:2)及びPRM-X(7:1)が記述されている。RSLT-X PIC X(7)は任意の文字を含む7個の文字であり、例えばABCDEFGであるとする。部分参照PRM-X(4:2)は、最左端文字位置が４、そして最左端文字位置から長さ２であるので、DEが指定されることとなる。
【００３２】
図１１は呼び出し元の位置情報を示す説明図である。ＣＰＵ１１は、引数の情報量に基づき位置情報を取得する。ＣＰＵ１１は、取得した情報量及び位置情報を、基本項目名に対応付けてＲＡＭ１２に記憶する。ＣＰＵ１１は、DATA-1  PIC Xは１バイトであるので情報量１、位置情報１をＲＡＭ１２に記憶する。ＣＰＵ１１は、DATA-2  PIC Xは１バイトであるので情報量１、前行の位置情報に情報量を加算して位置情報２をＲＡＭ１２に記憶する。ＣＰＵ１１は、DATA-3  PIC Xは１バイトであるので情報量１、前行の位置情報に情報量を加算して位置情報３をＲＡＭ１２に記憶する。
【００３３】
ＣＰＵ１１は、DATA-4  PIC Xは１バイトであるので情報量１、前行の位置情報に情報量を加算して位置情報４をＲＡＭ１２に記憶する。ＣＰＵ１１は、DATA-5  PIC Xは２バイトであるので情報量を２とする。ＣＰＵ１１は、前行の最大位置情報を４に１を加算して初期値を５とする。ＣＰＵ１１は、初期値５に情報量２を加算して最大値７を求める。ＣＰＵ１１は、初期値５から、最大値７から１減じた値６までの間の値５及び６を位置情報として、ＲＡＭ１２に記憶する。ＣＰＵ１１は、DATA-6  PIC Xは１バイトであるので情報量１、前行の位置情報に情報量を加算して位置情報７をＲＡＭ１２に記憶する。
【００３４】
図１２は呼び出し先の位置情報を示す説明図である。ＣＰＵ１１は、最左端文字位置を参照し、初期値を決定する。ＣＰＵ１１は、PRM-X(1:1)の最左端文字位置が１であることから初期値を１とする。ＣＰＵ１１は、長さを参照し、情報量を取得する。ＣＰＵ１１は、PRM-X(1:1)の初期値１及び長さ（情報量）１から位置情報１を算出し、ＲＡＭ１２に記憶する。具体的には初期値に長さを加算し、さらに１を減じた値を最大値とし、最小値から最大値までの値を位置情報として算出する。
【００３５】
ＣＰＵ１１は、PRM-X(4:2)の最左端文字位置が４であることから初期値を４とする。ＣＰＵ１１は、長さを参照し、情報量を取得する。ＣＰＵ１１は、PRM-X(4:2)の初期値４及び長さ２から位置情報４，５を算出し、ＲＡＭ１２に記憶する。ＣＰＵ１１は、PRM-X(7:1)の最左端文字位置が７であることから初期値を７とする。ＣＰＵ１１は、PRM-X(7:1)の初期値７及び長さ１から位置情報７を算出し、ＲＡＭ１２に記憶する。
【００３６】
図１３は位置ファイル１５３のレコードレイアウトを示す説明図である。ＣＰＵ１１は、位置情報を参照し、位置情報が一致する呼び出し元ソースコードと呼び出し先ソースコードとを対応付けて、位置ファイル１５３に記憶する。図１３の例では、呼び出し元ソースコードのDATA-1と呼び出し先ソースコードPRM-X(1:1)が対応付けられている。呼び出し元ソースコードDATA-2、DATA-3、及び、位置情報６に係るDATA-5については対応する呼び出し先コードが存在しない。呼び出し元ソースコードのDATA-4は呼び出し先ソースコードPRM-X(4:2)と対応付けられている。呼び出し元ソースコードの位置情報５に係るDATA-5も呼び出し先ソースコードPRM-X(4:2)と対応付けられている。呼び出し元ソースコードのDATA-6は呼び出し先ソースコードPRM-X(7:1)と対応付けられている。
【００３７】
図１４は表示処理を示す説明図である。ユーザが入力部１３により変更された基本項目DATA-4を選択したとする。ＣＰＵ１１は、位置ファイル１５３を参照し、DATA-4に対応する呼び出し先ソースコードPRM-X(4:2)を抽出する。ＣＰＵ１１は、入力部１３から選択された呼び出し元のソースコードの基本項目名を、他のソースコードとは異なる形態で表示する。またＣＰＵ１１は、抽出した呼び出し先ソースコードに対応する行「MOVE PRM-X(4:2) TO RSLT-2」を、他のソースコードとは異なる形態で表示する。
【００３８】
図１５は位置情報の決定処理手順を示すフローチャートである。ＣＰＵ１１は、引数の１行目の初期値を１とする（ステップＳ１５１）。ＣＰＵ１１は、参照ファイル１５１及びPICTURE文字列を参照し、情報量を取得する（ステップＳ１５２）。ＣＰＵ１１は、情報量を初期値に加算して最大値を算出する（ステップＳ１５３）。ＣＰＵ１１は、初期値と最大値から１減じた値との間の値を位置情報とする（ステップＳ１５４）。ＣＰＵ１１は、１行目の基本項目名、情報量及び位置情報をＲＡＭ１２に記憶する（ステップＳ１５５）。
【００３９】
ＣＰＵ１１は、前行の位置情報の最大値を読み出す（ステップＳ１５６）。ＣＰＵ１１は、最大値に１加算した値を初期値とする（ステップＳ１５７）。ＣＰＵ１１は、情報量を取得する（ステップＳ１５８）。ＣＰＵ１１は、情報量を初期値に加算して最大値を算出する（ステップＳ１５９）。ＣＰＵ１１は、初期値と最大値から１減じた値との間の値を位置情報とする（ステップＳ１５１０）。ＣＰＵ１１は、当該行の基本項目名、情報量及び位置情報をＲＡＭ１２に記憶する（ステップＳ１５１１）。
【００４０】
ＣＰＵ１１は、全ての引数の行について、上述した処理を終えたか否かを判断する（ステップＳ１５１２）。ＣＰＵ１１は、処理を終えていないと判断した場合（ステップＳ１５１２でＮＯ）、処理をステップＳ１５６に戻す。ＣＰＵ１１は、全ての引数の行について処理を終了したと判断した場合（ステップＳ１５１２でＹＥＳ）、一連の処理を終了する。
【００４１】
図１６は部分参照子を含む場合の位置情報決定処理の手順を示すフローチャートである。ＣＰＵ１１は、ソースコードに部分参照子が含まれている場合、以下の処理を行う。ＣＰＵ１１は、呼び出し先ソースコードの部分参照子を含む引数を読み出す。ＣＰＵ１１は、部分参照子を参照し、最左端文字位置及び長さを読み出す（ステップＳ１６１）。ＣＰＵ１１は、最左端文字位置を初期値とする（ステップＳ１６２）。ＣＰＵ１１は、長さを情報量とする（ステップＳ１６３）。ＣＰＵ１１は、情報量を初期値に加算して最大値を算出する（ステップＳ１６４）。ＣＰＵ１１は、初期値と最大値から１減じた値との間の値を位置情報とする（ステップＳ１６５）。ＣＰＵ１１は、当該行の基本項目名、情報量及び位置情報をＲＡＭ１２に記憶する（ステップＳ１６６）。
【００４２】
ＣＰＵ１１は、全ての引数の行について、上述した処理を終えたか否かを判断する（ステップＳ１６７）。ＣＰＵ１１は、処理を終えていないと判断した場合（ステップＳ１６７でＮＯ）、他の行の引数についても同様の処理を行うべく、処理をステップＳ１６１に戻す。ＣＰＵ１１は、全ての引数の行について処理を終了したと判断した場合（ステップＳ１６７でＹＥＳ）、一連の処理を終了する。なお、呼び出し元ソースコードと呼び出し先ソースコードとの対応付け及び表示形態に関する処理は図８及び図９で述べたとおりであるので詳細な説明は省略する。これにより、部分参照子を含んでいる場合でも、容易に影響箇所を特定することが可能となる。
【００４３】
本実施の形態２は以上の如きであり、その他は実施の形態１と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００４４】
実施の形態３
実施の形態３は再定義句を含む形態に関する。図１７は呼び出し元ソースコード及び呼び出し先ソースコードの例を示す説明図である。図１７の左側は呼び出し元ソースコードであり、実施の形態２と実質的に同じである。図１７の右側は、呼び出し先ソースコードである。呼び出し先ソースコードには「REDEFINE」で記述される再定義句が含まれている。ＣＰＵ１１は、再定義句を含む場合、再定義句内の引数を読み出し、引数の情報量に基づき、位置情報を算出する。
【００４５】
図１８は呼び出し先の位置情報を示す説明図である。ＣＰＵ１１は、参照ファイル１５１及びPICTURE文字列に基づき情報量を決定する。PRM-1 PIC X(2)の場合情報量は２となり、位置情報は１、２となる。なお、位置情報の算出手順は上述したとおりである。PRM-2 PIC X(2)の場合情報量は２となり、位置情報は３、４となる。PRM-3 PIC X.の場合情報量は１となり、位置情報は５となる。PRM-4 PIC X(2)の場合情報量は２となり、位置情報は６、７となる。なお、呼び出し元の情報量及び位置情報は図１１と同様であるので説明は省略する。
【００４６】
図１９は位置ファイル１５３のレコードレイアウトを示す説明図である。ＣＰＵ１１は、図１１及び図１８に示したようにＲＡＭ１２に記憶した呼び出し元ソースコード及び呼び出し先ソースコードの位置情報に基づき、各ソースコードの対応付けを記憶する。位置情報１は、呼び出し元ソースコードがDATA-1、呼び出し先ソースコードがPRM-1となる。位置情報２は、呼び出し元ソースコードがDATA-2、呼び出し先ソースコードがPRM-1となる。位置情報３は、呼び出し元ソースコードがDATA-3、呼び出し先ソースコードがPRM-2となる。
【００４７】
位置情報４は、呼び出し元ソースコードがDATA-4、呼び出し先ソースコードがPRM-2となる。位置情報５は、呼び出し元ソースコードがDATA-5、呼び出し先ソースコードがPRM-3となる。位置情報６は、呼び出し元ソースコードがDATA-5、呼び出し先ソースコードがPRM-4となる。位置情報７は、呼び出し元ソースコードがDATA-6、呼び出し先ソースコードがPRM-4となる。
【００４８】
図２０は表示形態を示す説明図である。ユーザは入力部１３から、基本項目名DATA-5を選択したとする。ＣＰＵ１１は、DATA-5に対応する呼び出し先のソースコードPRM-3及びPRM-4を、位置ファイル１５３を参照して抽出する。ＣＰＵ１１は、呼び出し元ソースコードの選択された基本項目名を、他のソースコードとは異なる形態で表示する。ＣＰＵ１１は、抽出した呼び出し先ソースコードPRM-3及びPRM-4を含む行を、他のソースコードとは異なる形態で表示する。これにより、再定義句が含まれている場合でも容易に影響を受ける箇所を特定することが可能となる。
【００４９】
本実施の形態３は以上の如きであり、その他は実施の形態１及び実施の形態２と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００５０】
実施の形態４
実施の形態４は呼び出し元の対応するソースコードを特定する形態に関する。上述の実施形態では、呼び出し元のソースコードの選択を受け付け、対応する呼び出し先の対応するソースコードを特定する例を挙げて説明したが、これに限るものではない。呼び出し先のソースコードの選択を受け付け、その後対応する呼び出し元の対応するソースコードを特定しても良い。
【００５１】
図２１は表示処理の例を示す説明図である。ユーザは入力部１３から、呼び出し先ソースコードPRM-X(4:2)を選択したとする。この場合、ＣＰＵ１１は、図１３に示した位置ファイル１５３を参照し、対応する呼び出し元ソースコードDATA-4及びDATA-5を抽出する。ＣＰＵ１１は、呼び出し先の選択されたソースコードPRM-X(4:2)を他の呼び出し先のソースコードとは異なる形態で表示する。ＣＰＵ１１は、呼び出し元の対応するソースコードを含む行（DATA-4の行及びDATA-5の行）を、他の呼び出し元ソースコードとは異なる形態で表示する。図２１の例では、DATA-4及びDATA-5の行がハッチングにより他のソースコードとは識別することができるように表示されている。なお、抽出したソースコード(DATA-4及びDATA-5)のみを異なる形態で表示しても良い。
【００５２】
図２２は表示処理手順を示すフローチャートである。ＣＰＵ１１は、呼び出し元及び呼び出し先のソースコードを表示部１４に表示する（ステップＳ２２１）。ＣＰＵ１１は、呼び出し先のソースコードの選択を受け付ける（ステップＳ２２２）。ＣＰＵ１１は、選択を受け付けたソースコードを着色表示する（ステップＳ２２３）。ＣＰＵ１１は、位置ファイル１５３から、対応する呼び出し元のソースコードを抽出する（ステップＳ２２４）。ＣＰＵ１１は、抽出したソースコードを含む行を着色表示する（ステップＳ２２５）。これにより、呼び出し先ソースコードからのアプローチでも、容易に呼び出し元ソースコードの影響を受ける箇所を特定することが可能となる。
【００５３】
本実施の形態４は以上の如きであり、その他は実施の形態１から実施の形態３と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００５４】
実施の形態５
図２３は上述した形態のコンピュータ１の動作を示す機能ブロック図である。ＣＰＵ１１が制御プログラム１５Ｐを実行することにより、コンピュータ１は以下のように動作する。取得部２３１は第１ソースコードの引数の情報量に基づき、対象引数の位置情報を取得する。抽出部２３２は前記第１ソースコードに対し呼び出し関係にある第２ソースコードの引数の情報量及び前記位置情報に基づき、前記第２ソースコードから前記対象引数に対応する対応ソースコードを抽出する。
【００５５】
図２４は実施の形態５に係るコンピュータ１のハードウェア群を示すブロック図である。コンピュータ１を動作させるためのプログラムは、ディスクドライブ等の読み取り部１０ＡにCD-ROM、DVD（Digital Versatile Disc）ディスク、メモリーカード、またはUSB(Universal Serial Bus)メモリ等の可搬型記録媒体１Ａを読み取らせて記憶部１５に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ１Ｂをコンピュータ１内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Ｎを介して接続される他のサーバコンピュータ（図示せず）からダウンロードすることも可能である。以下に、その内容を説明する。
【００５６】
図２４に示すコンピュータ１は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体１Ａまたは半導体メモリ１Ｂから読み取り、或いは、通信網Ｎを介して他のサーバコンピュータ（図示せず）からダウンロードする。当該プログラムは、制御プログラム１５Ｐとしてインストールされ、ＲＡＭ１２にロードして実行される。これにより、上述したコンピュータ１として機能する。
【００５７】
本実施の形態５は以上の如きであり、その他は実施の形態１から４と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００５８】
以上の実施の形態１乃至５を含む実施形態に関し、さらに以下の付記を開示する。
【００５９】
（付記１）
コンピュータに、
第１ソースコードの引数の情報量に基づき、対象引数の位置情報を取得し、
前記第１ソースコードに対し呼び出し関係にある第２ソースコードの引数の情報量及び前記位置情報に基づき、前記第２ソースコードから前記対象引数に対応する対応ソースコードを抽出する
処理を実行させるプログラム。
【００６０】
（付記２）
抽出した対応ソースコードを、他の第２ソースコードと異なる形態で表示する
処理を実行させる付記１に記載のプログラム。
【００６１】
（付記３）
第１ソースコードに複数行にわたり記載された引数の情報量を、先頭行から対象引数の行数まで順に加算することによって、対象引数の位置情報を取得する
付記１または２に記載のプログラム。
【００６２】
（付記４）
第２ソースコードが部分参照子を含む場合、部分参照子により定義される最左端文字位置及び長さと、前記位置情報とに基づき、前記第２ソースコードから前記対象引数に対応する対応ソースコードを抽出する
付記１から３のいずれか一つに記載のプログラム。
【００６３】
（付記５）
前記第２ソースコードが再定義句を含む場合、再定義先の引数の情報量と、前記位置情報とに基づき、前記第２ソースコードから前記対象引数に対応する対応ソースコードを抽出する
付記１から３のいずれか一つに記載のプログラム。
【００６４】
（付記６）
前記第２ソースコードから、前記対応ソースコードの選択を受け付けた場合、対応する対象引数を他の第１ソースコードとを異なる形態で表示する
処理を実行させる付記１から５のいずれか一つに記載のプログラム。
【００６５】
（付記７）
第１ソースコードの引数の情報量に基づき、対象引数の位置情報を取得する取得部と、
前記第１ソースコードに対し呼び出し関係にある第２ソースコードの引数の情報量及び前記位置情報に基づき、前記第２ソースコードから前記対象引数に対応する対応ソースコードを抽出する抽出部と
を備える情報処理装置。
【００６６】
（付記８）
情報処理装置を用いた情報処理方法において、
第１ソースコードの引数の情報量に基づき、対象引数の位置情報を取得し、
前記第１ソースコードに対し呼び出し関係にある第２ソースコードの引数の情報量及び前記位置情報に基づき、前記第２ソースコードから前記対象引数に対応する対応ソースコードを抽出する
情報処理方法。
【符号の説明】
【００６７】
１      コンピュータ
１Ａ    可搬型記録媒体
１Ｂ    半導体メモリ
１０Ａ  読み取り部
１１    ＣＰＵ
１２    ＲＡＭ
１３    入力部
１４    表示部
１５    記憶部
１５Ｐ  制御プログラム
１６    通信部
１８    時計部
１５１  参照ファイル
１５２  プログラムファイル
１５３  位置ファイル
２３１  取得部
２３２  抽出部
Ｎ      通信網
【図１】
2016015052.tif 000003
【図２】
2016015052.tif 000004
【図３】
2016015052.tif 000005
【図４】
2016015052.tif 000006
【図５】
2016015052.tif 000007
【図６】
2016015052.tif 000008
【図７】
2016015052.tif 000009
【図８】
2016015052.tif 000010
【図９】
2016015052.tif 000011
【図１０】
2016015052.tif 000012
【図１１】
2016015052.tif 000013
【図１２】
2016015052.tif 000014
【図１３】
2016015052.tif 000015
【図１４】
2016015052.tif 000016
【図１５】
2016015052.tif 000017
【図１６】
2016015052.tif 000018
【図１７】
2016015052.tif 000019
【図１８】
2016015052.tif 000020
【図１９】
2016015052.tif 000021
【図２０】
2016015052.tif 000022
【図２１】
2016015052.tif 000023
【図２２】
2016015052.tif 000024
【図２３】
2016015052.tif 000025
【図２４】
2016015052.tif 000026