コンピュータによって実行されるプログラムのソースコードを前記ソースコードから前記コンピュータで実行可能なオブジェクトコードに変換するコンパイラが、前記ソースコードを、前記オブジェクトコードによる前記コンピュータのデータ処理内容を変更させる指示を含む情報であるオプション情報を使用する場合と、前記オプション情報を使用しない場合とについて、前記ソースコードと前記オブジェクトコードとを仲介する中間語コードに変換し、前記コンパイラの出力である前記中間語コードを処理する中間語コード処理部が、前記オプション情報使用時の前記中間語コードと、前記オプション情報不使用時の前記中間語コードとを比較してデータ処理内容が変更されている個所を抽出し、前記データ処理内容変更箇所を、前記ソースコード中の対応するロケーションと関連づけ、前記データ処理内容変更箇所の前記ソースコード中の前記ロケーションを出力する、データ処理変更箇所検出方法。前記中間語コードが、前記オブジェクトコードを、前記ソースコードに付与されている前記ロケーションに関する情報であるロケーション情報と対応付けられた木構造によって記述されている、請求項1に記載のデータ処理変更箇所検出方法。前記中間語コード処理部が、前記ソースコード中の前記ロケーション情報と、前記木構造を有する前記中間語コードに含まれる部分木とを対応付け、前記オプション情報使用時の前記中間語コードと、前記オプション情報不使用時の前記中間語コードとを前記部分木毎に比較して前記データ処理内容変更箇所を検出する、請求項2に記載のデータ処理変更箇所検出方法。コンピュータによって実行されるプログラムのソースコードを前記ソースコードから前記コンピュータで実行可能なオブジェクトコードに変換するコンパイラであって、前記ソースコードを、前記オブジェクトコードによる前記コンピュータのデータ処理内容を変更させる指示を含む情報であるオプション情報を使用する場合と、前記オプション情報を使用しない場合とについて、前記ソースコードと前記オブジェクトコードとを仲介する中間語コードに変換する前記コンパイラと、前記コンパイラの出力である前記中間語コードを処理する中間語コード処理部であって、前記オプション情報使用時の前記中間語コードと、前記オプション情報不使用時の前記中間語コードとを比較してデータ処理内容が変更されている個所を抽出し、前記データ処理内容変更箇所を、前記ソースコード中の対応するロケーションと関連づけ、前記データ処理内容変更箇所の前記ソースコード中の前記ロケーションを出力する、前記中間語コード処理部と、を備えているデータ処理変更箇所検出装置。コンピュータによって実行されるプログラムのソースコードを前記ソースコードから前記コンピュータで実行可能なオブジェクトコードに変換するコンパイラと、前記コンパイラの出力である中間語コードを処理する中間語コード処理部とを備える計算機システムに、前記ソースコードを、前記オブジェクトコードによる前記コンピュータのデータ処理内容を変更させる指示を含む情報であるオプション情報を使用する場合と、前記オプション情報を使用しない場合とについて、前記ソースコードと前記オブジェクトコードとを仲介する中間語コードに変換するステップと、前記オプション情報使用時の前記中間語コードと、前記オプション情報不使用時の前記中間語コードとを比較してデータ処理内容が変更されている個所を抽出するステップと、前記データ処理内容変更箇所を、前記ソースコード中の対応するロケーションと関連づけるステップと、前記データ処理内容変更箇所の前記ソースコード中の前記ロケーションを出力するステップと、を実行させる、データ処理変更箇所検出プログラム。しかし、特許文献1では、プリプロセッサ命令の誤りのみを検出対象としており、コンパイラと連携してユーザに情報を提供する仕組みにはなっていない。したがって、コンパイラオプションの指定の有無によってコンパイラの生成するオブジェクトコードが変化する部分を抽出するに際し、オブジェクトコードとソースコードとの煩雑な比較対照作業をなくし、あるいは軽減することは出来なかった。本発明は、上記の及び他の課題を解決するためになされたもので、本発明の一態様は、コンピュータによって実行されるプログラムのソースコードを前記コンピュータで実行可能なオブジェクトコードに変換するコンパイラが、前記ソースコードを、前記オブジェクトコードによる前記コンピュータのデータ処理内容を変更させる指示を含む情報であるオプション情報を使用する場合と、前記オプション情報を使用しない場合とについて、前記ソースコードと前記オブジェクトコードとを仲介する中間語コードに変換し、前記コンパイラの出力である前記中間語コードを処理する中間語コード処理部が、前記オプション情報使用時の前記中間語コードと、前記オプション情報不使用時の前記中間語コードとを比較してデータ処理内容が変更されている個所を抽出し、前記データ処理内容変更箇所を、前記ソースコード中の対応するロケーションと関連づけ、前記データ処理内容変更箇所の前記ソースコード中の前記ロケーションを出力するデータ処理変更箇所検出方法である。上記の本発明の一態様によれば、コンパイラオプション付加の有無によりソースコードが影響を受ける個所を容易に検出することができ、ソフトウェア開発の生産性を向上させることができる。以下、本発明について、その一実施形態に即して添付図面を参照しながら説明する。まず、本実施形態によるデータ処理内容変更箇所検出方法を実行する計算機システム100の構成について説明する。図1に、データ処理内容変更箇所検出装置としての計算機システム100の構成例を示している。図1に示すように、計算機システム100は、制御部110、主記憶装置120、補助記憶装置130、出力装置140、及び入力装置150を備えている。計算機システム100は、プログラムのソースコードを入力として受け取り、そのソースコードをコンパイルしてオブジェクトコードとして出力する機能を有する。本実施形態の計算機システム100では、この基本機能に加えて、コンパイラオプションの有無によるデータ処理内容変更箇所検出機能が設けられている。制御部110は、後述する主記憶装置に格納されているプログラムを実行することにより本計算機システム100の機能を実現するブロックである。制御部110は、例えばCPUCentralProcessingUnit、MPUMicroProcessingUnit等のプロセッサを備えている。主記憶装置120は、例えばRAMRandomAccessMemory、ROMReadOnlyMemory等の半導体メモリ素子を備えている。主記憶装置120には、本計算機システム100の機能を実現するための、後述する各種プログラム、及びそれらのプログラムによって使用される、あるいはそれらのプログラムによって生成されたデータが格納されている。補助記憶装置130は、後述する入力装置150等から入力されるコンパイル対象であるプログラムのソースコードを格納している。補助記憶装置130は、例えばハードディスクドライブHardDiskDrive、HDD、半導体記憶ドライブSolidStateDrive、SSD、光ディスクドライブ等の記憶デバイスを備えている。出力装置140は、制御部110によるプログラムの実行結果、計算機システム100への操作入力等に関するユーザインタフェース画面を表示する、液晶ディスプレイ等の表示デバイス、プリンタ、スピーカ等の出力デバイスを含む。入力装置150は、キーボード、マウス、ペンタブレット、マイク等の入力デバイスを含む。制御部110、主記憶装置120、補助記憶装置130、出力装置140、及び入力装置150は、適宜の通信規格によるデータバス160によって、通信可能に接続されている。なお、データバス160には、計算機システム100を外部の通信ネットワークに接続するための通信インタフェースを接続してもよい。次に、主記憶装置120に格納されているプログラム及びデータテーブル類について説明する。図1に示すように、計算機システム100の主記憶装置120には、オペレーティングシステムOperatingSystem、OS121、統合開発環境制御部122、コンパイラ123、エディタ124、及び中間語コード差分情報生成部125中間語コード処理部の各プログラムが格納されている。また、主記憶装置120には、行ブロックリストテーブル126及び差分情報テーブル127が格納されている。OS121は、一般的なコンピュータとしての計算機システム100において、メモリ管理、データ入出力等の基本動作を制御するためのソフトウェアであり、一般的なコンピュータにおいて利用される種々のOSを採用して稼働させることができる。統合開発環境制御部122は、計算機システム100を用いてソフトウェア開発を実施する場合に、後述するコンパイラ123、エディタ124、及び中間語コード差分情報生成部125が相互に連係して動作するための基盤である統合開発環境IntegratedDevelopmentEnvironment、IDEを提供する統合ソフトウェアであり、OS121上で稼働する。また、統合開発環境制御部122は、プロジェクト管理機能、バージョン管理機能等の、ソフトウェア開発に必要とされる各種機能を提供している。コンパイラ123は、補助記憶装置130等に格納されているソースコード131を読み出してオブジェクトコードに変換する処理であるコンパイルを実行するプログラムである。本実施形態のコンパイラ123は、後述するように、ソースコード131を直接オブジェクトコードに変換するほか、中間語コードに変換する機能を有している。エディタ124は、開発対象ソフトウェアのソースコード、あるいはオブジェクトコードを操作するために使用される、例えばテキストエディタである。中間語コード差分情報生成部125は、本実施形態の計算機システム100における主要な機能であるデータ処理内容変更箇所検出機能において、コンパイラ123がコンパイラオプションありの場合にソースコード131から生成した中間語コードと、コンパイラオプションなしの場合にソースコード131から生成した中間語コードとを比較してその差分情報を抽出する機能を備えるプログラムである。行ブロックリストテーブル126は、コンパイルしたソースコードと、生成された中間語コードとを対照して記録しているテーブルである。行ブロックリストテーブル126の構成例については後述する。差分情報テーブル127は、中間語コード差分情報生成部125が生成したコンパイラオプション有無による中間語コードのデータ処理変更箇所を、ソースコード131の行番号ソースコード131中のロケーションを示すロケーション情報と対照させて記録しているテーブルである。差分情報テーブル127の構成例については後述する。中間語コードオプションなし128A及び中間語コードオプションあり128Bは、ソースコード131からコンパイラ123がコンパイラオプションなし及びありの条件で生成した中間語コードであり、主記憶装置120内に一時的に格納される。次に、本実施形態において実施されるデータ処理変更箇所検出処理の概要について説明する。図2は、本実施形態によるデータ処理変更箇所検出処理の概要を示す模式図である。図中の白抜き矢印は、処理の進行を模式的に表している。まず、統合開発環境制御部122は補助記憶装置130からソースコード131を読み込んで、コンパイラ123に渡す。コンパイラ123は、コンパイラオプションなしの条件でソースコード131から生成した中間語コードオプションなし128A、及びコンパイラオプションありの条件でソースコード131から生成した中間語コードオプションあり128Bを統合開発環境制御部122に返す。統合開発環境制御部122は、受領したこれらの中間語コード128A、128Bを主記憶装置120に格納する。次いで、統合開発環境制御部122は、中間語コード差分情報生成部125を起動し、中間語コードオプションなし128A、及び中間語コードオプションあり128Bを主記憶装置120から読み出して行ブロックリストテーブル126を生成して比較し、差分情報テーブル127を生成して統合開発環境制御部122に渡す。統合開発環境制御部122はこの差分情報テーブル127をエディタ124に渡して、出力装置140を介してユーザに提示する。なお、差分情報テーブル127に記録されている情報の出力装置140を通じた出力処理は、エディタ124以外の部分、例えば統合開発環境制御部122が実行してもよい。また、差分情報テーブル127を生成する処理以降に代えて、例えばコンパイラオプション有無によって生成した中間語コード128A、128Bをダンプリスト等の出力形態で出力させるようにしてもよい。図3にソースコード131の一例を示している。図3のソースコード131には、行番号1~5と、それぞれに対する処理を示すコードが対応付けて記録されている。まず、行番号1では、浮動小数型変数Aが定義され、Aの初期値として1.5が設定される。行番号2では、整数型配列Bが定義される。定義される配列は、B[1]~B[10]の10個である。行番号3では、ループ処理が行われる。括弧内はループ処理の回数を示し、図3の例ではループ処理を10回反復して行うことを示している。行番号4には、行番号3のループ処理の内容が記述されている。具体的には、配列Bのi番目にAの値を代入する処理である。ここで、変数iは配列Bの添え字である。iは行番号3のループ処理によって1から10まで順に増加する。このループ処理により、配列B[1]~B[10]にAの値が代入される。ここで、変数Aが小数値を持つのに対し、配列B[i]には整数しか代入することができないため、変数Aの小数値を丸める処理が必要となる。例えば、丸め処理として切捨てを採用すれば、B[i]には数値1が代入され、丸め処理として四捨五入を採用すれば、B[i]には数値2が代入される。コンパイラ123は、この丸め処理として切捨てか四捨五入のいずれを採用するかを、コンパイラオプションによって指定することができる。次に、図3に例示したソースコード131からコンパイラ123が生成する中間語コードについて説明する。図4Aにコンパイラオプションなしの条件で生成された中間語コードの例を、図4Bにコンパイラオプションありの条件で生成された中間語コードの例をそれぞれ示している。コンパイラ123は、ソースコード131の意味解析を実行して図4A、図4Bに例示する構文木を生成する。以下、中間語コードの用語は、この得られた木構造の中間語コードを意味するものとする。図4Aを参照すると、ソースコード131は木構造で記述されたノードの集合として記述され、ルートrootノード400で開始される。中間語コードには、変換元であるソースコード131の各行頭を示す抽象表現である、行先頭ノード410、420、430、440が存在している。ソースコード131の行番号1の処理は、行先頭1ノード410以下に記述され、変数Aノード412に数値データ1.5ノード413を代入ノード411となっている。行先頭1ノード410の直下にある代入ノード411は、行先頭1ノードの子ノードと定義される。一方、変数Aノード412と数値1.5ノード413とは、兄弟ノードであると定義され、上位の変数Aノード412が兄ノードとなる。ノード411の代入処理では、第2子ノード弟ノード413の値1.5が第1子ノード兄ノード412の変数Aに代入される。ソースコード131の行番号2では、配列B[i]の定義のみが行われるため、中間語コードで表す要素はない。このため、行番号2に対応する行先頭2ノード420の子ノードにはダミーdummyのノード421を設けておく。これは、後述する中間語コードの比較を行ブロック単位で木構造中間語コードを構成する部分木単位で行うためである。これにより、全ての行先頭ノードには必ず1つ以上の子ノードが付属することになる。ソースコード131の行番号3では、行先頭3ノード430の下に、ループ処理実行を指示するノードノード431が存在する。ループ処理は、ソースコード131に関して説明したように、自身に付属する第1子ノードノード432の回数分だけ第2子ノードノード440に定義されている処理を繰り返し実行する。図4Aの例では、ループ処理ノードノード431の第2子ノードノード440に行先頭4が記述されているので、ループ処理は、行先頭4ノードノード440から末尾の整数切捨てノードノード445Aまでに記述されている代入処理を繰り返し実行する。ソースコード131の行番号4では、前記のように、行先頭4ノードノード440の下に、代入処理実行を指示するノードノード441が存在する。代入処理では、第1子ノードである配列B[i]ノードノード442に、第2子ノード配列B[i]ノードの弟ノードである型変換処理ノードノード443によって型変換処理された数値データが代入される。型変換処理では、型変換処理ノードノード443の下にある第2子ノードノード445Aで定義されている丸め方法に従って第1子ノードノード445Aの兄ノードであるノード444に記述されている変数Aの型を変換する。以上が、図3に例示したソースコード131を、コンパイラオプションなしの条件でコンパイルした場合に生成される中間語コードの構成例である。一方、図3に例示したソースコード131を、コンパイラオプションありの条件でコンパイルした場合に生成される中間語コードの構成例を図4Bに示している。図4Bに示すコンパイラオプションありの場合の中間語コードは、ノード400からノード444まで、図4Aのコンパイラオプションなしの場合と同一であるが、型変換処理ノードノード443直下にある第2子ノードである整数四捨五入ノードノード445Bが図4Aのノード445Aである整数切捨てノードと異なる。このノード445Aとノード445Bとの差異により、図4Aの型変換処理ノード443では変数Aの小数データは切り捨てられ、図4Bの型変換処理ノード443では変数Aについては小数点以下第1位の四捨五入による整数化が行われる。この差異は、ソースコード131の行番号4でのコンパイラオプションの有無に起因するものであるから、以下、この中間語コード上における差異と起因するソースコード131の行番号とを対応付ける方法を説明する。まず、コンパイラオプションあり及びなしの両条件で生成した中間語コードを比較してその差異を検出する処理の前提となる構成を説明する。図5は、本実施形態における行ブロックの概念を示す図である。本実施形態において、行ブロックは、原則として該当行の行先頭ノード図5の行先頭3ノードノード430から、その下位に配置されている子ノード全てを含む。ただし、子ノードの中に該当行以外の行先頭ノード図5の行先頭4ノードノード440が検出された場合には、その検出された行先頭ノード以下の子ノードを除外する。従って、ソースコード131の行番号3に対応する行ブロックは、図5に示すように行先頭3ノードノード430から行先頭4ノードノード440までのノードの集合となる。一方、図6には、ソースコード131コンパイラオプションなしの行番号4に対応する行ブロックを例示している。図6の例では、行先頭4ノードノード440以下のノード群には他の行先頭ノードが含まれていない。従って、ソースコード131の行番号4に対応する行ブロックは、行先頭4ノードノード440から整数切捨てノードノード445Aまでのノードの集合として定義される。なお、以上のように、行ブロックはコンパイラ123によって生成された中間語コードを中間語コード差分情報生成部125が解析する際に利用する、中間語コードのノードをグループ化する単位であって、行ブロック自体を表すデータは存在しない。次に、中間語コード差分情報生成部125が中間語コードの解析及び比較処理に用いる行ブロックリストテーブル126について説明する。行ブロックリストテーブル126は、各行ブロックに含まれるノードの内容である行ブロックリスト1262を、ソースコード131の対応する行番号1261と対応付けて記録しているテーブルである。本実施形態の行ブロックリストテーブル126に記録されている行ブロックリスト1262の内容は、行ブロックポインタエントリを順次格納してなる単方向リスト構造をとなっている。行ブロックポインタエントリは、行ブロックリスト1262に含まれているノードと、そのノードの次のノードが格納されている主記憶装置120内のアドレスを指示するポインタとの組み合わせを順に記録してなる。ソースコード131の行番号1に対応する行ブロックでは、ノードの内容である代入、A、及び1.5について、それぞれ自ノード及び次ノードが格納されているアドレスが対応付けられる。なお、行ブロックの最終ノードには、次ノードへのポインタが対応付けられないので、例えば無効なデータnullを対応付けて記録しておく。図8には行ブロックリストテーブル126の要素である行ブロックポインタエントリのデータ構造例を示している。中間語コード差分情報生成部125は、コンパイラオプションありとなしの場合でそれぞれ生成した中間語コード128A、128Bについて作成された行ブロックリストテーブル126に記録されている行ブロックポインタエントリに従って主記憶装置120に格納されている各ノードデータを比較していくことで、ソースコード131のいずれの行番号の処理がコンパイラオプション有無によって影響を受けるか検出することができる。中間語コード差分情報生成部125が実行する具体的な処理内容については後述する。図9に、中間語コード差分情報生成部125が生成して主記憶装置120に格納する差分情報テーブル127の構成例を示している。差分情報テーブル127は、項番1271、行番号1272、及びオプション種別1273を対応付けて格納しており、中間語コード128A、128Bを比較して抽出した差分情報を示している。項番1271は差分情報テーブル127の各レコードに付された識別番号、行番号1272は、中間語コード128A、128Bの差異が検出された行ブロックに対応するソースコード131の行番号、オプション種別1273は、中間語コード128A、128Bの差異を生じさせたコンパイラオプションの種別を示している。図9の例では、図4A、図4Bに例示した中間語コード128A、128Bについて、中間語コード差分情報生成部125が、ソースコード131の行番号4において四捨五入オプションを付加したことによる差異を検出したことが項番1に記録されている。図10に、計算機システム100の出力装置140が、例えば液晶ディスプレイ等の表示デバイスに出力する表示画面例1000を示している。図10の表示画面例1000では、ソースコード131のイメージで、行番号1010と対応する処理コード1020が対応付けられて表示されており、ソースコード131上のコンパイラオプション有無による差異検出箇所1021が、ハイライト表示などによって示されている。次に、以上の構成により実現される、本実施形態のデータ処理内容変更箇所検出方法の具体的なデータ処理について説明する。まず、計算機システム100の基本的なデータ処理を制御する統合開発環境制御部122によるデータ処理内容について説明する。図11に、統合開発環境制御部122によるデータ処理フローの一例を示している。本実施形態のデータ処理変更箇所検出処理は、計算機システム100のコンパイラ123、中間語コード差分情報生成部125、エディタ124が連携して実行される。その際に、統合開発環境制御部122は、コンパイラ123、中間語コード差分情報生成部125、エディタ124の連携を仲介する。まず、統合開発環境制御部122は、入力装置150等の入力デバイスあるいは通信ネットワークを介してユーザからデータ処理変更箇所検出処理開始の指示を受け取るS1101。この指示には、補助記憶装置130に格納されているソースコード131の指定、及びコンパイラオプションの指定を含む。指示を受けた統合開発環境制御部122は、指示に含まれているコンパイラオプションをオプションXとして主記憶装置120に格納するS1102。次いで、統合開発環境制御部122は、指定されたソースコード131を、コンパイラオプションXを指定せずにコンパイラ123によりコンパイルさせ、中間語コード128Aを生成させた後、これを主記憶装置120に格納するS1103。次いで、統合開発環境制御部122は、指定されたソースコード131を、コンパイラオプションXを指定してコンパイラ123によりコンパイルさせ、中間語コード128Bを生成させた後、これを主記憶装置120に格納するS1104。統合開発環境制御部122は、主記憶装置120に格納されている中間語コード128A、128Bを中間語コード差分情報生成部125に読み込ませて両者の差分情報を生成させ、その差分情報に基づいて差分情報テーブル127を作成して主記憶装置120に格納させるS1105。統合開発環境制御部122は、エディタ124に差分情報テーブル127が作成されたことを通知し、出力装置140を通じて出力させるS1106。以上の統合開発環境制御部122によるデータ処理によれば、コンパイラオプション有無によってソースコード131のデータ処理が変更される個所コンパイラオプションによるソースコード131の効果範囲を簡単に検出してユーザに知らせることができる。次に、前記した統合開発環境制御部122による制御の下に、中間語コード差分情報生成部125が実行するデータ処理変更箇所検出処理について説明する。図12Aに、中間語コード差分情報生成部125によって実行されるデータ処理全体フローを示している。まず、中間語コード差分情報生成部125は、主記憶装置120に格納されている、コンパイラオプションなしで生成された中間語コード128Aを中間語コードIとして取得しS1200、この中間語コードIから行ブロックリストテーブル126を生成するS1300。次いで、中間語コード差分情報生成部125は、主記憶装置120に格納されている、コンパイラオプションありで生成された中間語コード128Bを中間語コードIとして取得しS1400、この中間語コードIから行ブロックリストテーブル126を生成するS1300。最後に、中間語コード差分情報生成部125は、S1300で生成した中間語コード128A、128Bの行ブロックリストテーブル126を比較して差分情報テーブル127を生成し処理を終了するS1500。次に、図12Aの全体処理フローを構成している各データ処理ステップについて順次説明する。図12Bに、S1300の行ブロックリストテーブル生成処理フローの一例を示している。行ブロックリストテーブル生成処理は、中間語コード差分情報生成部125が中間語コード128A、128Bを比較して差分情報を抽出する際に使用する行ブロックリストテーブル126を、コンパイラ123が生成した各中間語コード128A、128Bから生成する。なお、以下に参照する処理フローで使用される変数名については、順次説明する。まず、中間語コード差分情報生成部125は、変数curにテーブル生成の対象となる中間語コードI128のrootノードを代入するS1310。ここで、変数curは、生成された中間語コード128を構成している各ノードが対応付けられる変数であり、変数curを比較することで中間語コード128におけるノードの差異が検出される。中間語コード差分情報生成部125は、rootノードが行先頭ノードであるか判定しS1320、行先頭ノードであると判定した場合S1320、Yes、後述する行ブロックリストテーブル126へのデータ追加処理を実行するS1330。行先頭ノードでないと判定した場合S1320、No、中間語コード差分情報生成部125は、S1340へ処理を進める。S1340で、中間語コード差分情報生成部125は、変数curに子ノードが存在するか判定するS1340。子ノードが存在すると判定した場合S1340、Yes、中間語コード差分情報生成部125は、検出された変数curの子ノードを変数curとしてS1320に処理を戻すS1341。子ノードが存在しないと判定した場合S1340、No、中間語コード差分情報生成部125は、S1350に処理を進める。S1350で、中間語コード差分情報生成部125は、変数curに兄弟ノードが存在するか判定するS1350。兄弟ノードが存在すると判定した場合S1350、Yes、中間語コード差分情報生成部125は、検出された変数curの兄弟ノードを変数curとしてS1320に処理を戻すS1351。兄弟ノードが存在しないと判定した場合S1350、No、中間語コード差分情報生成部125は、S1360に処理を進める。S1360で、中間語コード差分情報生成部125は、変数curに親ノードが存在するか判定するS1360。親ノードが存在すると判定した場合S1360、Yes、中間語コード差分情報生成部125は、検出された変数curの親ノードを変数curとしてS1350に処理を戻すS1361。親ノードが存在しないと判定した場合S1360、No、中間語コード差分情報生成部125は処理を終了する。以上の処理により、ソースコード131を構成しているすべての行番号に対応するノードをすべて含む行ブロックリストテーブル126が生成される。次に、図12Bの行ブロックリストテーブル126の生成処理フローにおける、データ追加処理S1330について説明する。この処理フローでは、図8に例示した行ブロックポインタエントリを使用して、行ブロックリストテーブル126に中間語コード128のデータを追加する。まず、中間語コード差分情報生成部125は、変数nに行先頭ノードのソースコード131における行番号を代入する。変数nは、行ブロックリストテーブル126の行番号1261となる。次いで、中間語コード差分情報生成部125は、変数newentryの変数ptrに行先頭ノードのアドレスを、変数newentryの変数nextに値nullを代入するS1331。変数newentryは新規の行ブロックポインタエントリを、変数ptrは中間語コード128のノードが格納されているアドレスを、変数nextは中間語コード128の次のノードが格納されているアドレスを、それぞれ示している。中間語コード差分情報生成部125は、変数nと一致する行番号1261が行ブロックリストテーブル126に存在するか判定しS1333、存在すると判定した場合S1333、Yes、処理をS1334に進める。変数nと一致する行番号1261が行ブロックリストテーブル126に存在しないと判定した場合S1333、No、中間語コード差分情報生成部125は、変数nに対応する行番号1261の行ブロックリスト1262の項目を行ブロックリストテーブル126に追加しS1335、変数newentryの変数ptrに記録されているアドレスを追加した項目のリストに記録して処理を終了するS1336。S1334では、変数nに一致する行番号に対応するリストの先頭エントリに記録されているアドレスを、変数curentryに代入する。中間語コード差分情報生成部125は、curentryであるエントリについて記録されている変数nextの値がnullであるか判定しS1337、nullであると判定した場合S1337、Yes、リストnewentryに記録されているアドレスをcurentryの変数nextに代入して処理を終了するS1339。変数nextの値がnullでないと判定した場合S1337、No、中間語コード差分情報生成部125は、リストcurentryについて変数nextのアドレスをcurentryとしてS1337に処理を戻す。以上の処理により、行ブロックリストテーブル126に、ソースコード131の新たな行番号に対応する行ブロックリストが生成され、行ブロックリストテーブル126に記録される。次に、図12Bで作成した行ブロックリストテーブル126を使用する、差分情報テーブル127生成処理について説明する。図12Dに、差分情報テーブル127生成処理フローの一例を示している。まず、中間語コード差分情報生成部125は、変数idx及び変数didxに、それぞれ初期値として1を代入するS1510。変数idxは、図8の行ブロックリストテーブル126の行番号1261を、変数didxは、図9の差分情報テーブル127における項番1271を表している。次いで、中間語コード差分情報生成部125は、変数idxの値が行ブロックリストテーブル126に記録されている項目数レコード数以下であるか判定しS1520、項目数以下であると判定した場合S1520、Yes、処理をS1521へ進める。変数idxの値が項目数を超えていると判定した場合S1520、No、中間語コード差分情報生成部125は、すべての行ブロックリストについて差分情報テーブル127への反映が完了したものとして処理を終了する。S1521で、中間語コード差分情報生成部125は、行ブロックリストテーブル126のidx番目の項目に記録されている行ブロックリスト1262を変数itemとして取得する。中間語コード差分情報生成部125は、変数linenumに変数itemに対応する行番号1261を代入するS1522。変数linenumは、行ブロックリストテーブル126における行番号1261、すなわちソースコード131の行番号を示している。次に、中間語コード差分情報生成部125は、変数itemに対応する行ブロックリスト1262の先頭エントリを変数baseentryに、変数baseentryの変数nextに対応する項目を変数compentryに代入するS1523、S1524。変数baseentryは他のノードと比較されるノードのアドレスを、変数compentryは変数baseentryのノードと比較される他のノードのアドレスを示している。中間語コード差分情報生成部125は、変数compentryの値がnullであるか判定し、nullでないと判定した場合S1530、No、S1535の行ブロック比較処理を実行する。行ブロック比較処理については後述する。S1540では、中間語コード差分情報生成部125は、S1535の行ブロック比較処理から返された差分フラグの状態がONであるか判定し、ONでないと判定した場合S1540、No、変数compentryの変数nextの値を変数compentryに代入するS1541。次いで、中間語コード差分情報生成部125は、変数compentryに記録されている値がnullであるか判定しS1550、nullであると判定した場合S1550、Yes、次の行ブロックポインタエントリについて処理を行うために変数idxを1だけ増分してS1520へ処理を戻す。変数compentryに記録されている値がnullでないと判定した場合S1550、No、中間語コード差分情報生成部125は、処理をS1535へ戻す。一方、S1530でcompentryに対応する値がnullであると判定した場合S1530、Yes、あるいはS1540で差分フラグがONであると判定した場合、中間語コード差分情報生成部125は、差分情報テーブル127のdidx番目の項目を変数ditemに対応付けるS1531。次いで、中間語コード差分情報生成部125は、変数ditemで項番1271が特定される差分情報テーブル127のレコードの行番号1272、オプション種別1273に、変数linenum、及びオプションXを記録するS1532、S1533。中間語コード差分情報生成部125は、didxを1だけ増分しS1534、処理をS1551に進める。以上の処理により、行ブロックリストテーブル126から検出されたコンパイラオプション有無によるデータ処理変更箇所が、ソースコード131の行番号と対応付けて差分情報テーブル127に記録される。次に、中間語コード差分情報生成部125によって実行される行ブロック比較処理図12DのS1535について説明する。まず、中間語コード差分情報生成部125は、比較対照する中間語コード128に差異があることを示すフラグである差分フラグを初期状態であるOFFとするS15351。次いで、中間語コード差分情報生成部125は、変数nodeA、nodeBに、baseentryの行ブロック先頭ノード、compentryの行ブロック先頭ノードをそれぞれ入力しS15352、nodeAの内容とnodeBの内容とが一致するか判定するS15353。一致しないと判定した場合S15353、No、中間語コード差分情報生成部125は、差分フラグをONとして処理を差分情報テーブル生成処理に返すS15367。nodeAの内容とnodeBの内容とが一致すると判定した場合S15353、Yes、中間語コード差分情報生成部125は、nodeAが変数linenumと異なる行番号のノードであるか判定し、異なる行番号のノードであると判定した場合S15354、Yes、処理をS15362へ進める。nodeAが変数linenumと異なる行番号のノードでないと判定した場合S15354、No、中間語コード差分情報生成部125は、nodeA、nodeB両方に子ノードが存在するか判定し、存在すると判定した場合S15355、Yes、nodeAの子ノード、nodeBの子ノードを、それぞれ新たなnodeA、nodeBとしてS15356、処理をS15352へ戻す。一方、中間語コード差分情報生成部125は、nodeA、nodeBのいずれかに子ノードが存在しないと判定した場合S15355、No、さらにnodeA、nodeBのいずれにも子ノードが存在しないか判定するS15361。いずれにも子ノードが存在しないと判定した場合S15361、Yes、中間語コード差分情報生成部125は、nodeA、nodeB両方に兄弟ノードが存在するか判定しS15362、存在すると判定した場合S15362、Yes、nodeAの兄弟ノード、nodeBの兄弟ノードを、それぞれ新たなnodeA、nodeBとしてS15363、処理をS15352へ戻す。一方、中間語コード差分情報生成部125は、nodeA、nodeBのいずれかに子ノードが存在しないと判定した場合S15361、No、差分フラグをONとして処理を差分情報テーブル生成処理に戻す。S15362でnodeA、nodeBのいずれかに兄弟ノードが存在しないと判定した場合S15362、No、中間語コード差分情報生成部125は、さらにnodeA、nodeBのいずれにも兄弟ノードが存在しないか判定するS15364。いずれにも兄弟ノードが存在しないと判定した場合S15364、Yes、中間語コード差分情報生成部125は、nodeAの親ノードがlinenumの行先頭ノードであるか判定しS15365、linenumの行先頭ノードでないと判定した場合S15365、No、当該行ブロックについての比較処理を終了する。一方、nodeB両方に兄弟ノードが存在するか判定しS15362、存在すると判定した場合S15362、Yes、nodeAの兄弟ノード、nodeBの兄弟ノードを、それぞれ新たなnodeA、nodeBとしてS15363、処理をS15352へ戻す。また、S15364でnodeA、nodeBのいずれかに兄弟ノードが存在しないと判定した場合S15364、No、中間語コード差分情報生成部125は、差分フラグをONとして処理を差分情報テーブル生成処理に戻す。また、中間語コード差分情報生成部125は、S15365でnodeAの親ノードがlinenumの行先頭ノードであると判定した場合S15365、Yes、nodeAの親ノード、nodeBの親ノードを、それぞれ新たなnodeA、nodeBとしてS15366、処理をS15362へ戻す。以上の処理により、ソースコード131の各行番号に対応する行ブロックについて、コンパイラオプション有無による差異が存在するかを判定することができる。次に、エディタ124によるデータ処理変更箇所検出処理の結果出力処理について説明する。図13に、図12A~図12Eに例示したデータ処理変更箇所検出処理によってソースコード131の行番号と対応して特定された中間語コード128上の差異を、図10の表示画面例1000の形態で出力する処理フローの一例を示している。まず、エディタ124は、変数idxに初期値である1を代入するS1601。次いで、エディタ124は、変数idxの値が差分情報テーブル127に含まれる総項数総レコード数を超えているか判定しS1602、超えていると判定した場合S1602、No、差分情報テーブル127に含まれるすべてのレコードについて処理を完了したものとして本処理を終了する。S1602で、変数idxの値が差分情報テーブル127に含まれる総項数以下であると判定した場合S1602、Yes、エディタ124は、差分情報テーブル127のidx番目のレコードを変数itemとしS1603、項目itemに含まれている行番号を変数linenumとするS1604。次いで、エディタ124は、出力装置140を通じて表示されるソースコード131のlinenum番目の行に、コンパイラオプション有無により生じた差異が存在することを示すハイライト表示等の差別化処理を行うS1605。エディタ124は、変数idxの値を1だけ増分してS1606、差分情報テーブル127の次レコード以降についてS1602以降の処理を実行する。以上の処理により、コンパイラオプション有無によってソースコード131が影響を受ける効果範囲をユーザに対して明確に提示することができる。上記した本実施形態によるデータ処理変更箇所検出処理の効果をより明確にするため、以下にその一実施例を示して説明する。本実施例では、あるデータ処理システムを、プラットフォームAからプラットフォームBへ移行させる、マイグレーション処理を実施する場合を想定する。このマイグレーション時に、データ処理システムを構成しているいずれかの処理FuncZにおいて、プラットフォームBにおいて処理を実行させた場合に結果差分が発生したとする。また、データ処理システムプログラムをプラットフォームBのオブジェクトコードに変換するコンパイラには、プラットフォームAとの互換性を維持するためのオプションであるcompatiAが提供されているものとする。この場合、compatiAオプションを適用した場合に、問題となっているFuncZ処理以外の処理に影響が及ぶかを検証し、問題がないことを確認しなければならない。従来技術によれば、データ処理システムプログラムを実際にプラットフォームB対応のコンパイラによりコンパイルし、テストデータによってデータ処理システムを動作させて結果の妥当性を検証する作業を行わなければならない。この場合、データ処理システムを実際に動作させなければならないため、そのためのコスト、労力が過大となる場合がある。さらに、検証用テストデータによって検証結果が変わるおそれがあり、検証に十分耐えるテストデータを用意することにも一定の困難が生じる。これに対して本実施形態に関わるデータ処理変更箇所検出処理によれば、実際にデータ処理システムをどうさせることなく、compatiAオプション有無の条件によって統合開発環境においてコンパイルを実行するのみでオブジェクトコードに変更を生じさせるソースコードの効果範囲を明確に検出することができるため、従来技術に付随した課題を解決することができるものである。なお、以上説明した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその等価物も含まれる。