JP6251158B2 - プログラム変換システム - Google Patents

プログラム変換システム Download PDF

Info

Publication number
JP6251158B2
JP6251158B2 JP2014252202A JP2014252202A JP6251158B2 JP 6251158 B2 JP6251158 B2 JP 6251158B2 JP 2014252202 A JP2014252202 A JP 2014252202A JP 2014252202 A JP2014252202 A JP 2014252202A JP 6251158 B2 JP6251158 B2 JP 6251158B2
Authority
JP
Japan
Prior art keywords
instance
class
definition
item
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014252202A
Other languages
English (en)
Other versions
JP2016115070A (ja
Inventor
宏樹 熊谷
宏樹 熊谷
俊郎 宮崎
俊郎 宮崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TIS Inc
Original Assignee
TIS Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TIS Inc filed Critical TIS Inc
Priority to JP2014252202A priority Critical patent/JP6251158B2/ja
Publication of JP2016115070A publication Critical patent/JP2016115070A/ja
Application granted granted Critical
Publication of JP6251158B2 publication Critical patent/JP6251158B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Description

本発明は、プログラム変換システムに関する。
基幹システムのオープン化に伴い、COBOLソースプログラムのJava(登録商標)ソースプログラムへの変換が注目されている(例えば、特許文献1)。
特開2010−86218号公報
COBOLからJavaへの変換の際には、COBOL独自の仕様を、Javaにおいてどのように実現するかという点が問題となる。例えば、COBOLにおける「集団項目」はその一つである。COBOLにおける集団項目の定義は、例えば、以下のように行われる。
01 GRP1.
02 GRP1-E1 PIC X(4).
02 GRP1-E2 PIC X(4).
01 GRP2.
02 GRP2-E1 PIC X(4).
02 GRP2-E2 PIC X(4).
上記の例では、2つの集団項目GRP1,GRP2が定義されている。そして、集団項目GRP1は、2つの基本項目GRP1-E1,GRP1-E2を有し、集団項目GRP2は、2つの基本項目GRP2-E1,GRP2-E2を有している。COBOLでは、このような集団項目において、基本項目単位でのデータ処理と集団項目単位でのデータ処理の両方が可能である。具体的には、例えば、「MOVE GRP1-E1 OF GRP1 TO GRP2-E1 OF GRP2.」のように、基本項目単位でのデータ転送も可能であるし、「MOVE GRP1 TO GRP2.」のように、集団項目単位でのデータ転送も可能である。
特許文献1に開示されているシステムでは、このような集団項目をJavaで実現する際に、集団項目内の各基本項目のデータ領域と、集団項目のデータ領域とを別個に管理している。そのため、集団項目単位でのデータ転送が発生すると、まず、各基本項目のデータ領域から集団項目のデータ領域にデータを反映させる処理が行われ、その後、集団項目単位でのデータ転送が実行される。従って、集団項目単位でのデータ転送の処理コストが大きくなってしまう。
本発明はこのような事情に鑑みてなされたものであり、COBOLソースプログラムから変換されたJavaソースプログラムの実行時における、集団項目単位でのデータ転送の処理コストを削減することを目的とする。
本発明の一側面に係るプログラム変換システムは、COBOLソースプログラムをJavaソースプログラムに変換するプログラム変換システムであって、COBOLソースプログラムのデータ部におけるデータ定義を順次読み込むデータ定義読み取り部と、データ定義が集団項目の定義である場合、Javaソースプログラムにおいて当該集団項目を実現するための第1のクラスの第1のインスタンスを生成する第1のソースコードを出力する集団項目定義コード出力部と、データ定義が基本項目の定義であり、かつ、レベルが最上位である場合、Javaソースプログラムにおいて当該基本項目を実現するための第2のクラスの第2のインスタンスを生成する第2のソースコードを出力する第1の基本項目定義コード出力部と、データ定義が基本項目の定義であり、かつ、レベルが最上位でない場合、当該基本項目を第1のクラスのメンバ変数とする第3のソースコードを出力する第2の基本項目定義コード出力部と、を備える。
なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」や装置が有する機能が2つ以上の物理的手段や装置により実現されても、2つ以上の「部」や装置の機能が1つの物理的手段や装置により実現されてもよい。
本発明によれば、COBOLソースプログラムから変換されたJavaソースプログラムの実行時における、集団項目単位でのデータ転送処理の処理コストを削減することが可能となる。
プログラム変換が行われるシステム全体の概略を示す図である。 プログラム変換システム100が備える機能の一例を示すブロック図である。 変換プログラム実行システム120が備える機能の一例を示すブロック図である。 プログラム変換システム100におけるデータ型の変換規則の一例を示す図である。 図4に示した変換規則に基づいてCOBOLのデータ定義を変換した一例を示す図である。 COBOLのデータ定義の変換処理の一例を示すフローチャートである。 変換処理において出力されるコードの一例を示す図である。 COBOLソースプログラムからJavaソースプログラムへの変換の一例を示す図である。 Javaで定義された変数のデータ領域の構造の一例を示す図である。 集団項目間のデータ転送を含むプログラムの変換の一例を示す図である。 集団項目間のデータ転送の一例を示す図である。 COBOLにおけるサブプログラム(モジュール)の呼び出しの一例を示す図である。 CALL文を含むCOBOLソースプログラムのJavaソースプログラムへの変換の一例を示す図である。 サブプログラムを呼び出すCOBOLソースプログラムを変換したJavaソースプログラムを実行するための機構の一例を示す図である。 サブプログラム内における集団項目の定義の一例を示す図である。 図15に示した集団項目が定義されるサブプログラムのインスタンスが生成された場合の、当該集団項目のデータ領域の一例を示す図である。 サブプログラムに対応するインスタンスの実行及び再利用時における、集団項目のデータ領域の変遷の一例を示す図である。 サブプログラムに対応するインスタンスを再利用する処理の一例を示すフローチャートである。
以下、図面を参照して本発明の一実施形態について説明する。図1は、プログラム変換が行われるシステム全体の概略を示す図である。本システムでは、プログラム変換システム100により、ホストコンピュータ110で稼働するプログラムが、変換プログラム実行システム120で稼働するプログラムに変換される。具体的には、ホストコンピュータ110では、COBOLプログラム130が動作している。プログラム変換システム100は、COBOLプログラム130のソースコードであるCOBOLソースプログラム140をJavaソースプログラム150に変換する。Javaソースプログラム150は、コンパイルされてJavaバイトコード160となる。そして、Javaバイトコード160は、変換プログラム実行システム120で実行される。
図2は、プログラム変換システム100が備える機能の一例を示すブロック図である。プログラム変換システム100は、変換規則記憶部200、プログラム変換部210、COBOLソースプログラム記憶部220、及びJavaソースプログラム記憶部230を備える。また、プログラム変換部210は、データ定義読み取り部211、集団項目定義コード出力部212、第1の基本項目定義コード出力部213、及び第2の基本項目定義コード出力部214を含む。プログラム変換システム100は、例えば、1台または複数台のコンピュータを用いて構成される。プログラム変換システム100を構成する各部は、例えば、メモリやハードディスク等の記憶領域を用いたり、記憶領域に格納されたプログラムをプロセッサが実行したりすることにより実現される。
変換規則記憶部200は、COBOLソースプログラムをJavaソースプログラムに変換するための変換規則を記憶する。
プログラム変換部210は、変換規則に基づいて、COBOLソースプログラムをJavaソースプログラムに変換する。
データ定義読み取り部211は、COBOLソースプログラムのデータ部(DATA DIVISION)の変換のために、データ部におけるデータ定義を順次読み込む。
集団項目定義コード出力部212は、COBOLソースプログラムにおけるデータ定義が集団項目の定義である場合、Javaソースプログラムにおいて当該集団項目を実現するためのクラスのインスタンスを生成するソースコードを出力する。
第1の基本項目定義コード出力部213は、COBOLソースプログラムにおけるデータ定義が基本項目の定義であり、かつ、レベルが最上位(例えば「01」)である場合、Javaソースプログラムにおいて当該基本項目を実現するためのクラスのインスタンスを生成するソースコードを出力する。
第2の基本項目定義コード出力部214は、COBOLソースプログラムにおけるデータ定義が基本項目の定義であり、かつ、レベルが最上位でない場合、当該基本項目を、集団項目を実現するためのクラスのメンバ変数とするソースコードを出力する。
データ定義読み取り部211、集団項目定義コード出力部212、第1の基本項目定義コード出力部213、及び第2の基本項目定義コード出力部214の詳細については、具体例を用いて後述する。
COBOLソースプログラム記憶部220は、変換前のCOBOLソースプログラムを記憶する。
Javaソースプログラム記憶部230は、変換後のJavaソースプログラムを記憶する。
図3は、変換プログラム実行システム120が備える機能の一例を示すブロック図である。変換プログラム実行システム120は、JavaVM実行部300、Javaバイトコード記憶部310、及びプログラム実行部320を含む。また、プログラム実行部320は、インスタンスキャッシュ部321及びインスタンス管理部322を含む。変換プログラム実行システム120は、例えば、1台または複数台のコンピュータを用いて構成される。変換プログラム実行システム120を構成する各部は、例えば、メモリやハードディスク等の記憶領域を用いたり、記憶領域に格納されたプログラムをプロセッサが実行したりすることにより実現される。
JavaVM実行部300は、Javaバイトコードを実行するためのプラットフォームであるJavaVMを実行する。
Javaバイトコード記憶部310は、変換されたJavaソースプログラムをコンパイルしたJavaバイトコードを記憶する。
プログラム実行部320は、Javaバイトコードを実行する。プログラム実行部320は、Javaバイトコードを実行するための各種ライブラリ(クラスライブラリ等)を含む。
インスタンスキャッシュ部321は、COBOLソースプログラムにおいてCALL文で呼び出されるサブプログラムに対応する、Javaのインスタンスのキャッシュを保持する。
インスタンス管理部322は、サブプログラムを呼び出すCALL文から変換された命令が実行されると、当該サブプログラムに対応するインスタンスが、キャッシュに存在しない場合は、当該インスタンスを新たに生成し、キャッシュに存在する場合は、キャッシュ内の当該インスタンスを再利用する。
インスタンスキャッシュ部321及びインスタンス管理部322の詳細については、具体例を用いて後述する。
図4は、プログラム変換システム100におけるデータ型の変換規則の一例を示す図である。図4において、左側の欄には、COBOLのデータ型が示されており、右側の欄には、COBOLのデータ型と同等の機能を実現するためのJavaのラッパークラスが示されている。例えば、1〜9桁の符号無し整数(PIC 9(1)〜PIC 9(9))は、CIntというラッパークラスに変換される。
図5は、図4に示した変換規則に基づいてCOBOLのデータ定義を変換した一例を示す図である。例えば、COBOLでは、「01 NUM01 PIC S9(003) COMP-3 VALUE 060.」により、符号付きパック形式の3桁の整数(初期値「60」)として、変数「NUM01」が定義されている。この定義をJavaに変換したものが、「public CInt NUM01=new CInt(3, S, COMP3).VALUE(60);」である。ここで、CIntの引数(3, S, COMP3)は、順に、桁数、符号付き、パック形式を表している。また、CIntのメソッドVALUE(60)は、変数NUM01に初期値「60」をセットするものである。
図6は、COBOLのデータ定義の変換処理の一例を示すフローチャートである。図7は、変換処理において出力されるコードの一例を示す図である。図8は、COBOLソースプログラムからJavaソースプログラムへの変換の一例を示す図である。図9は、Javaで定義された変数のデータ領域の構造の一例を示す図である。図7〜図9を参照しつつ、図6の処理について説明する。
まず、データ定義読み取り部211は、COBOLソースプログラムのデータ部におけるデータ定義を1行読み込む(S601)。データ定義が終了であれば(S602:Y)、処理は終了する。
データ定義が終了でない場合(S602:N)、集団項目定義コード出力部212は、データ定義が集団項目の定義であるかどうか確認する(S603)。集団項目の定義である場合(S603:Y)、集団項目定義コード出力部212は、集団項目用のラッパークラスCGrpを継承したクラスとして、当該集団項目を定義するソースコードを出力する(S604)。例えば、図7(a)には、集団項目GRP1を定義するソースコードの一例が示されている。具体的には、クラスCGrpを継承したクラスとしてCGRP1が定義され、当該CGRP1のオブジェクトとして、GRP1が定義されている。
集団項目の定義ではない(即ち、基本項目である)場合(S603:N)、第1の基本項目定義コード出力部213は、データ定義がレベル01であるかどうか確認する(S605)。レベル01である場合(S605:Y)、基本項目用のラッパークラスのオブジェクトとして当該基本項目を定義するソースコードを出力する(S606)。例えば、図7(b)には、基本項目IDX1を定義するソースコードの一例が示されている。具体的には、クラスCIntのオブジェクトとして、IDX1が定義されている。
基本項目であり(S603:N)、かつ、レベル01でない場合(S605:N)、第2の基本項目定義コード出力部214は、当該基本項目を、当該基本項目が属する集団項目のクラスのメンバ変数として定義するソースコードを出力する(S607)。例えば、図7(c)には、集団項目GRP1に属する基本項目GRP1_IDX1を定義するソースコードの一例が示されている。ここで、図7(c)に示すソースコードは、図7(a)に示すソースコードに、クラスCGRP1のメンバ変数として追加される。
図8には、図7に示した処理による変換の一例が示されている。図8に示すように、集団項目GRP1は、クラスCGrpを継承したクラスCGRP1のオブジェクトとして定義されている。そして、集団項目GRP1に属する基本項目GRP1_IDX1,GRP1_IDX2,GRP1_IDS1は、クラスCGRP1のメンバ変数として定義されている。また、集団項目に属しない基本項目IDX1は、クラスCIntのオブジェクトとして定義されている。
図9には、集団項目GRP1及び基本項目IDX1のデータ領域の構造の一例が示されている。図9(a)に示すように、集団項目GRP1用にデータ領域が確保され、当該データ領域内に、集団項目GPR1の各基本項目のデータ領域が連続して確保される。具体的には、GRP1_IDX1,GRP1_IDX2,GRP1_IDS1用のデータ領域として、順に、6バイト、12バイト、12バイトが確保される。また、図9(b)に示すように、集団項目に属しない基本項目IDX1には、独立したデータ領域が確保される。なお、IDX1は、6桁の整数であるが、パック形式(COMP3)であるため、4バイトとなっている。
図10は、集団項目間のデータ転送を含むプログラムの変換の一例を示す図である。また、図11は、集団項目間のデータ転送の一例を示す図である。
図10に示すように、集団項目GRP1は、クラスCGrpを継承したクラスCGRP1のオブジェクトとして定義されている。そして、集団項目GRP1に属する基本項目GRP1_IDX1,GRP1_IDX2,GRP1_IDS1は、クラスCGRP1のメンバ変数として定義されている。同様に、集団項目GRP2は、クラスCGrpを継承したクラスCGRP2のオブジェクトとして定義されている。そして、集団項目GRP2に属する基本項目GRP2_IDX1,GRP2_IDX2,GRP2_IDS1は、クラスCGRP2のメンバ変数として定義されている。
上述のように定義された集団項目GRP1、GRP2間におけるデータ転送「move(GRP1, GRP2);」が実行されると、図11に示すように、集団項目GRP1の30バイトの連続した領域が、集団項目GRP2の30バイトの連続した領域へコピーされる。なお、集団項目に属する各基本項目のデータ領域は、初めから、集団項目のデータ領域内に確保されている。そのため、集団項目単位でデータ転送を実行する際に、各基本項目の値を集団項目のデータ領域にコピーする等の準備は不要である。従って、COBOLソースプログラムから変換されたJavaソースプログラムの実行時における、集団項目単位でのデータ転送の処理コストを削減することが可能となる。
次に、変換プログラム実行システム120において、サブプログラムを実行する際の処理負荷を軽減する手法について説明する。
図12は、COBOLにおけるサブプログラム(モジュール)の呼び出しの一例を示す図である。図12に示すように、メインプログラム(例えば、プログラムABC)において、CALL文により、サブプログラム(例えば、サブプログラムDEF)を呼び出すことができる。
図13は、CALL文を含むCOBOLソースプログラムのJavaソースプログラムへの変換の一例を示す図である。図13に示すように、サブプログラムは、クラスCblSubのオブジェクトとして実現される。
図14は、サブプログラムを呼び出すCOBOLソースプログラムを変換したJavaソースプログラムを実行するための機構の一例を示す図である。メインプログラム(例えば、プログラムABC)は、クラスCblBaseのインスタンスとして実現されている。サブプログラム(例えば、サブプログラムDEF)は、サブブログラム名(例えば、「DEF」)を引数として、クラスFactoryのメソッドcreateを実行することにより呼び出すことができる。
サブプログラムは、クラスCblSubのインスタンスとして実現される。サブプログラムのインスタンスは、生成されると、インスタンスキャッシュ部321にキャッシュされる。そして、メソッドcreateによりサブプログラムが呼び出されると、インスタンス管理部322は、当該キャッシュに保持されているインスタンスのリストをサブプログラム名で検索する。呼び出し対象のサブプログラムに対応するインスタンスがキャッシュに存在する場合、インスタンス管理部322は、当該インスタンスを、メンバ変数の値を初期化して再利用する。また、呼び出し対象のサブプログラムに対応するインスタンスがキャッシュに存在しない場合、インスタンス管理部322は、当該インスタンスを新たに生成し、キャッシュに登録する。
続いて、サブプログラム内で集団項目が定義される場合におけるデータ領域の管理の一例について説明する。
図15は、サブプログラム内における集団項目の定義の一例を示す図である。図15に示す例では、基本項目GRP1_IDX1,GRP1_IDX2,GRP1_IDS1を有する集団項目GRP1が定義されている。図16は、図15に示した集団項目が定義されるサブプログラムのインスタンスが生成された場合の、当該集団項目のデータ領域の一例を示す図である。前述したように、各基本項目のデータ領域は、集団項目のデータ領域内に連続して設けられている。そして、インスタンスは、各基本項目のデータ領域の位置に関する情報を保持している。具体的には、インスタンスは、集団項目のデータ領域の位置と、集団項目内における各基本項目のデータ領域の開始位置(オフセット)及びバイト数とを保持している。なお、各基本項目のデータ領域の位置に関する情報は、インスタンスの生成時に計算される。
図17は、サブプログラムに対応するインスタンスの実行及び再利用時における、集団項目のデータ領域の変遷の一例を示す図である。図17に示すように、インスタンスの実行時には、集団項目への値の代入が行われる。同じサブプログラムの呼び出しを行う際には、このインスタンスが再利用されることとなるが、集団項目に前回実行時の値が代入されたままでは支障がある。そこで、インスタンスの再利用時には、初期値を設定するメソッドresetForReuseを実行することにより、初期値が設定される。
図18は、サブプログラムに対応するインスタンスを再利用する処理の一例を示すフローチャートである。サブプログラムの呼び出しに対応するメソッド(例えば、「Factory.create("DEF")」が実行されると、インスタンス管理部322は、サブプログラムに対応するインスタンスのキャッシュのリストを、指定されたクラス名(例えば、「DEF」)で検索する(S1801)。
リストに存在しない場合(S1802:N)、インスタンス管理部322は、指定されたクラス名(例えば、「DEF」)でインスタンスを生成する(S1803)。なお、インスタンス生成の際には、COBOLソースプログラムのVALUE句に対応する初期値の設定処理も行われる。そして、インスタンス管理部322は、生成したインスタンスをキャッシュのリストに追加する(S1804)。
リストに存在する場合(S1802:Y)、インスタンス管理部322は、キャッシュに存在するインスタンスに対してメソッドresetForReuse()を実行し、インスタンスのメンバ変数のデータをクリアする(S1805)。そして、インスタンス管理部322は、COBOLソースプログラムのVALUE句に対応する初期値の設定処理を再実行し、インスタンスを再利用する(S1806)。
このように、変換プログラム実行システム120では、サブプログラムに対応するインスタンスがキャッシュで管理され、再利用される。これにより、サブプログラムを実行するたびに集団項目に属する各基本項目のデータ領域の位置に関する情報を計算する必要がなく、処理負荷を軽減することができる。
以上、本発明の一実施形態であるプログラム変換システム100及び変換プログラム実行システム120について説明した。
プログラム変換システム100では、COBOLソースプログラムのデータ定義において、集団項目に属する基本項目については、当該集団項目を実現するクラスのメンバ変数として定義される。これにより、集団項目に属する各基本項目のデータ領域は、初めから、集団項目のデータ領域内に確保される。そのため、集団項目単位でデータ転送を実行する際に、各基本項目の値を集団項目のデータ領域にコピーする等の準備は不要である。従って、COBOLソースプログラムから変換されたJavaソースプログラムの実行時における、集団項目単位でのデータ転送の処理コストを削減することが可能となる。
また、変換プログラム実行システム120では、サブプログラムに対応するインスタンスがキャッシュで管理され、再利用される。即ち、サブプログラムが実行されるたびにインスタンスの生成を行う必要がない。従って、集団項目の定義を含むサブプログラムが繰り返し実行される場合において、サブプログラムの実行のたびに集団項目に属する各基本項目のデータ領域の位置に関する情報を計算する必要がない。これにより、サブプログラムを実行する際の処理負荷を軽減することが可能となる。
なお、本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更/改良され得るととともに、本発明にはその等価物も含まれる。
100 プログラム変換システム
110 ホストコンピュータ
120 変換プログラム実行システム
130 COBOLプログラム
140 COBOLソースプログラム
150 Javaソースプログラム
160 Javaバイトコード
200 変換規則記憶部
210 プログラム変換部
211 データ定義読み取り部
212 集団項目定義コード出力部
213 第1の基本項目定義コード出力部
214 第2の基本項目定義コード出力部
220 COBOLソースプログラム記憶部
230 Javaソースプログラム記憶部
300 JavaVM実行部
310 Javaバイトコード記憶部
320 プログラム実行部
321 インスタンスキャッシュ部
322 インスタンス管理部

Claims (4)

  1. OBOLソースプログラムのデータ部におけるデータ定義を順次読み込むデータ定義読み取り部と、
    前記データ定義が集団項目の定義である場合、avaソースプログラムにおいて当該集団項目を実現するための第1のクラスの第1のインスタンスを生成する第1のソースコードを出力する集団項目定義コード出力部と、
    前記データ定義が基本項目の定義であり、かつ、レベルが最上位である場合、前記Javaソースプログラムにおいて当該基本項目を実現するための第2のクラスの第2のインスタンスを生成する第2のソースコードを出力する第1の基本項目定義コード出力部と、
    前記データ定義が基本項目の定義であり、かつ、レベルが最上位でない場合、当該基本項目を実現するための第3のクラスの第3のインスタンスを前記第1のクラスのメンバ変数とする第3のソースコードを出力する第2の基本項目定義コード出力部と、
    前記出力されたソースコードを含むJavaソースプログラムに基づいて動作するプログラム実行部と、
    を備え、
    前記プログラム実行部は、
    前記第1のソースコード及び前記第3のソースコードに基づいた前記第1のクラスの前記第1のインスタンスの生成時に、前記第1のクラスの前記第1のインスタンスのデータ領域内に前記第1のクラスの前記メンバ変数である前記第3のクラスの前記第3のインスタンスのデータ領域を確保する、
    情報処理システム。
  2. 請求項1に記載の情報処理システムであって、
    前記プログラム実行部は、
    前記COBOLソースプログラムにおいてCALL文で呼び出されるサブプログラムに対応するJavaソースプログラムのクラスのインスタンスのキャッシュを保持するインスタンスキャッシュ部と、
    前記CALL文から変換された第1の命令が実行されると、前記サブプログラムに対応する前記Javaソースプログラムのクラスのインスタンスが、前記キャッシュに存在しない場合は、当該インスタンスを新たに生成し、前記キャッシュに存在する場合は、前記キャッシュ内の当該インスタンスを、前記COBOLソースプログラムのVALUE句に対応する初期値の設定処理を実行することによってメンバ変数の値を初期化して再利用するインスタンス管理部と、
    を備える情報処理システム。
  3. 請求項2に記載の情報処理システムであって、
    前記サブプログラムは、前記集団項目の前記データ定義を含み、
    前記キャッシュは、前記集団項目における各基本項目について、当該基本項目に対応する前記メンバ変数のデータ領域に関する情報を含む、
    情報処理システム。
  4. 情報処理システムが、
    OBOLソースプログラムのデータ部におけるデータ定義を順次読み込み、
    記データ定義が集団項目の定義である場合、avaソースプログラムにおいて当該集団項目を実現するための第1のクラスの第1のインスタンスを生成する第1のソースコードを出力し、
    記データ定義が基本項目の定義であり、かつ、レベルが最上位である場合、前記Javaソースプログラムにおいて当該基本項目を実現するための第2のクラスの第2のインスタンスを生成する第2のソースコードを出力し、
    記データ定義が基本項目の定義であり、かつ、レベルが最上位でない場合、当該基本項目を実現するための第3のクラスの第3のインスタンスを前記第1のクラスのメンバ変数とする第3のソースコードを出力
    前記第1のソースコード及び前記第3のソースコードに基づいた前記第1のクラスの前記第1のインスタンスの生成時に、前記第1のクラスの前記第1のインスタンスのデータ領域内に前記第1のクラスの前記メンバ変数である前記第3のクラスの前記第3のインスタンスのデータ領域を確保する、
    情報処理方法。
JP2014252202A 2014-12-12 2014-12-12 プログラム変換システム Active JP6251158B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014252202A JP6251158B2 (ja) 2014-12-12 2014-12-12 プログラム変換システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014252202A JP6251158B2 (ja) 2014-12-12 2014-12-12 プログラム変換システム

Publications (2)

Publication Number Publication Date
JP2016115070A JP2016115070A (ja) 2016-06-23
JP6251158B2 true JP6251158B2 (ja) 2017-12-20

Family

ID=56141891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014252202A Active JP6251158B2 (ja) 2014-12-12 2014-12-12 プログラム変換システム

Country Status (1)

Country Link
JP (1) JP6251158B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6458196B1 (ja) * 2018-09-27 2019-01-23 Tis株式会社 プログラム変換システム、変換プログラム実行システム、情報処理システム、プログラム変換方法、変換プログラム実行方法、及び情報処理方法
JP6475888B1 (ja) * 2018-10-05 2019-02-27 Tis株式会社 プログラム変換システム
JP6982920B1 (ja) * 2021-09-07 2021-12-17 株式会社Shift ソースコード変換装置、及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453464B1 (en) * 1998-09-03 2002-09-17 Legacyj. Corp., Inc. Method and apparatus for converting COBOL to Java
JP4724387B2 (ja) * 2004-06-24 2011-07-13 富士通株式会社 プログラム変換プログラム、プログラム変換装置およびプログラム変換方法
JP4144885B2 (ja) * 2004-12-28 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーション・オブジェクトの再利用方法
JP5147626B2 (ja) * 2008-09-30 2013-02-20 インターナショナル・ビジネス・マシーンズ・コーポレーション Cobolコードから変換されたjava(登録商標)コードを含むプログラムを実行するコンピュータ・システム、並びにその方法及びコンピュータ・プログラム

Also Published As

Publication number Publication date
JP2016115070A (ja) 2016-06-23

Similar Documents

Publication Publication Date Title
Verdoolaege et al. Equivalence checking of static affine programs using widening to handle recurrences
US20150154011A1 (en) Transplantation Method and Source-to-Source Compiler
JP6245031B2 (ja) コンパイルプログラム、コンパイル方法およびコンパイル装置
JP5966509B2 (ja) プログラム、コード生成方法および情報処理装置
US9395986B2 (en) Compiling method and compiling apparatus
JP6432450B2 (ja) 並列計算装置、コンパイル装置、並列処理方法、コンパイル方法、並列処理プログラムおよびコンパイルプログラム
JP6251158B2 (ja) プログラム変換システム
JP2011065220A (ja) コンパイラ・プログラム、コンパイル方法及びコンピュータ・システム
Kicherer et al. Seamlessly portable applications: Managing the diversity of modern heterogeneous systems
Finkel et al. Clangjit: Enhancing c++ with just-in-time compilation
Hong et al. Improving simd parallelism via dynamic binary translation
Petitjean et al. XMG 2: Describing description languages
Rieu-Helft et al. How to get an efficient yet verified arbitrary-precision integer library
Mendis et al. Revec: program rejuvenation through revectorization
Xu et al. Copy-and-patch compilation: a fast compilation algorithm for high-level languages and bytecode
JP2013242700A (ja) コード最適化方法、プログラム及びシステム
Paulweber et al. CASM-IR: uniform ASM-based intermediate representation for model specification, execution, and transformation
Fu et al. Efficient and retargetable SIMD translation in a dynamic binary translator
Křikava et al. Manipulating models using internal domain-specific languages
CN112579059B (zh) 支持有限域数据类型和运算符的编译方法
JP6458196B1 (ja) プログラム変換システム、変換プログラム実行システム、情報処理システム、プログラム変換方法、変換プログラム実行方法、及び情報処理方法
US20100077384A1 (en) Parallel processing of an expression
JP6897213B2 (ja) コード生成装置、コード生成方法及びコード生成プログラム
CN114041116A (zh) 数据移动任务优化的方法和装置
KR20080018692A (ko) 다양한 정밀도에 대한 고속 부동 소수점 연산을 수행하는방법, 프로그래밍 구조 및 기록 매체

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20160818

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170803

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171124

R150 Certificate of patent or registration of utility model

Ref document number: 6251158

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250