(57)【要約】【課題】子ソースに含まれる基本項目についても考慮し、ＣＯＰＹ句を用いるＣＯＢＯＬソースプログラムから変換されたＪａｖａ（登録商標）ソースプログラムのメンテナンス性を向上する。【解決手段】第１のＣＯＢＯＬソースプログラムと、第１のＣＯＢＯＬソースプログラムを挿入するためのＣＯＰＹ句を含む第２のＣＯＢＯＬソースプログラムとを含む、ＣＯＢＯＬソースプログラム群をＪａｖａソースプログラム群に変換するプログラム変換システムは、レベル番号変換規則に基づいて、ＣＯＢＯＬソースプログラム内のレベル番号を変換する事前処理部を備える。事前処理部は、第１のＣＯＢＯＬソースプログラムのうち、最上位レベルのデータ項目として基本項目が含まれるものに対して、当該第１のＣＯＢＯＬソースプログラムで定義された基本項目の１レベル上位の集団項目を先頭行に追加する。【選択図】図３
2020042321.tif 000002
【特許請求の範囲】
【請求項１】
第１のＣＯＢＯＬソースプログラムと第２のＣＯＢＯＬソースプログラムとを含む、ＣＯＢＯＬソースプログラム群をＪａｖａソースプログラム群に変換するプログラム変換システムであって、前記第１のＣＯＢＯＬソースプログラムは第１のデータ定義を含み、前記第２のＣＯＢＯＬソースプログラムは前記第１のＣＯＢＯＬソースプログラムを挿入するためのＣＯＰＹ句を含み、
前記ＣＯＢＯＬソースプログラム群について、レベル番号変換規則に基づいて、ＣＯＢＯＬソースプログラム内のレベル番号を変換して、疑似ＣＯＢＯＬソースプログラムを得る事前処理部であって、前記レベル番号変換規則は、２以上４９以下のレベル番号を、変換前後で項目間のレベル番号の大小関係が変わらず、かつ、異なるレベル番号間の差異が２以上になるように変換するための規則であり、前記事前処理部は、前記第１のＣＯＢＯＬソースプログラムのうち、最上位レベルのデータ項目として基本項目が含まれるものに対して、当該第１のＣＯＢＯＬソースプログラムで定義された前記基本項目の１レベル上位の集団項目を先頭行に追加する、事前処理部と、
前記第１のＣＯＢＯＬソースプログラムを前記事前処理部が処理して得た第１の疑似ＣＯＢＯＬソースプログラムと、前記第２のＣＯＢＯＬソースプログラムを前記事前処理部が処理して得た第２の疑似ＣＯＢＯＬソースプログラムとから、前記第２の疑似ＣＯＢＯＬソースプログラムに前記第１の疑似ＣＯＢＯＬソースプログラムが挿入され、当該挿入箇所を示す第１のコードが追加された、第３のＣＯＢＯＬソースプログラムを生成する挿入部と、
前記第３のＣＯＢＯＬソースプログラムを、所定の変換規則に基づいて、前記第１のコードに対応する第２のコードを含む、第１のＪａｖａソースプログラムに変換する変換部と、
前記第２のコードに基づいて、前記第１のＪａｖａソースプログラムにおける前記第１のデータ定義に対応する第１の範囲に、集団項目に対応する第１のクラスを定義する第３のコードが存在するかどうかを判定する集団項目定義判定部と、
前記第３のコードが存在する場合、前記第１のクラスを外部クラスとするための第２のＪａｖａソースプログラムと、前記第１のＪａｖａソースプログラムから前記第３のコードが削除され、前記外部クラスをインポートする第４のコードが追加された、第３のＪａｖａソースプログラムとを生成する分離部と、
を備えるプログラム変換システム。
【請求項２】
前記レベル番号変換規則は、変換後のレベル番号が、６６、７７、８８のいずれかの値にならないように、前記ＣＯＢＯＬソースプログラム内のレベル番号を変換するための規則である、請求項１に記載のプログラム変換システム。
【請求項３】
前記事前処理部は、前記第１のＣＯＢＯＬソースプログラム名に所定の接頭辞を付けたものを集団項目名として、前記集団項目を追加する、請求項１又は２に記載のプログラム変換システム。
【請求項４】
請求項１から３のいずれか一項に記載のプログラム変換システムであって、
前記第１のコードは、コメントである、
プログラム変換システム。
【請求項５】
請求項１から４のいずれか一項に記載のプログラム変換システムであって、
前記第２のコードは、コメントである、
プログラム変換システム。
【請求項６】
前記事前処理部は、再帰的にＣＯＰＹ句を含む場合に、ＣＯＰＹ句を含まない末端の疑似ＣＯＢＯＬ子ソースに至るまでに存在する親子関係にあるソース同士でそれぞれのソース中のデータ項目の最上位レベルを比較し、そのすべての親子関係において疑似ＣＯＢＯＬ子ソース中のデータ項目の最上位レベルが、疑似ＣＯＢＯＬ親ソース中のデータ項目の最上位レベルよりも下位である場合に、前記再帰的なＣＯＰＹ句によって挿入される複数の疑似ＣＯＢＯＬ子ソースにおいて集団項目の追加を行う、請求項１から５のいずれか一項に記載のプログラム変換システム。
【請求項７】
第１のＣＯＢＯＬソースプログラムと第２のＣＯＢＯＬソースプログラムとを含む、ＣＯＢＯＬソースプログラム群をＪａｖａソースプログラム群に変換するプログラム変換方法であって、前記第１のＣＯＢＯＬソースプログラムは第１のデータ定義を含み、前記第２のＣＯＢＯＬソースプログラムは前記第１のＣＯＢＯＬソースプログラムを挿入するためのＣＯＰＹ句を含み、コンピュータが、
前記ＣＯＢＯＬソースプログラム群について、レベル番号変換規則に基づいて、ＣＯＢＯＬソースプログラム内のレベル番号を変換して、疑似ＣＯＢＯＬソースプログラムを得ることであって、前記レベル番号変換規則は、２以上４９以下のレベル番号を、変換前後で項目間のレベル番号の大小関係が変わらず、かつ、異なるレベル番号間の差異が２以上になるように変換するための規則であり、前記事前処理部は、前記第１のＣＯＢＯＬソースプログラムのうち、最上位レベルのデータ項目として基本項目が含まれるものに対して、当該第１のＣＯＢＯＬソースプログラムで定義された前記基本項目の１レベル上位の集団項目を先頭行に追加する、ことと、
前記第１のＣＯＢＯＬソースプログラムを前記事前処理部が処理して得た第１の疑似ＣＯＢＯＬソースプログラムと、前記第２のＣＯＢＯＬソースプログラムを前記事前処理部が処理して得た第２の疑似ＣＯＢＯＬソースプログラムとから、前記第２の疑似ＣＯＢＯＬソースプログラムに前記第１の疑似ＣＯＢＯＬソースプログラムが挿入され、当該挿入箇所を示す第１のコードが追加された、第３のＣＯＢＯＬソースプログラムを生成することと、
前記第３のＣＯＢＯＬソースプログラムを、所定の変換規則に基づいて、前記第１のコードに対応する第２のコードを含む、第１のＪａｖａソースプログラムに変換することと、
前記第２のコードに基づいて、前記第１のＪａｖａソースプログラムにおける前記第１のデータ定義に対応する第１の範囲に、集団項目に対応する第１のクラスを定義する第３のコードが存在するかどうかを判定することと、
前記第３のコードが存在する場合、前記第１のクラスを外部クラスとするための第２のＪａｖａソースプログラムと、前記第１のＪａｖａソースプログラムから前記第３のコードが削除され、前記外部クラスをインポートする第４のコードが追加された、第３のＪａｖａソースプログラムとを生成することと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム変換システムに関する。
【背景技術】
【０００２】
基幹システムのオープン化に伴い、ＣＯＢＯＬソースプログラムのＪａｖａ（登録商標）ソースプログラムへの変換が注目されている。
【０００３】
ＣＯＢＯＬでは、あるソースプログラム（「親ソース」と呼ぶ。）においてＣＯＰＹ句を用いることにより、当該ソースプログラムのコンパイル時に、別のソースプログラム（「子ソース」と呼ぶ。）を挿入することができる。
【０００４】
より具体的には、例えば、子ソースに記述されたデータ定義のソースコードを、親ソースのＣＯＰＹ句が記述された場所に挿入することができる。これにより、子ソースに記述されたデータ定義を、複数のソースプログラムで共用することが可能となり、メンテナンス性が向上する。
【０００５】
特許文献１では、ＣＯＰＹ句を用いたＣＯＢＯＬソースプログラムから変換されたＪａｖａソースプログラムにおいて、ＣＯＰＹ句によって挿入される子ソース中の集団項目に相当するクラスを外部クラス化し、Ｊａｖａソースプログラムのメンテナンス性を向上させる手法が提示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−１１５０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
例えば、子ソースで、複数の基本項目が定義され、親ソースにおいてＣＯＰＹ句を用いることにより、子ソースに記述されたデータ定義を利用する場合がある。しかし特許文献１では、子ソースに含まれる集団項目に関する手法のみが提示されており、子ソースに含まれる基本項目については、Ｊａｖａソースプログラムのメンテナンス性を向上させることができなかった。
【０００８】
本発明はこのような事情に鑑みてなされたものであり、子ソースに含まれる基本項目についても考慮し、ＣＯＰＹ句を用いるＣＯＢＯＬソースプログラムから変換されたＪａｖａソースプログラムのメンテナンス性を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様に係る、第１のＣＯＢＯＬソースプログラムと第２のＣＯＢＯＬソースプログラムとを含む、ＣＯＢＯＬソースプログラム群をＪａｖａソースプログラム群に変換するプログラム変換システムであって、第１のＣＯＢＯＬソースプログラムは第１のデータ定義を含み、第２のＣＯＢＯＬソースプログラムは第１のＣＯＢＯＬソースプログラムを挿入するためのＣＯＰＹ句を含む、プログラム変換システムは、ＣＯＢＯＬソースプログラム群について、レベル番号変換規則に基づいて、ＣＯＢＯＬソースプログラム内のレベル番号を変換して、疑似ＣＯＢＯＬソースプログラムを得る事前処理部であって、レベル番号変換規則は、２以上４９以下のレベル番号を、変換前後で項目間のレベル番号の大小関係が変わらず、かつ、異なるレベル番号間の差異が２以上になるように変換するための規則であり、事前処理部は、第１のＣＯＢＯＬソースプログラムのうち、最上位レベルのデータ項目として基本項目が含まれるものに対して、当該第１のＣＯＢＯＬソースプログラムで定義された基本項目の１レベル上位の集団項目を先頭行に追加する、事前処理部と、第１のＣＯＢＯＬソースプログラムを事前処理部が処理して得た第１の疑似ＣＯＢＯＬソースプログラムと、第２のＣＯＢＯＬソースプログラムを事前処理部が処理して得た第２の疑似ＣＯＢＯＬソースプログラムとから、第２の疑似ＣＯＢＯＬソースプログラムに第１の疑似ＣＯＢＯＬソースプログラムが挿入され、当該挿入箇所を示す第１のコードが追加された、第３のＣＯＢＯＬソースプログラムを生成する挿入部と、第３のＣＯＢＯＬソースプログラムを、所定の変換規則に基づいて、第１のコードに対応する第２のコードを含む、第１のＪａｖａソースプログラムに変換する変換部と、第２のコードに基づいて、第１のＪａｖａソースプログラムにおける第１のデータ定義に対応する第１の範囲に、集団項目に対応する第１のクラスを定義する第３のコードが存在するかどうかを判定する集団項目定義判定部と、第３のコードが存在する場合、第１のクラスを外部クラスとするための第２のＪａｖａソースプログラムと、第１のＪａｖａソースプログラムから第３のコードが削除され、外部クラスをインポートする第４のコードが追加された、第３のＪａｖａソースプログラムとを生成する分離部と、を備える。
【００１０】
なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、１つの「部」や装置が有する機能が２つ以上の物理的手段や装置により実現されても、２つ以上の「部」や装置の機能が１つの物理的手段や装置により実現されてもよい。
【発明の効果】
【００１１】
本発明によれば、子ソースに含まれる基本項目についても考慮し、ＣＯＰＹ句を用いるＣＯＢＯＬソースプログラムから変換されたＪａｖａソースプログラムのメンテナンス性を向上させることが可能となる。
【図面の簡単な説明】
【００１２】
【図１】プログラム変換が行われるシステム全体の概略を示す図である。
【図２】プログラム変換システム１００が備える機能の一例を示すブロック図である。
【図３】プログラム変換システム１００におけるプログラム変換処理の流れを示す図である。
【図４Ａ】ＣＯＢＯＬ親ソース及びＣＯＢＯＬ子ソースの例を示す図である。
【図４Ｂ】図４Ａに示すＣＯＢＯＬ親ソース及びＣＯＢＯＬ子ソースを事前処理した疑似ＣＯＢＯＬ親ソース及び疑似ＣＯＢＯＬ子ソースの例を示す図である。
【図４Ｃ】図４Ｂ（１）に示す疑似ＣＯＢＯＬ親ソースに、図４Ｂ（２）に示す疑似ＣＯＢＯＬ子ソースを挿入した、挿入後疑似ＣＯＢＯＬソースの例を示す図である。
【図４Ｄ】図４Ｃに示す挿入後疑似ＣＯＢＯＬソースを変換したＪａｖａソースの例を示す図である。
【図４Ｅ】図４Ｄに示すＪａｖａソースから分離されたＪａｖａ親ソースの例を示す図である。
【図４Ｆ】図４Ｅに示すＪａｖａソースから分離されたＪａｖａ子ソースの例を示す図である。
【図５】プログラム変換システム１００における変換処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の一実施形態について説明する。図１は、プログラム変換が行われるシステム全体の概略を示す図である。本システムでは、プログラム変換システム１００により、ホストコンピュータ１１０で稼働するプログラムが、変換プログラム実行システム１２０で稼働するプログラムに変換される。具体的には、ホストコンピュータ１１０では、ＣＯＢＯＬプログラム１３０が動作している。プログラム変換システム１００は、ＣＯＢＯＬプログラム１３０のソースコードであるＣＯＢＯＬソースプログラム１４０をＪａｖａソースプログラム１５０に変換する。Ｊａｖａソースプログラム１５０は、コンパイルされてＪａｖａバイトコード１６０となる。そして、Ｊａｖａバイトコード１６０は、変換プログラム実行システム１２０で実行される。
【００１４】
図２は、プログラム変換システム１００が備える機能の一例を示すブロック図である。プログラム変換システム１００は、変換規則記憶部２００、プログラム変換部２１０、ＣＯＢＯＬソースプログラム記憶部２２０、及びＪａｖａソースプログラム記憶部２３０を備える。また、プログラム変換部２１０は、事前処理部２１１、挿入部２１２、変換部２１３、集団項目定義判定部２１４、及び分離部２１５を含む。プログラム変換システム１００は、例えば、１台または複数台のコンピュータを用いて構成される。プログラム変換システム１００を構成する各部は、例えば、メモリやハードディスク等の記憶領域を用いたり、記憶領域に格納されたプログラムをプロセッサが実行したりすることにより実現される。
【００１５】
変換規則記憶部２００は、ＣＯＢＯＬソースプログラムをＪａｖａソースプログラムに変換するための変換規則を記憶する。
【００１６】
プログラム変換部２１０は、変換規則に基づいて、ＣＯＢＯＬソースプログラムをＪａｖａソースプログラムに変換する。
【００１７】
ＣＯＢＯＬソースプログラム記憶部２２０は、変換前のＣＯＢＯＬソースプログラムを記憶する。
【００１８】
Ｊａｖａソースプログラム記憶部２３０は、変換後のＪａｖａソースプログラムを記憶する。
【００１９】
図３は、プログラム変換システム１００におけるプログラム変換処理の流れを示す図である。図４Ａ〜図４Ｆは、プログラム変換の一例を示す図である。図３、図４Ａ〜図４Ｆを参照して、事前処理部２１１、挿入部２１２、変換部２１３、集団項目定義判定部２１４、及び分離部２１５について説明する。
【００２０】
図３には、Ｊａｖａソースに変換する変換元のＣＯＢＯＬソースプログラム群のうち、ＣＯＢＯＬ親ソース（第２のＣＯＢＯＬソースプログラム）及びＣＯＢＯＬ子ソース（第１のＣＯＢＯＬソースプログラム）が示されている。ＣＯＢＯＬ子ソースは、データ定義（第１のデータ定義）を含む。そして、ＣＯＢＯＬ親ソースは、ＣＯＢＯＬ子ソースを挿入するためのＣＯＰＹ句を含む。なお、ＣＯＢＯＬ親ソースのコンパイル時には、ＣＯＰＹ句が記述された箇所にＣＯＢＯＬ子ソースが挿入され、コンパイルが実行される。図４Ａには、ＣＯＢＯＬ親ソース及びＣＯＢＯＬ子ソースの例が示されている。図４Ａに示す例では、ＣＯＢＯＬ子ソースには、データ定義（第１のデータ定義）が含まれている。
【００２１】
なお、図４Ａに示す例では、ＣＯＢＯＬ子ソースに、３つの基本項目を定義するコードが含まれている。そして、図４Ａに示す例では、ＣＯＢＯＬ親ソースに、ソース名「ＳＵＢ００３１」のＣＯＢＯＬ子ソースを挿入するためのＣＯＰＹ句が含まれている。
【００２２】
事前処理部２１１は、変換元のすべてのＣＯＢＯＬソースプログラムについて、レベル番号変換規則に基づいて、ＣＯＢＯＬソース内のレベル番号を変換して、疑似ＣＯＢＯＬソースプログラムを得る。変換後のレベル番号は、ＣＯＢＯＬの定義範囲（１〜４９）を逸脱する場合がある。そのため、レベル番号変換後のソースプログラムを疑似ＣＯＢＯＬソースプログラムと呼ぶ。また、事前処理部２１１は、ＣＯＢＯＬ子ソース内のレベル番号を変換して得た疑似ＣＯＢＯＬ子ソースのうち、最上位レベルのデータ項目として基本項目が含まれるものに対して、当該疑似ＣＯＢＯＬ子ソースで定義された当該基本項目の１レベル上位の集団項目を先頭行に追加する。
【００２３】
ただし、事前処理部２１１は、最上位レベルのデータ項目として基本項目が含まれる疑似ＣＯＢＯＬ子ソースのうち、ＣＯＰＹ句を含み、かつ、この疑似ＣＯＢＯＬ子ソース中のＣＯＰＹ句によって挿入される疑似ＣＯＢＯＬ孫ソース（疑似ＣＯＢＯＬ子ソースを親ソースとした場合の子ソース）中のデータ項目の最上位レベルが、疑似ＣＯＢＯＬ子ソースのデータ項目の最上位レベル以上である場合には、集団項目の追加は行わない。なお、ＣＯＰＹ句によって挿入される疑似ＣＯＢＯＬ孫ソースがさらにＣＯＰＹ句を含む場合には、この疑似ＣＯＢＯＬ孫ソース中のＣＯＰＹ句によって挿入される疑似ＣＯＢＯＬひ孫ソース（疑似ＣＯＢＯＬ孫ソースを親ソースとした場合の子ソース）中のデータ項目の最上位レベルと、疑似ＣＯＢＯＬ孫ソースのデータ項目の最上位レベルとの上下関係を同様に比較し、疑似ＣＯＢＯＬひ孫ソース中のデータ項目の最上位レベルが、疑似ＣＯＢＯＬ孫ソース中のデータ項目の最上位レベル以上である場合には、集団項目の追加は行わない。
【００２４】
すなわち、再帰的にＣＯＰＹ句を含む場合には、ＣＯＰＹ句を含まない末端の疑似ＣＯＢＯＬ子ソース（例えば、疑似ＣＯＢＯＬひ孫ソース）に至るまでに存在する親子関係にあるソース同士（例えば、疑似ＣＯＢＯＬ親ソース及び疑似ＣＯＢＯＬ子ソース、疑似ＣＯＢＯＬ子ソース及び疑似ＣＯＢＯＬ孫ソース、疑似ＣＯＢＯＬ孫ソース及び疑似ＣＯＢＯＬひ孫ソース同士）でそれぞれのソース中のデータ項目の最上位レベルを比較し、そのすべての親子関係において疑似ＣＯＢＯＬ子ソース中のデータ項目の最上位レベルが、疑似ＣＯＢＯＬ親ソース中のデータ項目の最上位レベルよりも下位である場合に、事前処理部２１１は、再帰的なＣＯＰＹ句によって挿入される複数の疑似ＣＯＢＯＬ子ソース（例えば、疑似ＣＯＢＯＬ子ソース、疑似ＣＯＢＯＬ孫ソース、疑似ＣＯＢＯＬひ孫ソース）において集団項目の追加を行う。
【００２５】
ここで、レベル番号変換規則は、２以上４９以下のレベル番号を、変換前後で項目間のレベル番号の大小関係が変わらず、かつ、異なるレベル番号間の差異が２以上になるように変換するための規則である。また、レベル番号変換規則は、変換後のレベル番号が特別な意味を有するレベル番号（６６、７７、８８）の値にならないように、レベル番号を変換するための規則である。本実施形態では、事前処理部２１１は、レベル番号変換規則に基づいて、２以上４９以下のレベル番号を１０倍に変換するものとするが、別の実施形態では、事前処理部２１１は、レベル番号変換規則に基づいて、２以上４９以下のレベル番号を５倍、９倍等に変換してもよい。
【００２６】
また、集団項目を追加する場合には、集団項目名の一意性を確保する必要がある。具体的には、ＣＯＢＯＬ子ソースは複数のＣＯＢＯＬ親ソースにおいてＣＯＰＹ句によって利用され得るので、そのすべての利用箇所において、追加された集団項目の親項目を同じく親項目とする他の項目と衝突しないように集団項目名を付ける必要がある。本実施形態では、事前処理部２１１は、追加された集団項目名と他のデータ項目との名前の衝突を抑制するため、ＣＯＢＯＬ子ソース名に接頭辞「G--」を付けた、“「G--」＋ＣＯＢＯＬ子ソース名”を集団項目名として集団項目を追加する。なお、Ｊａｖａでは、項目名に「-」（ハイフン）を使用できないので、疑似ＣＯＢＯＬソースプログラムの項目名に含まれる「-」（ハイフン）は、変換規則記憶部２００の変換規則に従って、「_」（アンダースコア）に置換される。
【００２７】
図４Ｂには、図４Ａに示すＣＯＢＯＬ親ソース及びＣＯＢＯＬ子ソースを事前処理した疑似ＣＯＢＯＬ親ソース及び疑似ＣＯＢＯＬ子ソースの例が示されている。まず、図４Ｂ（１）には、図４Ａに示すＣＯＢＯＬ親ソース及びＣＯＢＯＬ子ソースのレベル番号を１０倍に変換した疑似ＣＯＢＯＬ親ソース及び疑似ＣＯＢＯＬ子ソースの例が示されている。具体的には、ＣＯＢＯＬ親ソースにおいてレベル番号02で定義された2つの基本項目ITEMX，ITEMYは、疑似ＣＯＢＯＬ親ソースでは、レベル番号20で定義されている。また、ＣＯＢＯＬ子ソースにおいてレベル番号02で定義された3つの基本項目ITEM1，ITEM2，ITEM3も、疑似ＣＯＢＯＬ子ソースでは、レベル番号20で定義されている。
【００２８】
また、図４Ｂ（２）には、図４Ｂ（１）に示す疑似ＣＯＢＯＬ子ソースに集団項目を追加した、疑似ＣＯＢＯＬ子ソースの例が示されている。具体的には、図４Ｂ（１）に示す疑似ＣＯＢＯＬ子ソースで定義された、最上位レベル（レベル番号20）の基本項目の１レベル上位（レベル番号19）の集団項目G--SUB0031が、図４Ｂ（２）では追加されている。
【００２９】
挿入部２１２は、コンパイル時と同様に、ＣＯＢＯＬ子ソースを事前処理部２１１が処理して得た疑似ＣＯＢＯＬ子ソースを、ＣＯＢＯＬ親ソースを事前処理部２１１が処理して得た疑似ＣＯＢＯＬ親ソースに挿入し、挿入後疑似ＣＯＢＯＬソース（第３のＣＯＢＯＬソースプログラム）を生成する。また、挿入部２１２は、挿入後疑似ＣＯＢＯＬソース中に、疑似ＣＯＢＯＬ子ソースの挿入箇所を示すコメント（第１のコード）を追加する。図４Ｃには、図４Ｂ（１）に示す疑似ＣＯＢＯＬ親ソースに、図４Ｂ（２）に示す疑似ＣＯＢＯＬ子ソースを挿入した、挿入後疑似ＣＯＢＯＬソースの例が示されている。図４Ｃに示す例では、挿入後疑似ＣＯＢＯＬソースにおいて、疑似ＣＯＢＯＬ子ソースの挿入箇所を示すコメントが記述されている。具体的には、挿入後疑似ＣＯＢＯＬソースには、疑似ＣＯＢＯＬ子ソースが挿入された範囲の開始位置を示すコメント「*** C O P Y  S T A R T *** SUB0031」及び終了位置を示すコメント「*** C O P Y  E N D *** SUB0031」が記述されている。
【００３０】
変換部２１３は、変換規則に基づいて、挿入後疑似ＣＯＢＯＬソースをＪａｖａソース（第１のＪａｖａソースプログラム）に変換する。また、変換部２１３は、挿入後疑似ＣＯＢＯＬソースに含まれる、データ定義の挿入箇所を示すコメントに対応するコメント（第２のコード）を、Ｊａｖａソースに記述する。
【００３１】
図４Ｄには、図４Ｃに示す挿入後疑似ＣＯＢＯＬソースを変換したＪａｖａソースの例が示されている。
【００３２】
図４Ｃに示す挿入後疑似ＣＯＢＯＬソースには、基本項目ITEM1，ITEM2，ITEM3を含む集団項目G--SUB0031が定義されている。これに対応して、図４Ｄに示すＪａｖａソースには、集団項目G--SUB0031に対応するクラスCG__SUB0031が定義されている。なお、クラスCG__SUB0031は、集団項目用のクラスCGrpを継承している。また、クラスCG__SUB0031には、基本項目に対応するメンバ変数ITEM1，ITEM2，ITEM3が定義されている。そして、クラスCG__SUB0031の定義の前に、挿入されたデータ定義に対応する挿入範囲（第１の範囲）の開始位置を示すコメント「// *** C O P Y  S T A R T *** SUB0031」が記述されている。また、メンバ変数ITEM3の定義の後に、挿入範囲の終了位置を示すコメント「// *** C O P Y  E N D *** SUB0031」が記述されている。
【００３３】
集団項目定義判定部２１４は、変換されたＪａｖａソースにおける挿入範囲に、集団項目に対応するクラス（第１のクラス）を定義するコード（第３のコード）が存在するかどうかを判定する。
【００３４】
図４Ｄに示す例では、集団項目定義判定部２１４は、挿入範囲、すなわち、コメント「// *** C O P Y  S T A R T *** SUB0031」からコメント「// *** C O P Y  E N D *** SUB0031」までの範囲に、集団項目に対応するクラスを定義するコードが存在するかどうかを判定する。なお、図４Ｄに示す例では、集団項目G--SUB0031に対応するクラスCG__SUB0031を定義するコードが存在する。
【００３５】
分離部２１５は、変換されたＪａｖａソースにおける挿入範囲に、集団項目に対応するクラスを定義するコードが存在する場合、当該クラスを外部クラスとするためのＪａｖａ子ソース（第２のＪａｖａソースプログラム）と、変換されたＪａｖａソースから当該クラスを定義するコードが削除され、Ｊａｖａ子ソースで定義された外部クラスをインポートするコード（第４のコード）が追加されたＪａｖａ親ソース（第３のＪａｖａソースプログラム）とを生成する。
【００３６】
図４Ｅ及び図４Ｆには、図４Ｄに示すＪａｖａソースから分離されたＪａｖａ親ソース及びＪａｖａ子ソースの例が示されている。
【００３７】
図４Ｅに示すＪａｖａ親ソースの例では、Ｊａｖａソースから、クラスCG__SUB0031を定義するコードが削除され、外部クラスtest.sub0031.CG__SUB0031をインポートするコードが追加されている。また、図４Ｆに示すＪａｖａ子ソースの例では、クラスCG__SUB0031を外部クラスとするコードが記述されている。
【００３８】
図５は、プログラム変換システム１００における変換処理の一例を示すフローチャートである。
【００３９】
事前処理部２１１は、ＣＯＢＯＬ親ソース及びＣＯＢＯＬ子ソース（例えば、図４Ａ）を含む、変換元のすべてのＣＯＢＯＬソースについて、レベル番号変換規則に基づいて、ＣＯＢＯＬソースプログラム内のレベル番号を変換して、疑似ＣＯＢＯＬソースプログラムを得る（Ｓ５０１）。本実施形態では、事前処理部２１１は、レベル番号変換規則に基づいて、２以上４９以下のレベル番号を１０倍に変換するものとし、ＣＯＢＯＬ親ソースを事前処理部２１１が処理して疑似ＣＯＢＯＬ親ソース（例えば、図４Ｂ（１））が得られ、また、ＣＯＢＯＬ子ソースを事前処理部２１１が処理して疑似ＣＯＢＯＬ子ソース（例えば、図４Ｂ（１））が得られる。
【００４０】
また、事前処理部２１１は、疑似ＣＯＢＯＬ子ソースのうち、最上位レベルのデータ項目として基本項目が含まれるものがあるかどうかを判定する（Ｓ５０２）。疑似ＣＯＢＯＬ子ソースのうち、最上位レベルのデータ項目として基本項目が含まれるものがない場合（Ｓ５０２：Ｎ）、本処理は後述のＳ５０６へと進む。疑似ＣＯＢＯＬ子ソースのうち、最上位レベルのデータ項目として基本項目が含まれるものがある場合（Ｓ５０２：Ｙ）、事前処理部２１１は、当該疑似ＣＯＢＯＬ子ソースにＣＯＰＹ句が含まれるかどうかを判定する（Ｓ５０３）。ＣＯＰＹ句が含まれない場合（Ｓ５０３：Ｎ）、事前処理部２１１は、当該疑似ＣＯＢＯＬ子ソースで定義された当該基本項目の１レベル上位の集団項目を先頭行に追加する（Ｓ５０５）。本実施形態では、疑似ＣＯＢＯＬ子ソース（例えば、図４Ｂ（１））に集団項目を追加した、疑似ＣＯＢＯＬ子ソース（例えば、図４Ｂ（２））が得られる。
【００４１】
ＣＯＰＹ句が含まれる場合（Ｓ５０３：Ｙ）、事前処理部２１１は、ＣＯＰＹ句を含まない末端の疑似ＣＯＢＯＬ子ソースに至るまでに存在する親子関係にあるソース同士でそれぞれのソース中のデータ項目の最上位レベルを比較し、そのすべての親子関係において疑似ＣＯＢＯＬ子ソース中のデータ項目の最上位レベルが、疑似ＣＯＢＯＬ親ソース中のデータ項目の最上位レベルよりも下位であるかどうかを判定する（Ｓ５０４）。そのすべての親子関係において疑似ＣＯＢＯＬ子ソース中のデータ項目の最上位レベルが、疑似ＣＯＢＯＬ親ソース中のデータ項目の最上位レベルよりも下位である場合（Ｓ５０４：Ｙ）本処理はＳ５０５へと進む。一方で、少なくとも一部の親子関係において疑似ＣＯＢＯＬ子ソース中のデータ項目の最上位レベルが、疑似ＣＯＢＯＬ親ソース中のデータ項目の最上位レベルより上位である場合（Ｓ５０４：Ｎ）、本処理はＳ５０６へと進む。
【００４２】
例えば、疑似ＣＯＢＯＬ親ソースのＣＯＰＹ句によって挿入される疑似ＣＯＢＯＬ子ソース、疑似ＣＯＢＯＬ子ソースのＣＯＰＹ句によって挿入される疑似ＣＯＢＯＬ孫ソースがＳ５０１で得られる別の実施形態では、親子関係にある疑似ＣＯＢＯＬ親ソース及び疑似ＣＯＢＯＬ子ソース、疑似ＣＯＢＯＬ子ソース及び疑似ＣＯＢＯＬ孫ソース同士でそれぞれのソース中のデータ項目の最上位レベルを比較し、疑似ＣＯＢＯＬ子ソース中のデータ項目の最上位レベルが疑似ＣＯＢＯＬ親ソース中のデータ項目の最上位レベルよりも下位であり、かつ、疑似ＣＯＢＯＬ孫ソース中のデータ項目の最上位レベルが疑似ＣＯＢＯＬ子ソース中のデータ項目の最上位レベルよりも下位である場合（Ｓ５０４：Ｙ）、Ｓ５０５へと進み、事前処理部２１１は、再帰的なＣＯＰＹ句によって挿入される複数の疑似ＣＯＢＯＬ子ソース（例えば、疑似ＣＯＢＯＬ子ソース、疑似ＣＯＢＯＬ孫ソース）において集団項目の追加を行う。
【００４３】
挿入部２１２は、挿入箇所を示すコメントを付与して、疑似ＣＯＢＯＬ子ソース（例えば図４Ｂ（２））を疑似ＣＯＢＯＬ親ソース（例えば図４Ｂ（１））に挿入し、挿入後疑似ＣＯＢＯＬソース（例えば図４Ｃ）を生成する（Ｓ５０６）。変換部２１３は、挿入箇所を示すコメントを残しまま、挿入後疑似ＣＯＢＯＬソースをＪａｖａソース（例えば図４Ｄ）に変換する（Ｓ５０７）。
【００４４】
集団項目定義判定部２１４は、Ｊａｖａソースにおける挿入範囲に、集団項目の定義があるかどうかを判定する（Ｓ５０８）。集団項目の定義がない場合（Ｓ５０８：Ｎ）、本処理は終了する。集団項目の定義がある場合（Ｓ５０８：Ｙ）、分離部２１５は、挿入範囲における集団項目の定義を外部クラスとしてＪａｖａ子ソース（例えば図４Ｆ）を生成する（Ｓ５０９）。また、分離部２１５は、Ｊａｖａソースから、当該集団項目の定義を削除し、外部クラスをインポートするＪａｖａ親ソース（例えば図４Ｅ）を生成する（Ｓ５１０）。
【００４５】
以上、プログラム変換システム１００について説明した。プログラム変換システム１００では、ＣＯＢＯＬ親ソースにおいてＣＯＰＹ句を用いることによって、基本項目のみを含むＣＯＢＯＬ子ソースに記述されたデータ定義を利用する場合に、ＣＯＢＯＬ子ソースに対応するＪａｖａ子ソースを生成することができる。これにより、ＣＯＰＹ句を用いるＣＯＢＯＬソースプログラムから変換されたＪａｖａソースプログラムのメンテナンス性を向上させることが可能となる。
【００４６】
また、プログラム変換システム１００では、挿入箇所を示すために挿入後疑似ＣＯＢＯＬソースに追加されるコードは、ＣＯＢＯＬソースプログラムにおけるコメントである。これにより、挿入後疑似ＣＯＢＯＬソースをＣＯＢＯＬソースプログラムとしてそのまま利用することが可能となる。なお、コメントではなく、挿入箇所を示すコードであることを特定可能な任意のコードを用いてもよい。
【００４７】
また、プログラム変換システム１００では、挿入箇所を示すためにＪａｖａソースに追加されるコードは、Ｊａｖａソースプログラムにおけるコメントである。これにより、ＪａｖａソースをＪａｖａソースプログラムとしてそのまま利用することが可能となる。なお、コメントではなく、挿入箇所を示すコードであることを特定可能な任意のコードを用いてもよい。
【００４８】
なお、本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更／改良され得るととともに、本発明にはその等価物も含まれる。
【符号の説明】
【００４９】
１００…プログラム変換システム、１１０…ホストコンピュータ、１２０…変換プログラム実行システム、１３０…ＣＯＢＯＬプログラム、１４０…ＣＯＢＯＬソースプログラム、１５０…Ｊａｖａソースプログラム、１６０…Ｊａｖａバイトコード、２００…変換規則記憶部、２１０…プログラム変換部、２１１…事前処理部、２１２…挿入部、２１３…変換部、２１４…集団項目定義判定部、２１５…分離部、２２０…ＣＯＢＯＬソースプログラム記憶部、２３０…Ｊａｖａソースプログラム記憶部
【図１】
2020042321.tif 000003
【図２】
2020042321.tif 000004
【図３】
2020042321.tif 000005
【図４Ａ】
2020042321.tif 000006
【図４Ｂ】
2020042321.tif 000007
【図４Ｃ】
2020042321.tif 000008
【図４Ｄ】
2020042321.tif 000009
【図４Ｅ】
2020042321.tif 000010
【図４Ｆ】
2020042321.tif 000011
【図５】
2020042321.tif 000012
【手続補正書】
【提出日】平成30年11月14日(2018.11.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のＣＯＢＯＬソースプログラムと第２のＣＯＢＯＬソースプログラムとを含む、ＣＯＢＯＬソースプログラム群をＪａｖａソースプログラム群に変換するプログラム変換システムであって、前記第１のＣＯＢＯＬソースプログラムは第１のデータ定義を含み、前記第２のＣＯＢＯＬソースプログラムは前記第１のＣＯＢＯＬソースプログラムを挿入するためのＣＯＰＹ句を含み、
前記ＣＯＢＯＬソースプログラム群について、レベル番号変換規則に基づいて、ＣＯＢＯＬソースプログラム内のレベル番号を変換して、疑似ＣＯＢＯＬソースプログラムを得る事前処理部であって、前記レベル番号変換規則は、２以上４９以下のレベル番号を、変換前後で項目間のレベル番号の大小関係が変わらず、かつ、異なるレベル番号間の差異が２以上になるように変換するための規則であり、前記事前処理部は、前記第１のＣＯＢＯＬソースプログラムのうち、最上位レベルのデータ項目として基本項目が含まれるものに対して、当該第１のＣＯＢＯＬソースプログラムで定義された前記基本項目の１レベル上位の集団項目を先頭行に追加する、事前処理部と、
前記第１のＣＯＢＯＬソースプログラムを前記事前処理部が処理して得た第１の疑似ＣＯＢＯＬソースプログラムと、前記第２のＣＯＢＯＬソースプログラムを前記事前処理部が処理して得た第２の疑似ＣＯＢＯＬソースプログラムとから、前記第２の疑似ＣＯＢＯＬソースプログラムに前記第１の疑似ＣＯＢＯＬソースプログラムが挿入され、当該挿入箇所を示す第１のコードが追加された、第３のＣＯＢＯＬソースプログラムを生成する挿入部と、
前記第３のＣＯＢＯＬソースプログラムを、所定の変換規則に基づいて、前記第１のコードに対応する第２のコードを含む、第１のＪａｖａソースプログラムに変換する変換部と、
前記第２のコードに基づいて、前記第１のＪａｖａソースプログラムにおける前記第１のデータ定義に対応する第１の範囲に、集団項目に対応する第１のクラスを定義する第３のコードが存在するかどうかを判定する集団項目定義判定部と、
前記第３のコードが存在する場合、前記第１のクラスを外部クラスとするための第２のＪａｖａソースプログラムと、前記第１のＪａｖａソースプログラムから前記第３のコードが削除され、前記外部クラスをインポートする第４のコードが追加された、第３のＪａｖａソースプログラムとを生成する分離部と、
を備えるプログラム変換システム。
【請求項２】
前記レベル番号変換規則は、変換後のレベル番号が、６６、７７、８８のいずれかの値にならないように、前記ＣＯＢＯＬソースプログラム内のレベル番号を変換するための規則である、請求項１に記載のプログラム変換システム。
【請求項３】
前記事前処理部は、前記第１のＣＯＢＯＬソースプログラムの名前に所定の接頭辞を付けたものを集団項目名として、前記集団項目を追加する、請求項１又は２に記載のプログラム変換システム。
【請求項４】
請求項１から３のいずれか一項に記載のプログラム変換システムであって、
前記第１のコードは、コメントである、
プログラム変換システム。
【請求項５】
請求項１から４のいずれか一項に記載のプログラム変換システムであって、
前記第２のコードは、コメントである、
プログラム変換システム。
【請求項６】
前記事前処理部は、再帰的にＣＯＰＹ句を含む場合に、ＣＯＰＹ句を含まない末端の疑似ＣＯＢＯＬ子ソースに至るまでに存在する親子関係にあるソース同士でそれぞれのソース中のデータ項目の最上位レベルを比較し、そのすべての親子関係において疑似ＣＯＢＯＬ子ソース中のデータ項目の最上位レベルが、疑似ＣＯＢＯＬ親ソース中のデータ項目の最上位レベルよりも下位である場合に、前記再帰的なＣＯＰＹ句によって挿入される複数の疑似ＣＯＢＯＬ子ソースにおいて集団項目の追加を行う、請求項１から５のいずれか一項に記載のプログラム変換システム。
【請求項７】
第１のＣＯＢＯＬソースプログラムと第２のＣＯＢＯＬソースプログラムとを含む、ＣＯＢＯＬソースプログラム群をＪａｖａソースプログラム群に変換するプログラム変換方法であって、前記第１のＣＯＢＯＬソースプログラムは第１のデータ定義を含み、前記第２のＣＯＢＯＬソースプログラムは前記第１のＣＯＢＯＬソースプログラムを挿入するためのＣＯＰＹ句を含み、コンピュータが実行する、
前記ＣＯＢＯＬソースプログラム群について、レベル番号変換規則に基づいて、ＣＯＢＯＬソースプログラム内のレベル番号を変換して、疑似ＣＯＢＯＬソースプログラムを得る工程であって、前記レベル番号変換規則は、２以上４９以下のレベル番号を、変換前後で項目間のレベル番号の大小関係が変わらず、かつ、異なるレベル番号間の差異が２以上になるように変換するための規則であり、前記事前処理部は、前記第１のＣＯＢＯＬソースプログラムのうち、最上位レベルのデータ項目として基本項目が含まれるものに対して、当該第１のＣＯＢＯＬソースプログラムで定義された前記基本項目の１レベル上位の集団項目を先頭行に追加する、事前処理工程と、
前記第１のＣＯＢＯＬソースプログラムを前記事前処理工程で処理して得た第１の疑似ＣＯＢＯＬソースプログラムと、前記第２のＣＯＢＯＬソースプログラムを前記事前処理工程で処理して得た第２の疑似ＣＯＢＯＬソースプログラムとから、前記第２の疑似ＣＯＢＯＬソースプログラムに前記第１の疑似ＣＯＢＯＬソースプログラムが挿入され、当該挿入箇所を示す第１のコードが追加された、第３のＣＯＢＯＬソースプログラムを生成する挿入工程と、
前記第３のＣＯＢＯＬソースプログラムを、所定の変換規則に基づいて、前記第１のコードに対応する第２のコードを含む、第１のＪａｖａソースプログラムに変換する変換工程と、
前記第２のコードに基づいて、前記第１のＪａｖａソースプログラムにおける前記第１のデータ定義に対応する第１の範囲に、集団項目に対応する第１のクラスを定義する第３のコードが存在するかどうかを判定する集団項目定義判定工程と、
前記第３のコードが存在する場合、前記第１のクラスを外部クラスとするための第２のＪａｖａソースプログラムと、前記第１のＪａｖａソースプログラムから前記第３のコードが削除され、前記外部クラスをインポートする第４のコードが追加された、第３のＪａｖａソースプログラムとを生成する分離工程と、
を含む、方法。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2020042321.tif 000013
【手続補正書】
【提出日】平成30年12月3日(2018.12.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のＣＯＢＯＬソースプログラムと第２のＣＯＢＯＬソースプログラムとを含む、ＣＯＢＯＬソースプログラム群をＪａｖａソースプログラム群に変換するプログラム変換システムであって、前記第１のＣＯＢＯＬソースプログラムは第１のデータ定義を含み、前記第２のＣＯＢＯＬソースプログラムは前記第１のＣＯＢＯＬソースプログラムを挿入するためのＣＯＰＹ句を含み、
前記ＣＯＢＯＬソースプログラム群について、レベル番号変換規則に基づいて、ＣＯＢＯＬソースプログラム内のレベル番号を変換して、疑似ＣＯＢＯＬソースプログラムを得る事前処理部であって、前記レベル番号変換規則は、２以上４９以下のレベル番号を、変換前後で項目間のレベル番号の大小関係が変わらず、かつ、異なるレベル番号間の差異が２以上になるように変換するための規則であり、前記事前処理部は、前記第１のＣＯＢＯＬソースプログラムのうち、最上位レベルのデータ項目として基本項目が含まれるものに対して、当該第１のＣＯＢＯＬソースプログラムで定義された前記基本項目の１レベル上位の集団項目を先頭行に追加する、事前処理部と、
前記第１のＣＯＢＯＬソースプログラムを前記事前処理部が処理して得た第１の疑似ＣＯＢＯＬソースプログラムと、前記第２のＣＯＢＯＬソースプログラムを前記事前処理部が処理して得た第２の疑似ＣＯＢＯＬソースプログラムとから、前記第２の疑似ＣＯＢＯＬソースプログラムに前記第１の疑似ＣＯＢＯＬソースプログラムが挿入され、当該挿入箇所を示す第１のコードが追加された、第３のＣＯＢＯＬソースプログラムを生成する挿入部と、
前記第３のＣＯＢＯＬソースプログラムを、所定の変換規則に基づいて、前記第１のコードに対応する第２のコードを含む、第１のＪａｖａソースプログラムに変換する変換部と、
前記第２のコードに基づいて、前記第１のＪａｖａソースプログラムにおける前記第１のデータ定義に対応する第１の範囲に、集団項目に対応する第１のクラスを定義する第３のコードが存在するかどうかを判定する集団項目定義判定部と、
前記第３のコードが存在する場合、前記第１のクラスを外部クラスとするための第２のＪａｖａソースプログラムと、前記第１のＪａｖａソースプログラムから前記第３のコードが削除され、前記外部クラスをインポートする第４のコードが追加された、第３のＪａｖａソースプログラムとを生成する分離部と、
を備えるプログラム変換システム。
【請求項２】
前記レベル番号変換規則は、変換後のレベル番号が、６６、７７、８８のいずれかの値にならないように、前記ＣＯＢＯＬソースプログラム内のレベル番号を変換するための規則である、請求項１に記載のプログラム変換システム。
【請求項３】
前記事前処理部は、前記第１のＣＯＢＯＬソースプログラムの名前に所定の接頭辞を付けたものを集団項目名として、前記集団項目を追加する、請求項１又は２に記載のプログラム変換システム。
【請求項４】
請求項１から３のいずれか一項に記載のプログラム変換システムであって、
前記第１のコードは、コメントである、
プログラム変換システム。
【請求項５】
請求項１から４のいずれか一項に記載のプログラム変換システムであって、
前記第２のコードは、コメントである、
プログラム変換システム。
【請求項６】
前記事前処理部は、再帰的にＣＯＰＹ句を含む場合に、ＣＯＰＹ句を含まない末端の疑似ＣＯＢＯＬ子ソースに至るまでに存在する親子関係にあるソース同士でそれぞれのソース中のデータ項目の最上位レベルを比較し、そのすべての親子関係において疑似ＣＯＢＯＬ子ソース中のデータ項目の最上位レベルが、疑似ＣＯＢＯＬ親ソース中のデータ項目の最上位レベルよりも下位である場合に、前記再帰的なＣＯＰＹ句によって挿入される複数の疑似ＣＯＢＯＬ子ソースにおいて集団項目の追加を行う、請求項１から５のいずれか一項に記載のプログラム変換システム。
【請求項７】
第１のＣＯＢＯＬソースプログラムと第２のＣＯＢＯＬソースプログラムとを含む、ＣＯＢＯＬソースプログラム群をＪａｖａソースプログラム群に変換するプログラム変換方法であって、前記第１のＣＯＢＯＬソースプログラムは第１のデータ定義を含み、前記第２のＣＯＢＯＬソースプログラムは前記第１のＣＯＢＯＬソースプログラムを挿入するためのＣＯＰＹ句を含み、コンピュータが実行する、
前記ＣＯＢＯＬソースプログラム群について、レベル番号変換規則に基づいて、ＣＯＢＯＬソースプログラム内のレベル番号を変換して、疑似ＣＯＢＯＬソースプログラムを得る工程であって、前記レベル番号変換規則は、２以上４９以下のレベル番号を、変換前後で項目間のレベル番号の大小関係が変わらず、かつ、異なるレベル番号間の差異が２以上になるように変換するための規則であり、前記工程は、前記第１のＣＯＢＯＬソースプログラムのうち、最上位レベルのデータ項目として基本項目が含まれるものに対して、当該第１のＣＯＢＯＬソースプログラムで定義された前記基本項目の１レベル上位の集団項目を先頭行に追加する、事前処理工程と、
前記第１のＣＯＢＯＬソースプログラムを前記事前処理工程で処理して得た第１の疑似ＣＯＢＯＬソースプログラムと、前記第２のＣＯＢＯＬソースプログラムを前記事前処理工程で処理して得た第２の疑似ＣＯＢＯＬソースプログラムとから、前記第２の疑似ＣＯＢＯＬソースプログラムに前記第１の疑似ＣＯＢＯＬソースプログラムが挿入され、当該挿入箇所を示す第１のコードが追加された、第３のＣＯＢＯＬソースプログラムを生成する挿入工程と、
前記第３のＣＯＢＯＬソースプログラムを、所定の変換規則に基づいて、前記第１のコードに対応する第２のコードを含む、第１のＪａｖａソースプログラムに変換する変換工程と、
前記第２のコードに基づいて、前記第１のＪａｖａソースプログラムにおける前記第１のデータ定義に対応する第１の範囲に、集団項目に対応する第１のクラスを定義する第３のコードが存在するかどうかを判定する集団項目定義判定工程と、
前記第３のコードが存在する場合、前記第１のクラスを外部クラスとするための第２のＪａｖａソースプログラムと、前記第１のＪａｖａソースプログラムから前記第３のコードが削除され、前記外部クラスをインポートする第４のコードが追加された、第３のＪａｖａソースプログラムとを生成する分離工程と、
を含む、方法。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2020042321.tif 000014