JP2636058B2 - アセンブラ原始プログラムをcobol原始プログラムに変換する装置 - Google Patents
アセンブラ原始プログラムをcobol原始プログラムに変換する装置Info
- Publication number
- JP2636058B2 JP2636058B2 JP5094490A JP5094490A JP2636058B2 JP 2636058 B2 JP2636058 B2 JP 2636058B2 JP 5094490 A JP5094490 A JP 5094490A JP 5094490 A JP5094490 A JP 5094490A JP 2636058 B2 JP2636058 B2 JP 2636058B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cobol
- storage device
- file
- source program
- 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.)
- Expired - Lifetime
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] 本発明は、アセンブラ原始プログラムをCOBOL原始プ
ログラムに変換する装置に関する。
ログラムに変換する装置に関する。
[従来の技術] 従来、この種のプログラム変換は、アセンブラ原始プ
ログラム内の各命令を解析し、フローチャートを作成し
た後に、該フローチャートをもとにCOBOL原始プログラ
ムに書き換えるか、あるいは、アセンブラ原始プログラ
ム内の各命令を解析し、命令単位でCOBOL原始プログラ
ムに変換していたがいずれも人手によって行なわれてい
た。
ログラム内の各命令を解析し、フローチャートを作成し
た後に、該フローチャートをもとにCOBOL原始プログラ
ムに書き換えるか、あるいは、アセンブラ原始プログラ
ム内の各命令を解析し、命令単位でCOBOL原始プログラ
ムに変換していたがいずれも人手によって行なわれてい
た。
第28図(a),(b)はアセンブラ原始プログラムの
一部分を示す図と、その部分の従来の命令毎の変換によ
るCOBOL原始プログラム、第29図は第28図(b)のCOBOL
原始プログラムが整理修正された結果を示す図である。
一部分を示す図と、その部分の従来の命令毎の変換によ
るCOBOL原始プログラム、第29図は第28図(b)のCOBOL
原始プログラムが整理修正された結果を示す図である。
アセンブラコード511〜514はアセンブラ原始プログラ
ムの一部分、COBOLデータ515〜5113およびCOBOLコード5
114〜5118は変換されたCOBOL原始プログラムの一部分で
ある。ここでは、アセンブラコード511をCOBOLデータ51
5およびCOBOLコード5114に、アセンブラコード512をCOB
OLデータ516〜5114およびCOBOLコード5115〜5116に、ア
センブラコード513〜514をCOBOLコード5117〜5118に各
々変換した後、第29図に示すようにデータ部分、コード
部分に並べ替え、さらにCOBOLデータ515〜5113について
は、どこで定義し、どこで参照しているかを該COBOL原
始プログラム内の全ての行について調べ、データ名の重
複、同一データの複数データ名定義の修正を行ってい
た。
ムの一部分、COBOLデータ515〜5113およびCOBOLコード5
114〜5118は変換されたCOBOL原始プログラムの一部分で
ある。ここでは、アセンブラコード511をCOBOLデータ51
5およびCOBOLコード5114に、アセンブラコード512をCOB
OLデータ516〜5114およびCOBOLコード5115〜5116に、ア
センブラコード513〜514をCOBOLコード5117〜5118に各
々変換した後、第29図に示すようにデータ部分、コード
部分に並べ替え、さらにCOBOLデータ515〜5113について
は、どこで定義し、どこで参照しているかを該COBOL原
始プログラム内の全ての行について調べ、データ名の重
複、同一データの複数データ名定義の修正を行ってい
た。
[発明が解決しようとする課題] 上述した従来のプログラム変換方式は、アセンブラ原
始プログラムの解析を人手により行なうことから、時間
がかかり、また、フローチャートを作成してCOBOL原始
プログラムへの書き換えるときは、新規にプログラムを
作成するのと同程度の労力を必要とし、さらに、命令単
位で変換するときは、データ名の管理に多大の労力を必
要とするという欠点がある。
始プログラムの解析を人手により行なうことから、時間
がかかり、また、フローチャートを作成してCOBOL原始
プログラムへの書き換えるときは、新規にプログラムを
作成するのと同程度の労力を必要とし、さらに、命令単
位で変換するときは、データ名の管理に多大の労力を必
要とするという欠点がある。
本発明の目的はアセンブラ原始プログラムからCOBOL
原始プログラムへの変換を自動的に行なうプログラム変
換装置を提供することである。
原始プログラムへの変換を自動的に行なうプログラム変
換装置を提供することである。
[課題を解決するための手段] 本発明のアセンブラ原始プログラムをCOBOL原始プロ
グラムに変換する装置は、 第1の記憶装置と、 アセンブラ原始プログラムからアセンブラ命令を含む
レコードを1つづつ読出し、該レコードの内容がデータ
に関する命令の場合はそのデータ名とデータ長が書込ま
れたデータ表を作成し、ファイルに関する命令の場合は
そのファイル名とバッファ名とバッファ長が書込まれた
ファイル表を作成して第1の記憶装置に格納するデータ
表ファイル表作成手段と、 第2の記憶装置と、 前記アセンブラ原始プログラムから前記レコードを1
つづつ読出して第2の記憶装置に格納するレコード読出
し手段と、 第2の記憶装置に格納されたレコードの指定されたア
ドレスから検索を開始し、始めに検出した、アセンブラ
の区切り文字「(」,「)」,「,」,「=」,「’」
の中の1つを出力する区切り文字抽出手段と、 第2の記憶装置上の区切り文字抽出手段が出力したア
ドレスから区切り文字までの文字列を抽出して出力する
文字列抽出手段と、 第3の記憶装置と、 前記文字列抽出手段が出力した文字列から該レコード
のオペランドを所定の規約に従ってCOBOLのアドレス表
現に変換し、アドレス表現表として第3の記憶装置上に
設定するアドレス表現変更手段と、 第4の記憶装置と、 前記アドレス表現表ごとに、該レコードのアセンブラ
命令に対応するCOBOL命令とそれにともなって書込まれ
る固定値と、格納位置を示すアドレスを出力する命令指
定手段と、 前記アドレス表現表と命令指定手段とからCOBOLコー
ド部と、COBOLデータ部を編成して第4の記憶装置に格
納する文字列格納手段と、 前記データ表のデータ名とデータ長とをCOBOLのデー
タ形式に変換するデータ変換手段と、 第5および第6の記憶装置と、 前記COBOLコード部を第5の記憶装置へ、COBOLデータ
部を第6の記憶装置へ格納し、全レコードのCOBOLコー
ド部、COBOLデータ部の格納終了後前記データ変換手段
を介してCOBOLのデータ形式に変換されたデータ表の内
容を第6の記憶装置へ格納するファイル格納手段と、 第7の記憶装置と、 予め決められているCOBOLの見出し部、環境部、デー
タ部、ベースデータ節、ワークデータ節、手続部を表示
す文字列が格納されている内部テーブルと、 全レコードのCOBOLコード部、COBOLデータ部の格納終
了後、該アセンブラ原始プログラムに該当するCOBOLの
見出し部と環境部を表示する文字列を内部テーブルから
読出して第7の記憶装置に書込み、前記ファイル表に格
納されている全ファイル名を読出してCOBOLで決められ
ているファイル定義の形式に編集して第7の記憶装置に
書込み、内部テーブルからデータ部を読出して第7の記
憶装置に書込み、前記ファイル表に格納されている全て
のファイル名、バッファ名、バッファ長を読出しCOBOL
で決められているレコード定義形式に編集して第7の記
憶装置に書込み、次に、内部テーブルからベースデータ
節とワークデータ節の表示を読出して第7の記憶装置に
書込み、第6の記憶装置から1レコード分づつのCOBOL
データ部の内容およびデータ変換表で変換されたデータ
表の内容を読出して第7の記憶装置に書込み、次に内部
テーブルから手続部の表示を読出して第7の記憶装置に
書込み、第5の記憶装置からCOBOLコード部をレコード
毎に読出して第7の記憶装置に書込むデータ部コード部
合成手段を有している。
グラムに変換する装置は、 第1の記憶装置と、 アセンブラ原始プログラムからアセンブラ命令を含む
レコードを1つづつ読出し、該レコードの内容がデータ
に関する命令の場合はそのデータ名とデータ長が書込ま
れたデータ表を作成し、ファイルに関する命令の場合は
そのファイル名とバッファ名とバッファ長が書込まれた
ファイル表を作成して第1の記憶装置に格納するデータ
表ファイル表作成手段と、 第2の記憶装置と、 前記アセンブラ原始プログラムから前記レコードを1
つづつ読出して第2の記憶装置に格納するレコード読出
し手段と、 第2の記憶装置に格納されたレコードの指定されたア
ドレスから検索を開始し、始めに検出した、アセンブラ
の区切り文字「(」,「)」,「,」,「=」,「’」
の中の1つを出力する区切り文字抽出手段と、 第2の記憶装置上の区切り文字抽出手段が出力したア
ドレスから区切り文字までの文字列を抽出して出力する
文字列抽出手段と、 第3の記憶装置と、 前記文字列抽出手段が出力した文字列から該レコード
のオペランドを所定の規約に従ってCOBOLのアドレス表
現に変換し、アドレス表現表として第3の記憶装置上に
設定するアドレス表現変更手段と、 第4の記憶装置と、 前記アドレス表現表ごとに、該レコードのアセンブラ
命令に対応するCOBOL命令とそれにともなって書込まれ
る固定値と、格納位置を示すアドレスを出力する命令指
定手段と、 前記アドレス表現表と命令指定手段とからCOBOLコー
ド部と、COBOLデータ部を編成して第4の記憶装置に格
納する文字列格納手段と、 前記データ表のデータ名とデータ長とをCOBOLのデー
タ形式に変換するデータ変換手段と、 第5および第6の記憶装置と、 前記COBOLコード部を第5の記憶装置へ、COBOLデータ
部を第6の記憶装置へ格納し、全レコードのCOBOLコー
ド部、COBOLデータ部の格納終了後前記データ変換手段
を介してCOBOLのデータ形式に変換されたデータ表の内
容を第6の記憶装置へ格納するファイル格納手段と、 第7の記憶装置と、 予め決められているCOBOLの見出し部、環境部、デー
タ部、ベースデータ節、ワークデータ節、手続部を表示
す文字列が格納されている内部テーブルと、 全レコードのCOBOLコード部、COBOLデータ部の格納終
了後、該アセンブラ原始プログラムに該当するCOBOLの
見出し部と環境部を表示する文字列を内部テーブルから
読出して第7の記憶装置に書込み、前記ファイル表に格
納されている全ファイル名を読出してCOBOLで決められ
ているファイル定義の形式に編集して第7の記憶装置に
書込み、内部テーブルからデータ部を読出して第7の記
憶装置に書込み、前記ファイル表に格納されている全て
のファイル名、バッファ名、バッファ長を読出しCOBOL
で決められているレコード定義形式に編集して第7の記
憶装置に書込み、次に、内部テーブルからベースデータ
節とワークデータ節の表示を読出して第7の記憶装置に
書込み、第6の記憶装置から1レコード分づつのCOBOL
データ部の内容およびデータ変換表で変換されたデータ
表の内容を読出して第7の記憶装置に書込み、次に内部
テーブルから手続部の表示を読出して第7の記憶装置に
書込み、第5の記憶装置からCOBOLコード部をレコード
毎に読出して第7の記憶装置に書込むデータ部コード部
合成手段を有している。
[作用] アセンブラ原始プログラムからの命令毎のレコードを
1つづつ読出して該レコードの種類によりファイル表か
データ表を作成して格納し、一方該レコード毎に所定の
規約に従ってCOBOLのアドレス表現表を作成し、それを
基にしてCOBOLコード部とCOBOLデータ部とを構成し、全
レコードについてCOBOLコード部とCOBOLデータ部をそれ
ぞれのファイルに格納し、次に、COBOL原始プログラム
を編集するファイル上に、該当するCOBOL見出し部およ
び環境部表示を書込み、ファイル表からファイル名をCO
BOLのファイル定義形式で書込み、データ部表示を書込
んで、ファイル表からファイル名、バッファ名、バッフ
ァ長をファイル定義に従って書込み、続いて全てのCOBO
Lデータ部を書込み、続いて前記データ表のデータ名、
データ長をCOBOLのデータ表示に変換した結果を書込
み、次に、手続部表示を書込んで、COBOLコード部をレ
コード毎に下記込むことにより、自動的にアセンブラ原
始プログラムをCOBOL原始プログラムに変換することが
できる。
1つづつ読出して該レコードの種類によりファイル表か
データ表を作成して格納し、一方該レコード毎に所定の
規約に従ってCOBOLのアドレス表現表を作成し、それを
基にしてCOBOLコード部とCOBOLデータ部とを構成し、全
レコードについてCOBOLコード部とCOBOLデータ部をそれ
ぞれのファイルに格納し、次に、COBOL原始プログラム
を編集するファイル上に、該当するCOBOL見出し部およ
び環境部表示を書込み、ファイル表からファイル名をCO
BOLのファイル定義形式で書込み、データ部表示を書込
んで、ファイル表からファイル名、バッファ名、バッフ
ァ長をファイル定義に従って書込み、続いて全てのCOBO
Lデータ部を書込み、続いて前記データ表のデータ名、
データ長をCOBOLのデータ表示に変換した結果を書込
み、次に、手続部表示を書込んで、COBOLコード部をレ
コード毎に下記込むことにより、自動的にアセンブラ原
始プログラムをCOBOL原始プログラムに変換することが
できる。
[実施例] 次に、本発明の実施例について図面を参照して説明す
る。
る。
第1図は本発明のアセンブラ原始プログラムをCOBOL
原始プログラムに変換する装置の一実施例のブロック
図、第2図、第3図はそれぞれ第1図に示すデータ表9
とファイル表10の構成図、第4図はCOBOL原始プログラ
ムバッファ5とアセンブラ原始プログラムバッファ15を
示す図、第5図はアセンブラ原始プログラムの構成を示
す図、第6図はアドレス表現表の説明図、第7図はアセ
ンブラプログラムの移送命令の構成を示す図、8図は移
送命令16のCOBOLコード部17を示す図、第9図はアセン
ブラプログラムの編集命令19の構成を示す図、第10図は
編集命令19のCOBOLデータ部21を示す図、第11図は編集
命令19のCOBOLコード部22を示す図、第12図はアセンブ
ラプログラムの比較分岐命令25の構成例を示す図、第13
図はCOBOLの比較分岐表、第14図は比較命令251のCOBOL
データ部27を示す図、第15図は分岐命令252のCOBOLコー
ド部28を示す図、第16図第17図はそれぞれ第1図中のデ
ータ部コード部合成手段8の内部テーブルの見出し部と
環境部の表示を示す図、第18図、第20図はそれぞれCOBO
Lのファイル定義、レコード定義を示す図、第19図、第2
1図、第22図はそれぞれデータ部コード部合成手段8の
データ部表示、ベースデータ節表示、ワークデータ節表
示を示す図、第23図(a),(b),(c)はそれぞれ
第1図中の文字列抽出手段12の処理のフローチャート、
原文字列、抽出された文字を示す図、第24図(a),
(b)はそれぞれ第1図中の区切り文字抽出手段13の処
理のフローチャート、原文字列を示す図、第25図
(a),(b),(c)は第1図中の文字列格納手段18
の処理のフローチャート、原文字列および格納後の文字
列を示す図、第26図はCOBOL注釈行を示す図、第27図は
データ部コード部合成手段8の内部テーブルの手続部の
表示を示す図である。
原始プログラムに変換する装置の一実施例のブロック
図、第2図、第3図はそれぞれ第1図に示すデータ表9
とファイル表10の構成図、第4図はCOBOL原始プログラ
ムバッファ5とアセンブラ原始プログラムバッファ15を
示す図、第5図はアセンブラ原始プログラムの構成を示
す図、第6図はアドレス表現表の説明図、第7図はアセ
ンブラプログラムの移送命令の構成を示す図、8図は移
送命令16のCOBOLコード部17を示す図、第9図はアセン
ブラプログラムの編集命令19の構成を示す図、第10図は
編集命令19のCOBOLデータ部21を示す図、第11図は編集
命令19のCOBOLコード部22を示す図、第12図はアセンブ
ラプログラムの比較分岐命令25の構成例を示す図、第13
図はCOBOLの比較分岐表、第14図は比較命令251のCOBOL
データ部27を示す図、第15図は分岐命令252のCOBOLコー
ド部28を示す図、第16図第17図はそれぞれ第1図中のデ
ータ部コード部合成手段8の内部テーブルの見出し部と
環境部の表示を示す図、第18図、第20図はそれぞれCOBO
Lのファイル定義、レコード定義を示す図、第19図、第2
1図、第22図はそれぞれデータ部コード部合成手段8の
データ部表示、ベースデータ節表示、ワークデータ節表
示を示す図、第23図(a),(b),(c)はそれぞれ
第1図中の文字列抽出手段12の処理のフローチャート、
原文字列、抽出された文字を示す図、第24図(a),
(b)はそれぞれ第1図中の区切り文字抽出手段13の処
理のフローチャート、原文字列を示す図、第25図
(a),(b),(c)は第1図中の文字列格納手段18
の処理のフローチャート、原文字列および格納後の文字
列を示す図、第26図はCOBOL注釈行を示す図、第27図は
データ部コード部合成手段8の内部テーブルの手続部の
表示を示す図である。
このプログラム変換装置は、アセンブラ原始プログラ
ムファイル1と、データ表ファイル表作成手段6と、デ
ータ表9、ファイル表10格納用のバッファ(不図示)
と、プログラム変換手段7と、アドレス表現変換手段11
と、アセンブラ原始プログラムバッファ15と、COBOL原
始プログラムバッファ5と、文字列抽出手段12と、区切
り文字抽出手段13と、文字列格納手段18と、COBOLコー
ド部ファイル2と、COBOLデータ部ファイル3と、デー
タ部コード部合成手段8と、COBOL原始プログラムファ
イル4からなる。データ表ファイル表作成手段6はアセ
ンブラ原始プログラムファイル1からアセンブラ原始プ
ログラムを1レコードづつ順次読込み、該レコードがデ
ータ関連の場合はデータ名91とそのデータ長92を、ファ
イル関連の場合はファイル名101、バッファ名102、バッ
ファ長103をそれぞれの読込み毎にバッファ(不図示)
にデータ表9、ファイル表10として格納する。プログラ
ム変換手段7はアセンブラ原始プログラム1から第5図
に示す命令毎のレコード23を読出してアセンブラ原始プ
ログラムバッファ15に格納する手段と、ラベル231、命
令232、オペランド233の解析を行ない、アドレス表現変
換手段11に、第6図に示すCOBOLのアドレス表現のため
中間形式のアドレス表現表14を作成させ、また、文字列
格納手段18に対してCOBOL命令語とそれにともなう固定
値および編集のためのアドレスを指示する手段と、この
指示により文字列格納手段18にアドレス表現表14から第
4図に示すCOBOL原始プログラムバッファ5上に見出し
部になるCOBOLコード部(例えば第8図に示す17)およ
びCOBOLデータ部(例えば第10図に示す21)を編集さ
せ、その語該COBOLコード部とCOBOLデータ部をそれぞれ
COBOLコード部ファイル2とCOBOLデータ部ファイル3に
格納し、さらに、全レコードについてCOBOLコード部とC
OBOLデータ部のファイルへの格納が終わるとデータ表9
に格納されているデータ名91とデータ長92をCOBOLのデ
ータ形式に変換してCOBOLデータ部ファイル3に格納さ
せる手段を有している。COBOLコード部はCOBOLの手続部
以降に格納される命令に関する部分であり、COBOLデー
タ部はCOBOLのデータ部に格納されるデータ定義に関す
る部分である。データ部コード部合成手段8はCOBOLの
見出し部32(第16図)、環境部33(第17図)、データ部
35(第19図)、ベースデータ節37(第21図)、ワークデ
ータ節38(第22図)、手続部52(第27図)を含む内部テ
ーブル(不図示)を有し、前記全レコードのCOBOLコー
ド部ファイル2、COBOLデータ部ファイル3への格納が
終了後、見出し部32と環境部33を内部テーブルから読出
してCOBOL原始プログラムファイル4(以下ファイル4
と記す)に書込みファイル表10からファイル名101を読
出してファイル定義34(第18図)形式に編集してファイ
ル4に書込み、データ部35を内部テーブルから読出して
ファイル4に書込み、ファイル表10からファイル名1
01、バッファ名102、バッファ長103を読出し、レコード
定義36(第20図)形式に編集してファイル4に書込み、
ベースデータ節37とワークデータ節38を内部テーブルか
ら読出してファイル4に書込み、COBOLデータ部ファイ
ル3からレコード毎のCOBOLデータとCOBOL変換されたデ
ータ表9の内容とを読出してファイル4に書込み、手続
部52を内部テーブルから読出してファイル4に書込ん
で、COBOLコード部ファイル2からレコード毎のCOBOLコ
ード部をファイル4に書込む。また、区切り文字抽出手
段13はアセンブラ原始プログラム用バッファ15に格納さ
れたレコードの指定された位置から検索して区切り文字
「(」,「)」,「,」,「=」,「’」を検出し、そ
の検出した区切り文字を出力する。文字列抽出手段12は
アセンブラ原始プログラム用バッファ15上のレコードの
文字列の中から指定された位置から指示された区切り文
字までの文字列をCOBOL原始プログラムバッファ5内の
指定された位置に書込み、アドレス表現変換手段11に通
知する。
ムファイル1と、データ表ファイル表作成手段6と、デ
ータ表9、ファイル表10格納用のバッファ(不図示)
と、プログラム変換手段7と、アドレス表現変換手段11
と、アセンブラ原始プログラムバッファ15と、COBOL原
始プログラムバッファ5と、文字列抽出手段12と、区切
り文字抽出手段13と、文字列格納手段18と、COBOLコー
ド部ファイル2と、COBOLデータ部ファイル3と、デー
タ部コード部合成手段8と、COBOL原始プログラムファ
イル4からなる。データ表ファイル表作成手段6はアセ
ンブラ原始プログラムファイル1からアセンブラ原始プ
ログラムを1レコードづつ順次読込み、該レコードがデ
ータ関連の場合はデータ名91とそのデータ長92を、ファ
イル関連の場合はファイル名101、バッファ名102、バッ
ファ長103をそれぞれの読込み毎にバッファ(不図示)
にデータ表9、ファイル表10として格納する。プログラ
ム変換手段7はアセンブラ原始プログラム1から第5図
に示す命令毎のレコード23を読出してアセンブラ原始プ
ログラムバッファ15に格納する手段と、ラベル231、命
令232、オペランド233の解析を行ない、アドレス表現変
換手段11に、第6図に示すCOBOLのアドレス表現のため
中間形式のアドレス表現表14を作成させ、また、文字列
格納手段18に対してCOBOL命令語とそれにともなう固定
値および編集のためのアドレスを指示する手段と、この
指示により文字列格納手段18にアドレス表現表14から第
4図に示すCOBOL原始プログラムバッファ5上に見出し
部になるCOBOLコード部(例えば第8図に示す17)およ
びCOBOLデータ部(例えば第10図に示す21)を編集さ
せ、その語該COBOLコード部とCOBOLデータ部をそれぞれ
COBOLコード部ファイル2とCOBOLデータ部ファイル3に
格納し、さらに、全レコードについてCOBOLコード部とC
OBOLデータ部のファイルへの格納が終わるとデータ表9
に格納されているデータ名91とデータ長92をCOBOLのデ
ータ形式に変換してCOBOLデータ部ファイル3に格納さ
せる手段を有している。COBOLコード部はCOBOLの手続部
以降に格納される命令に関する部分であり、COBOLデー
タ部はCOBOLのデータ部に格納されるデータ定義に関す
る部分である。データ部コード部合成手段8はCOBOLの
見出し部32(第16図)、環境部33(第17図)、データ部
35(第19図)、ベースデータ節37(第21図)、ワークデ
ータ節38(第22図)、手続部52(第27図)を含む内部テ
ーブル(不図示)を有し、前記全レコードのCOBOLコー
ド部ファイル2、COBOLデータ部ファイル3への格納が
終了後、見出し部32と環境部33を内部テーブルから読出
してCOBOL原始プログラムファイル4(以下ファイル4
と記す)に書込みファイル表10からファイル名101を読
出してファイル定義34(第18図)形式に編集してファイ
ル4に書込み、データ部35を内部テーブルから読出して
ファイル4に書込み、ファイル表10からファイル名1
01、バッファ名102、バッファ長103を読出し、レコード
定義36(第20図)形式に編集してファイル4に書込み、
ベースデータ節37とワークデータ節38を内部テーブルか
ら読出してファイル4に書込み、COBOLデータ部ファイ
ル3からレコード毎のCOBOLデータとCOBOL変換されたデ
ータ表9の内容とを読出してファイル4に書込み、手続
部52を内部テーブルから読出してファイル4に書込ん
で、COBOLコード部ファイル2からレコード毎のCOBOLコ
ード部をファイル4に書込む。また、区切り文字抽出手
段13はアセンブラ原始プログラム用バッファ15に格納さ
れたレコードの指定された位置から検索して区切り文字
「(」,「)」,「,」,「=」,「’」を検出し、そ
の検出した区切り文字を出力する。文字列抽出手段12は
アセンブラ原始プログラム用バッファ15上のレコードの
文字列の中から指定された位置から指示された区切り文
字までの文字列をCOBOL原始プログラムバッファ5内の
指定された位置に書込み、アドレス表現変換手段11に通
知する。
次に、本実施例の動作について説明する。
アセンブラ原始プログラムファイル1と、COBOLコー
ドファイル2、COBOLデータ部ファイル3、COBOL原始プ
ログラムファイル4に用いられる磁気テープをそれぞれ
の磁気テープ装置に搭載し、データ表9、ファイル表10
が格納される記憶装置(不図示)、COBOL原始プログラ
ムバッファ5、アセンブラ原始プログラムバッファ15を
初期状態にセットし、本実施例を起動する。まず、デー
タ表作成手段6がアセンブラ原始プログラム1から1つ
のレコード23を読出し、その内容によりファイル表10か
データ表9にそれぞれファイル名101、バッファ名102、
バッファ長103、データ名91、データ長92を格納する。
一方、プログラム変換手段7は同じレコード23を読出
し、アセンブラ原始プログラムバッファ15に格納し、ラ
ベル231、命令232、オペランド233を解析する。
ドファイル2、COBOLデータ部ファイル3、COBOL原始プ
ログラムファイル4に用いられる磁気テープをそれぞれ
の磁気テープ装置に搭載し、データ表9、ファイル表10
が格納される記憶装置(不図示)、COBOL原始プログラ
ムバッファ5、アセンブラ原始プログラムバッファ15を
初期状態にセットし、本実施例を起動する。まず、デー
タ表作成手段6がアセンブラ原始プログラム1から1つ
のレコード23を読出し、その内容によりファイル表10か
データ表9にそれぞれファイル名101、バッファ名102、
バッファ長103、データ名91、データ長92を格納する。
一方、プログラム変換手段7は同じレコード23を読出
し、アセンブラ原始プログラムバッファ15に格納し、ラ
ベル231、命令232、オペランド233を解析する。
読込んだレコード23が移送命令16(第7図)で、該移
送命令16の「MVI」は1バイトの文字を指定されたアド
レスに移送する命令とすると、プログラム変換手段7は
アドレス表現変換手段11の処理を起動する。アドレス表
現変換手段11は移送命令16に対応するアドレス表現表
(表2)を作成のためアセンブラ原始プログラムバッフ
ァ15内のバッファ39上の該レコードの操作開始位置「1
6」を示してMVI命令用ルーチン(不図示)を起動する。
それにより、区切り文字抽出手段13は第24図(a)に示
すフローチャートの手順によって動作する。まず、指定
された位置(ステップ111による)「16」上の文字を読
出し(ステップ112)、該文字「4」が区切り文字か否
かを判定する(ステップ113)。区切り文字でないので
次のアドレス「17」上の文字を読出し(ステップ11
5)、該文字「(」を検出し区切り文字を判定して該区
切り文字「(」をアドレス表現変換手段11へ返送する
(ステップ114)。アドレス表現変換手段11は該操作開
始位置「16」と区切り文字「(」を文字列抽出手段12に
指示する。文字抽出手段12は第23図(a)に示すフロー
チャートの手順により、まず、操作開始位置a=「1
6」、区切り文字b=「(」とすると(ステップ101)、
第23図(b)に示す例えばアセンブラ原始プログラムバ
ッファ15内のバッファ39上の位置iを「16」、COBOL原
始プログラムバッファ5内のバッファ40の位置「1」を
jとする(ステップ102)。バッファ39上の位置「16」
の文字「4」を読み「(」か否かを判定する(ステップ
103)。「4」は「(」でないので、「4」をバッファ4
0の位置「1」に書込む(ステップ105)。次に、バッフ
ァ39の位置を「17」、バッファ40の位置を「2」として
(ステップ106)、バッファ39の位置「17」の文字を読
むと「(」でありb=「(」と一致すると判定し(ステ
ップ103)、位置「18」とバッファ40をアドレス表現変
換手段11へ返送する(ステップ104)。アドレス表現変
換手段11は文字抽出手段12の出力した「4」が第6図に
示すアドレス表現表14のデータ名142に該当するため、
変換表24(表1)を参照して「4」を「REG4」に変換し
てアドレス表現表(表2)に格納する。「REG4」はレジ
スタ4に対応するデータで、レジスタと同様の機能を持
つポインタデータによりアクセス可能なデータであるこ
とを示す。
送命令16の「MVI」は1バイトの文字を指定されたアド
レスに移送する命令とすると、プログラム変換手段7は
アドレス表現変換手段11の処理を起動する。アドレス表
現変換手段11は移送命令16に対応するアドレス表現表
(表2)を作成のためアセンブラ原始プログラムバッフ
ァ15内のバッファ39上の該レコードの操作開始位置「1
6」を示してMVI命令用ルーチン(不図示)を起動する。
それにより、区切り文字抽出手段13は第24図(a)に示
すフローチャートの手順によって動作する。まず、指定
された位置(ステップ111による)「16」上の文字を読
出し(ステップ112)、該文字「4」が区切り文字か否
かを判定する(ステップ113)。区切り文字でないので
次のアドレス「17」上の文字を読出し(ステップ11
5)、該文字「(」を検出し区切り文字を判定して該区
切り文字「(」をアドレス表現変換手段11へ返送する
(ステップ114)。アドレス表現変換手段11は該操作開
始位置「16」と区切り文字「(」を文字列抽出手段12に
指示する。文字抽出手段12は第23図(a)に示すフロー
チャートの手順により、まず、操作開始位置a=「1
6」、区切り文字b=「(」とすると(ステップ101)、
第23図(b)に示す例えばアセンブラ原始プログラムバ
ッファ15内のバッファ39上の位置iを「16」、COBOL原
始プログラムバッファ5内のバッファ40の位置「1」を
jとする(ステップ102)。バッファ39上の位置「16」
の文字「4」を読み「(」か否かを判定する(ステップ
103)。「4」は「(」でないので、「4」をバッファ4
0の位置「1」に書込む(ステップ105)。次に、バッフ
ァ39の位置を「17」、バッファ40の位置を「2」として
(ステップ106)、バッファ39の位置「17」の文字を読
むと「(」でありb=「(」と一致すると判定し(ステ
ップ103)、位置「18」とバッファ40をアドレス表現変
換手段11へ返送する(ステップ104)。アドレス表現変
換手段11は文字抽出手段12の出力した「4」が第6図に
示すアドレス表現表14のデータ名142に該当するため、
変換表24(表1)を参照して「4」を「REG4」に変換し
てアドレス表現表(表2)に格納する。「REG4」はレジ
スタ4に対応するデータで、レジスタと同様の機能を持
つポインタデータによりアクセス可能なデータであるこ
とを示す。
また、アドレス表現表(表2)のデータ表現141該当
項に「D」を設定する。「D」は、データ名「REG4」が
COBOL原始プログラムで使用できることを示す。その
後、同様にして、区切り文字抽出手段13から得た操作開
始位置「18」と区切り文字「)」とを文字列抽出手段12
に与えることにより文字列「8」と「19」とを得、アド
レス表現表(表2)のデータ名または文字列の開始位置
を示すオフセット項に「8」がセットされ、レングス14
4該当項にはデータ長が「1」なので「1」がセットさ
れる。また、この区切り文字「)」が第1アドレスの最
終文字でデータがないので第1アドレスのワーグデータ
名(アセンブラに記述されていないためこの変換中に付
与するデータ名)145、データ値146該当バッファ位置に
スペース「△」がセットされる。アドレス表現変換手段
11は次のアドレスの操作開始位置即ち位置「21」を区切
り文字抽出手段13に指示することにより区切り文
字「’」を得、文字列抽出手段12より「C」を得て
「C」をアドレス表現表(表2)の147該当項にセット
する。ここで、「C」はデータ値に定数を有することを
示す表示である。次に、アドレス表現変換手段11は操作
開始位置「23」を区切り文字抽出手段13に指定して区切
り文字「’」および操作開始位置「23」を得、区切り文
字「’」と操作開始位置「23」を文字列抽出手段12に指
定するとにより「+」を得る。「+」は定数を意味する
のでアドレス表現表(表2)のデータ値1412該当項に
「+」をセットする。始めの「’」以降には定数がある
ためこういうときはオフセット項に「1」を、ま
た「’」〜「’」間に定数があるので、そのレングスを
レングス項にセットする。従って「1」がレングスの項
1410にセットされ、ワークデータ名の項148には該当が
ないのでスペース「△」がセットされる。このようにし
てアドレス表現表(表2)が作成されると、プログラム
変換手段7はアセンブラの「MVI」に該当する命令「SUB
STRING△」とその格納位置「12」およびこの命令にもな
う固定値「△ INTO」,「・」とそれらのデータ長と格
納位置を文字列格納手段18に指示する。文字列格納手段
18は第25図(a),(b),(c)に示すフローチャー
トにより、それぞれのメモリまたはバッファの位置、デ
ータ長、格納するCOBOL原始プログラムバッファ5内の
バッファ50上の位置が決められるので1文字づつ格納す
る。例えばバッファ41の位置「2」からレングス4の
「REG4」をバッファ50上の位置24にセットするとき(ス
テップ121)、1→i、24→jとし(ステップ122)、バ
ッファ41の1番目の文字Rをバッファ50の24番目にセッ
トする(ステップ123)。次に、4−1=3で「0」よ
り大なので(ステップ124)、i+1,j+1として(ステ
ップ125)、次の文字「E」をバッファ50の位置「25」
にセットする。このようにしてn=0になるまで操作を
繰返して「REG4」をセットし、さらに第8図に示すCOBO
Lコード部17をバッファ50にセットする。その後、COBOL
原始プログラムバッファ5に編集した内容即ちCOBOLコ
ード部17をプログラム変換手段7がCOBOLコード部ファ
イル2に格納する。
項に「D」を設定する。「D」は、データ名「REG4」が
COBOL原始プログラムで使用できることを示す。その
後、同様にして、区切り文字抽出手段13から得た操作開
始位置「18」と区切り文字「)」とを文字列抽出手段12
に与えることにより文字列「8」と「19」とを得、アド
レス表現表(表2)のデータ名または文字列の開始位置
を示すオフセット項に「8」がセットされ、レングス14
4該当項にはデータ長が「1」なので「1」がセットさ
れる。また、この区切り文字「)」が第1アドレスの最
終文字でデータがないので第1アドレスのワーグデータ
名(アセンブラに記述されていないためこの変換中に付
与するデータ名)145、データ値146該当バッファ位置に
スペース「△」がセットされる。アドレス表現変換手段
11は次のアドレスの操作開始位置即ち位置「21」を区切
り文字抽出手段13に指示することにより区切り文
字「’」を得、文字列抽出手段12より「C」を得て
「C」をアドレス表現表(表2)の147該当項にセット
する。ここで、「C」はデータ値に定数を有することを
示す表示である。次に、アドレス表現変換手段11は操作
開始位置「23」を区切り文字抽出手段13に指定して区切
り文字「’」および操作開始位置「23」を得、区切り文
字「’」と操作開始位置「23」を文字列抽出手段12に指
定するとにより「+」を得る。「+」は定数を意味する
のでアドレス表現表(表2)のデータ値1412該当項に
「+」をセットする。始めの「’」以降には定数がある
ためこういうときはオフセット項に「1」を、ま
た「’」〜「’」間に定数があるので、そのレングスを
レングス項にセットする。従って「1」がレングスの項
1410にセットされ、ワークデータ名の項148には該当が
ないのでスペース「△」がセットされる。このようにし
てアドレス表現表(表2)が作成されると、プログラム
変換手段7はアセンブラの「MVI」に該当する命令「SUB
STRING△」とその格納位置「12」およびこの命令にもな
う固定値「△ INTO」,「・」とそれらのデータ長と格
納位置を文字列格納手段18に指示する。文字列格納手段
18は第25図(a),(b),(c)に示すフローチャー
トにより、それぞれのメモリまたはバッファの位置、デ
ータ長、格納するCOBOL原始プログラムバッファ5内の
バッファ50上の位置が決められるので1文字づつ格納す
る。例えばバッファ41の位置「2」からレングス4の
「REG4」をバッファ50上の位置24にセットするとき(ス
テップ121)、1→i、24→jとし(ステップ122)、バ
ッファ41の1番目の文字Rをバッファ50の24番目にセッ
トする(ステップ123)。次に、4−1=3で「0」よ
り大なので(ステップ124)、i+1,j+1として(ステ
ップ125)、次の文字「E」をバッファ50の位置「25」
にセットする。このようにしてn=0になるまで操作を
繰返して「REG4」をセットし、さらに第8図に示すCOBO
Lコード部17をバッファ50にセットする。その後、COBOL
原始プログラムバッファ5に編集した内容即ちCOBOLコ
ード部17をプログラム変換手段7がCOBOLコード部ファ
イル2に格納する。
次に、編集命令19(第9図)のCOBOL変換について説
明する。
明する。
この命令EDはパックモード10進数をアンパックモード
10進数に変換する命令とする。まず、データ表ファイル
表作成手段6によりファイル表10が作成される。次に、
プログラム変換手段7はアセンブラ原始プログラム用バ
ッファ15に1コード分の文字列「PRW+34(4),MP2」
を読込みアドレス表現変換手段11を起動する。アドレス
表現変換手段11はアセンブラの「ED」命令用ルーチンを
起動して移送命令16のときと同様の方法でオペランドを
解析し、表3に示すアドレス表現表をセットする。アド
レス表現表(表3)がセットされると、プログラム変換
手段7が文字列格納手段18に編集命令19に必要な命令、
固定値、格納位置を示してアドレス表現表(表3)から
COBOLデータ部21(第10図)およびCOBOLコード部22(第
11図)をCOBOL原始プログラムバッファ5上に編集さ
せ、その後、COBOLデータ部21をCOBOLデータ部ファイル
3に、COBOLコード部22をCOBOLコード部ファイル2に格
納する。ここで、COBOLデータ部21、COBOLコード部22の
MWC−0004は4バイト長の文字データ、MWU−0004は4バ
イト長のアンパックモード10進数データ、MWC−0004は
4バイト長の文字データ、PWP−0004は4バイト長のパ
ックモード10進数データを表わす。
10進数に変換する命令とする。まず、データ表ファイル
表作成手段6によりファイル表10が作成される。次に、
プログラム変換手段7はアセンブラ原始プログラム用バ
ッファ15に1コード分の文字列「PRW+34(4),MP2」
を読込みアドレス表現変換手段11を起動する。アドレス
表現変換手段11はアセンブラの「ED」命令用ルーチンを
起動して移送命令16のときと同様の方法でオペランドを
解析し、表3に示すアドレス表現表をセットする。アド
レス表現表(表3)がセットされると、プログラム変換
手段7が文字列格納手段18に編集命令19に必要な命令、
固定値、格納位置を示してアドレス表現表(表3)から
COBOLデータ部21(第10図)およびCOBOLコード部22(第
11図)をCOBOL原始プログラムバッファ5上に編集さ
せ、その後、COBOLデータ部21をCOBOLデータ部ファイル
3に、COBOLコード部22をCOBOLコード部ファイル2に格
納する。ここで、COBOLデータ部21、COBOLコード部22の
MWC−0004は4バイト長の文字データ、MWU−0004は4バ
イト長のアンパックモード10進数データ、MWC−0004は
4バイト長の文字データ、PWP−0004は4バイト長のパ
ックモード10進数データを表わす。
注35,4はアセンブラは0から計数し、COBOLが1から
数えるため34が35,3が4に表示される。
数えるため34が35,3が4に表示される。
次に、比較分岐命令25(第12図)のCOBOL原始プログ
ラムへの変換について説明する。
ラムへの変換について説明する。
比較命令CLCはあるアドレスにある複数バイトのデー
タと他のアドレスにある複数バイトのデータあるいは文
字列とを比較する命令であり、分岐命令BEは直前の比較
命令により「等しい」という条件を満足したときオペラ
ンドで示されたアドレスに分岐する命令とする。まず、
データ表ファイル表作成手段6により、ファイル表10を
作成する。次に、プログラム変換手段7はアセンブラ原
始プログラム用バッファ15に1レコード分の文字列「AD
W,C'********’」を読込み、アドレス表現変換
手段11を起動する。
タと他のアドレスにある複数バイトのデータあるいは文
字列とを比較する命令であり、分岐命令BEは直前の比較
命令により「等しい」という条件を満足したときオペラ
ンドで示されたアドレスに分岐する命令とする。まず、
データ表ファイル表作成手段6により、ファイル表10を
作成する。次に、プログラム変換手段7はアセンブラ原
始プログラム用バッファ15に1レコード分の文字列「AD
W,C'********’」を読込み、アドレス表現変換
手段11を起動する。
アドレス表現変換手段11は移送命令のときと同様の方
法でオペランドを解析し、CLC命令に対応するルーチン
を起動して表4に示すアドレス表現表をセットする。ア
ドレス表現表(表4)がセットされると、プログラム変
換手段7は必要な情報を与えて文字列格納手段18にCOBO
L原始プログラムバッファ5上にCOBOLデータ部27を組立
てさせ、COBOLデータ部ファイル3に格納する。ここでC
WD−0001は値「********」を持つ8バイトの文
字データであることを示し、そのデータの名前は当該プ
ログラムで一意となるように記憶装置上で制御する。次
に、プログラム変換手段7は第12図に示す次のレコード
252をアセンブラ原始プログラムファイル1よりアセン
ブラ原始プログラムバッファ15に読込み、第13図に示す
比較分岐表29をセットする。
法でオペランドを解析し、CLC命令に対応するルーチン
を起動して表4に示すアドレス表現表をセットする。ア
ドレス表現表(表4)がセットされると、プログラム変
換手段7は必要な情報を与えて文字列格納手段18にCOBO
L原始プログラムバッファ5上にCOBOLデータ部27を組立
てさせ、COBOLデータ部ファイル3に格納する。ここでC
WD−0001は値「********」を持つ8バイトの文
字データであることを示し、そのデータの名前は当該プ
ログラムで一意となるように記憶装置上で制御する。次
に、プログラム変換手段7は第12図に示す次のレコード
252をアセンブラ原始プログラムファイル1よりアセン
ブラ原始プログラムバッファ15に読込み、第13図に示す
比較分岐表29をセットする。
ここで比較条件291は表5に示す比較命令変換表によ
り変換され、分岐先292は第12図の分岐命令252のオペラ
ンドの値をそのままセットしたものである。その後、プ
ログラム変換手段7は、比較分岐表29およびアドレス表
現表(表4)から文字列格納手段18にCOBOL原始プログ
ラムバッファ5上にCOBOLデータ部27およびCOBOLコード
部28を組立てさせ、それぞれCOBOLデータ部ファイル
3、COBOLコード部ファイル2に格納する。上記のよう
にして一連のアセンブラ原始プログラムをCOBOLコード
部ファイル2、COBOLデータ部ファイル3に格納してし
まうと、プログラム変換手段7がデータ表9のデータ名
91、データ長92をCOBOLのデータ形式に変換してCOBOLデ
ータ部ファイル3へ格納する。その後、データ部コード
部合成手段8はCOBOL原始プログラムにおける見出し部3
2および環境部33をそれぞれ内部テーブルから読出して
ファイル4に書込み、ファイル表10から全レコードにつ
いてファイル名101を読出し、レコード毎に第18図に示
すファイル定義34の形式に編集してファイル4に書込
み、次に、第19図に示すデータ部35を内部テーブルから
読出してファイル4に書込み、ファイル表10からファイ
ル名101、ファイル名102、バッファ長103を得てレコー
ド定義36の形式に編集しファイル4に書込む操作を全レ
コードについて行なう。次に、COBOL原始プログラムに
おけるベースデータ節37、ワークデータ節38を内部テー
ブルから読出してファイル4に書込む。次に、データ部
コード部合成手段8はCOBOLデータ部ファイル3から1
レコードづつCOBOLデータ部を読んでファイル4に書込
み、COBOL原始プログラムにおける手続部52を内部テー
ブルから読出してファイル4に書込み、COBOLコード部
ファイル2から1レコードづつCOBOLコード部を読出し
てファイル4に書込む。以上の処理によりCOBOL原始プ
ログラムがファイル4上に合成され格納される。
り変換され、分岐先292は第12図の分岐命令252のオペラ
ンドの値をそのままセットしたものである。その後、プ
ログラム変換手段7は、比較分岐表29およびアドレス表
現表(表4)から文字列格納手段18にCOBOL原始プログ
ラムバッファ5上にCOBOLデータ部27およびCOBOLコード
部28を組立てさせ、それぞれCOBOLデータ部ファイル
3、COBOLコード部ファイル2に格納する。上記のよう
にして一連のアセンブラ原始プログラムをCOBOLコード
部ファイル2、COBOLデータ部ファイル3に格納してし
まうと、プログラム変換手段7がデータ表9のデータ名
91、データ長92をCOBOLのデータ形式に変換してCOBOLデ
ータ部ファイル3へ格納する。その後、データ部コード
部合成手段8はCOBOL原始プログラムにおける見出し部3
2および環境部33をそれぞれ内部テーブルから読出して
ファイル4に書込み、ファイル表10から全レコードにつ
いてファイル名101を読出し、レコード毎に第18図に示
すファイル定義34の形式に編集してファイル4に書込
み、次に、第19図に示すデータ部35を内部テーブルから
読出してファイル4に書込み、ファイル表10からファイ
ル名101、ファイル名102、バッファ長103を得てレコー
ド定義36の形式に編集しファイル4に書込む操作を全レ
コードについて行なう。次に、COBOL原始プログラムに
おけるベースデータ節37、ワークデータ節38を内部テー
ブルから読出してファイル4に書込む。次に、データ部
コード部合成手段8はCOBOLデータ部ファイル3から1
レコードづつCOBOLデータ部を読んでファイル4に書込
み、COBOL原始プログラムにおける手続部52を内部テー
ブルから読出してファイル4に書込み、COBOLコード部
ファイル2から1レコードづつCOBOLコード部を読出し
てファイル4に書込む。以上の処理によりCOBOL原始プ
ログラムがファイル4上に合成され格納される。
また、プログラム変換手段7は上記の命令以外につい
てもそれぞれの命令に対応するルーチンにより上記と同
様の方法によりアセンブラ原始プログラムからCOBOL原
始プログラムへの変換を行なうことができる。ただし、
ハードウエアを直接制御する命令等COBOLでは表現でき
ないものについては、第26図に示すCOBOL注釈行31とし
てCOBOLコード部ファイル2またはCOBOLデータ部ファイ
ルに書込み、COBOLではなく別に処理されることにな
る。
てもそれぞれの命令に対応するルーチンにより上記と同
様の方法によりアセンブラ原始プログラムからCOBOL原
始プログラムへの変換を行なうことができる。ただし、
ハードウエアを直接制御する命令等COBOLでは表現でき
ないものについては、第26図に示すCOBOL注釈行31とし
てCOBOLコード部ファイル2またはCOBOLデータ部ファイ
ルに書込み、COBOLではなく別に処理されることにな
る。
[発明の効果] 以上説明したように本発明は、アセンブラ原始プログ
ラムの解析をプログラム変換手段により機械的に行な
い、COBOL原始プログラムのデータ部とコード部の並べ
換えをデータ部コード部合成手段により機械的に行なう
ことにより、アセンブラ原始プログラムからCOBOL原始
プログラムへの変換を自動的に短時間で正確に行なうこ
とができる効果がある。
ラムの解析をプログラム変換手段により機械的に行な
い、COBOL原始プログラムのデータ部とコード部の並べ
換えをデータ部コード部合成手段により機械的に行なう
ことにより、アセンブラ原始プログラムからCOBOL原始
プログラムへの変換を自動的に短時間で正確に行なうこ
とができる効果がある。
第1図は本発明のアセンブラ原始プログラムをCOBOL原
始プログラムに変換する装置の一実施例のブロック図、
第2図、第3図はそれぞれ第1図に示すデータ表9とフ
ァイル表10の構成図、第4図はCOBOL原始プログラムバ
ッファ5とアセンブラ原始プログラムバッファ15を示す
図、第5図はアセンブラ原始プログラムの構成を示す
図、第6図はアドレス表現表の説明図、第7図はアセン
ブラプログラムの移送命令の構成を示す図、第8図は移
送命令16のCOBOLコード部17を示す図、第9図はアセン
ブラプログラムの編集命令19の構成を示す図、第10図は
編集命令19のCOBOLデータ部21を示す図、第11図は編集
命令19のCOBOLコード部22を示す図、第12図はアセンブ
ラプログラムの比較分岐命令25の構成例を示す図、第13
図はCOBOLの比較分岐表、第14図は比較命令251のCOBOL
データ部27を示す図、第15図は分岐命令252のCOBOLコー
ド部28を示す図、第16図、第17図はそれぞれ第1図中の
データ部コード部合成手段8の内部テーブルの見出し部
と環境部の表示を示す図、第18図、第20図はそれぞれCO
BOLのファイル定義、レコード定義を示す図、第19図、
第21図、第22図はそれぞれデータ部コード部合成手段8
のデータ部表示、ベースデータ節表示、ワークデータ節
表示を示す図、第23図(a),(b),(c)はそれぞ
れ第1図中の文字列抽出手段12の処理のフローチャー
ト、原文字列、抽出された文字を示す図、第24図
(a),(b)はそれぞれ第1図中の区切り文字抽出手
段13の処理のフローチャート、原文字列を示す図、第25
図(a),(b),(c)は第1図中の文字列格納手段
18の処理のフローチャート、原文字列および格納後の文
字列を示す図、第26図はCOBOL注釈行を示す図、第27図
はデータ部コード部合成手段8の内部テーブルの手続部
の表示を示す図、第28図(a)はアセンブラ原始プログ
ラムの一部分を示す図、第28図(b)はその部分の従来
の命令毎の変換によるCOBOL原始プログラムの一部分を
示す図、第29図は第28図(b)のCOBOL原始プログラム
が整理、修正された結果を示す図である。 1……アセンブラ原始プログラムファイル、 2……COBOLコード部ファイル、 3……COBOLデータ部ファイル、 4……COBOL原始プログラムファイル、 5……COBOL原始プログラムバッファ、 6……データ表ファイル表作成手段、 7……プログラム変換手段、 8……データ部コード部合成手段、 9……データ表、91……データ名、 92……データ長、10……ファイル表、 101……ファイル名、102……バッファ名、 103……バッファ長、 11……アドレス表現変換手段、 12……文字列抽出手段、 13……区切り文字抽出手段、 14……アドレス表現表、 141,147……データ表現、 142,148……データ名、 143,149……オフセット、 144,1410……レングス、 145,1411……ワークデータ、 146,1412……データ値、 15……アセンブラ原始プログラムバッファ、 16……移送命令、17……COBOLコード部、 18……文字列格納手段、19……編集命令、 21……COBOLデータ部、 22……COBOLコード部、 23……アセンブラ原始プログラム、 231……ラベル、232……命令、 233……オペランド、25……比較分岐命令、 251……比較命令、252……分岐命令、 27……COBOLデータ部、 28……COBOLコード部、29……比較分岐表、 291……比較条件、292……分岐先、 31……COBOL注釈行、32……見出し部、 33……環境部、34……ファイル定義、 35……データ部、36……レコード定義、 37……ベースデータ節、 38……ワークデータ節、 39,40,41,50……バッファ、 52……手続部。
始プログラムに変換する装置の一実施例のブロック図、
第2図、第3図はそれぞれ第1図に示すデータ表9とフ
ァイル表10の構成図、第4図はCOBOL原始プログラムバ
ッファ5とアセンブラ原始プログラムバッファ15を示す
図、第5図はアセンブラ原始プログラムの構成を示す
図、第6図はアドレス表現表の説明図、第7図はアセン
ブラプログラムの移送命令の構成を示す図、第8図は移
送命令16のCOBOLコード部17を示す図、第9図はアセン
ブラプログラムの編集命令19の構成を示す図、第10図は
編集命令19のCOBOLデータ部21を示す図、第11図は編集
命令19のCOBOLコード部22を示す図、第12図はアセンブ
ラプログラムの比較分岐命令25の構成例を示す図、第13
図はCOBOLの比較分岐表、第14図は比較命令251のCOBOL
データ部27を示す図、第15図は分岐命令252のCOBOLコー
ド部28を示す図、第16図、第17図はそれぞれ第1図中の
データ部コード部合成手段8の内部テーブルの見出し部
と環境部の表示を示す図、第18図、第20図はそれぞれCO
BOLのファイル定義、レコード定義を示す図、第19図、
第21図、第22図はそれぞれデータ部コード部合成手段8
のデータ部表示、ベースデータ節表示、ワークデータ節
表示を示す図、第23図(a),(b),(c)はそれぞ
れ第1図中の文字列抽出手段12の処理のフローチャー
ト、原文字列、抽出された文字を示す図、第24図
(a),(b)はそれぞれ第1図中の区切り文字抽出手
段13の処理のフローチャート、原文字列を示す図、第25
図(a),(b),(c)は第1図中の文字列格納手段
18の処理のフローチャート、原文字列および格納後の文
字列を示す図、第26図はCOBOL注釈行を示す図、第27図
はデータ部コード部合成手段8の内部テーブルの手続部
の表示を示す図、第28図(a)はアセンブラ原始プログ
ラムの一部分を示す図、第28図(b)はその部分の従来
の命令毎の変換によるCOBOL原始プログラムの一部分を
示す図、第29図は第28図(b)のCOBOL原始プログラム
が整理、修正された結果を示す図である。 1……アセンブラ原始プログラムファイル、 2……COBOLコード部ファイル、 3……COBOLデータ部ファイル、 4……COBOL原始プログラムファイル、 5……COBOL原始プログラムバッファ、 6……データ表ファイル表作成手段、 7……プログラム変換手段、 8……データ部コード部合成手段、 9……データ表、91……データ名、 92……データ長、10……ファイル表、 101……ファイル名、102……バッファ名、 103……バッファ長、 11……アドレス表現変換手段、 12……文字列抽出手段、 13……区切り文字抽出手段、 14……アドレス表現表、 141,147……データ表現、 142,148……データ名、 143,149……オフセット、 144,1410……レングス、 145,1411……ワークデータ、 146,1412……データ値、 15……アセンブラ原始プログラムバッファ、 16……移送命令、17……COBOLコード部、 18……文字列格納手段、19……編集命令、 21……COBOLデータ部、 22……COBOLコード部、 23……アセンブラ原始プログラム、 231……ラベル、232……命令、 233……オペランド、25……比較分岐命令、 251……比較命令、252……分岐命令、 27……COBOLデータ部、 28……COBOLコード部、29……比較分岐表、 291……比較条件、292……分岐先、 31……COBOL注釈行、32……見出し部、 33……環境部、34……ファイル定義、 35……データ部、36……レコード定義、 37……ベースデータ節、 38……ワークデータ節、 39,40,41,50……バッファ、 52……手続部。
Claims (1)
- 【請求項1】第1の記憶装置と、 アセンブラ原始プログラムからアセンブラ命令を含むレ
コードを1つづつ読出し、該レコードの内容がデータに
関する命令の場合はそのデータ名とデータ長が書込まれ
たデータ表を作成し、ファイルに関する命令の場合はそ
のファイル名とバッファ名とバッファ長が書込まれたフ
ァイル表を作成して第1の記憶装置に格納するデータ表
ファイル表作成手段と、 第2の記憶装置と、 前記アセンブラ原始プログラムから前記レコードを1つ
づつ読出して第2の記憶装置に格納するレコード読出し
手段と、 第2の記憶装置に格納されたレコードの指定されたアド
レスから検索を開始し、始めに検出した、アセンブラの
区切り文字「(」,[)」,「,」,「=」,「’」の
中の1つを出力する区切り文字抽出手段と、 第2の記憶装置上の区切り文字抽出手段が出力したアド
レスから区切り文字までの文字列を抽出して出力する文
字列抽出手段と、 第3の記憶装置と、 前記文字列抽出手段が出力した文字列から該レコードの
オペランドを所定の規約に従ってCOBOLのアドレス表現
に変換し、アドレス表現表として第3の記憶装置上に設
定するアドレス表現変更手段と、 第4の記憶装置と、 前記アドレス表現表ごとに、該レコードのアセンブラ命
令に対応するCOBOL命令とそれにともなって書込まれる
固定値と、格納位置を示すアドレスを出力する命令指定
手段と、 前記アドレス表現表と命令指定手段が出力した命令、固
定値、格納位置から、COBOLコード部と、COBOLデータ部
を編集して第4の記憶装置に格納する文字列格納手段
と、 前記データ表のデータ名とデータ長とをCOBOLのデータ
形式に変換するデータ変換手段と、 第5および第6の記憶装置と、 前記COBOLコード部を第5の記憶装置へ、COBOLデータ部
を第6の記憶装置へ格納し、全レコードのCOBOLコード
部、COBOLデータ部の格納終了後前記データ変換手段を
介してCOBOLのデータ形式に変換されたデータ表の内容
を第6の記憶装置へ格納するファイル格納手段と、 第7の記憶装置と、 予め決められているCOBOLの見出し部、環境部、データ
部、ベースデータ節、ワークデータ節、手続部を表示す
る文字列が格納されている内部テーブルと、 全レコードのCOBOLコード部、COBOLデータ部およびデー
タ表の格納終了後、該アセンブラ原始プログラムに該当
するCOBOLの見出し部と環境部を表示する文字列を内部
テーブルから読出して第7の記憶装置に書込み、前記フ
ァイル表に格納されている全ファイル名を読出してCOBO
Lで決められているファイル定義の形式に編集して第7
の記憶装置に書込み、内部テーブルからデータ部を読出
して第7の記憶装置に書込み、前記ファイル表に格納さ
れている全てのファイル名、バッファ名、バッファ長を
読出しCOBOLで決められているレコード定義形式に編集
して第7の記憶装置に書込み、次に、内部テーブルから
ベースデータ節とワークデータ節の表示を読出して第7
の記憶装置に書込み、第6の記憶装置から1レコード分
づつのCOBOLデータ部の内容および変換表で変換された
データ表の内容を読出して第7の記憶装置に書込み、次
に内部テーブルから手続部の表示を読出して第7の記憶
装置に書込み、第5の記憶装置からCOBOLコード部をレ
コード毎に読出して第7の記憶装置に書込むデータ部コ
ード部合成手段を有するアセンブラ原始プログラムをCO
BOL原始プログラムに変換する装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5094490A JP2636058B2 (ja) | 1990-03-02 | 1990-03-02 | アセンブラ原始プログラムをcobol原始プログラムに変換する装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5094490A JP2636058B2 (ja) | 1990-03-02 | 1990-03-02 | アセンブラ原始プログラムをcobol原始プログラムに変換する装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03252819A JPH03252819A (ja) | 1991-11-12 |
JP2636058B2 true JP2636058B2 (ja) | 1997-07-30 |
Family
ID=12872933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5094490A Expired - Lifetime JP2636058B2 (ja) | 1990-03-02 | 1990-03-02 | アセンブラ原始プログラムをcobol原始プログラムに変換する装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2636058B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3110367B2 (ja) | 1998-01-30 | 2000-11-20 | 日本電気アイシーマイコンシステム株式会社 | ソースコンバータの処理方法及びソースコンバータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP4115511B1 (ja) | 2007-05-08 | 2008-07-09 | 株式会社システムズ | プログラムパターン分析装置、パターン出現状況情報生産方法、パターン情報生成装置、およびプログラム |
-
1990
- 1990-03-02 JP JP5094490A patent/JP2636058B2/ja not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
第21回情報処理学会全国大会講演論文集(1980)P.251−252 |
Also Published As
Publication number | Publication date |
---|---|
JPH03252819A (ja) | 1991-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4924976B2 (ja) | ソフトウェア開発支援システム | |
JPH04227550A (ja) | データ処理装置 | |
JP2001043118A (ja) | データ処理方法及び装置及び記憶媒体 | |
JP3828379B2 (ja) | テスト仕様生成支援装置、方法、プログラム及び記録媒体 | |
JP2636058B2 (ja) | アセンブラ原始プログラムをcobol原始プログラムに変換する装置 | |
JPH0561758A (ja) | 情報リンク装置 | |
JPS60122435A (ja) | メモリダンプ方式 | |
JPH1153391A (ja) | データベースアクセス方法 | |
JPH0362128A (ja) | データ内容の出力方式 | |
JPS6254337A (ja) | プログラムの階層指定表示方式 | |
JPH1165837A (ja) | 外部ファイルデータのデータ例外検出方法及び外部ファイルデータのデータ例外検出プログラムを記録した記録媒体 | |
JP3466792B2 (ja) | 図面検索方法及びその装置 | |
JPH09222999A (ja) | 木構造チャート変換システム及び変換方法 | |
JP3237709B2 (ja) | 文書処理装置及び文書処理方法 | |
JPS63226730A (ja) | プログラム自動作成方法 | |
JP2527087B2 (ja) | デ―タ入出力方法およびその装置 | |
JP2721377B2 (ja) | Basicプログラム圧縮方法 | |
JPH0540638A (ja) | 語彙解析編集方式 | |
JPH11282691A (ja) | ソフトウェア開発システム | |
JPH05143304A (ja) | 整合性検査方式 | |
JPH09259119A (ja) | 文書作成装置及びこれに用いる記録媒体 | |
JPH03186933A (ja) | 言語処理システムのシンボル処理方式 | |
JPH04342043A (ja) | ファイル入出力方式 | |
JPH0362241A (ja) | 表名列データ生成方式 | |
JP2002189613A (ja) | ソフトウェア開発支援装置、ソフトウェア開発支援方法及びソフトウェア開発支援プログラムを記録したコンピュータ読み取り可能な記録媒体 |