JPH04286029A - ソースプログラム・コンバータ - Google Patents
ソースプログラム・コンバータInfo
- Publication number
- JPH04286029A JPH04286029A JP5104891A JP5104891A JPH04286029A JP H04286029 A JPH04286029 A JP H04286029A JP 5104891 A JP5104891 A JP 5104891A JP 5104891 A JP5104891 A JP 5104891A JP H04286029 A JPH04286029 A JP H04286029A
- Authority
- JP
- Japan
- Prior art keywords
- conversion
- grammar
- language
- definition
- words
- 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.)
- Pending
Links
- 238000006243 chemical reaction Methods 0.000 claims abstract description 85
- 238000000034 method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【産業上の利用分野】本発明は、プログラミング言語、
JCL(ジョブ制御言語)等に基づいて書かれたソース
プログラムを同種言語または異種言語のソースプログラ
ムに変換するソースプログラム・コンバータに関する。
JCL(ジョブ制御言語)等に基づいて書かれたソース
プログラムを同種言語または異種言語のソースプログラ
ムに変換するソースプログラム・コンバータに関する。
【従来の技術】ソースプログラム・コンバータは、変換
前の言語仕様と変換後の言語仕様を使用して対象ソース
・ステートメントを変換するプログラムである。従来の
ソースプログラム・コンバータ(以下コンバータという
)は、特開平2−2423号公報に記載のように、変換
対象となる異機種コンピュータで同種言語間の言語仕様
の相違を一命令対応のパラメータ形式による変換項目と
して登録するパラメータファイルを持ち、それに基づい
てCOBOLソースプログラムを変換していた。
前の言語仕様と変換後の言語仕様を使用して対象ソース
・ステートメントを変換するプログラムである。従来の
ソースプログラム・コンバータ(以下コンバータという
)は、特開平2−2423号公報に記載のように、変換
対象となる異機種コンピュータで同種言語間の言語仕様
の相違を一命令対応のパラメータ形式による変換項目と
して登録するパラメータファイルを持ち、それに基づい
てCOBOLソースプログラムを変換していた。
【発明が解決しようとする課題】従来の方式は、変換仕
様をパラメータ化したものであり、変換前ソースプログ
ラムの文法解析をパラメータを使用して行なっていない
。したがって、コンバータの構文解析部分は、変換前ソ
ースプログラムの言語文法に依存した処理構造を持たざ
るを得ない。また、変換仕様をパラメータ化しただけで
は、そのパラメータは、変換対象言語依存的とならざる
を得ない。このような方式では、言語の種類だけコンバ
ータプログラムが必要であり、異種言語間の変換処理を
行なうことは不可能である。本発明の目的は、ソースプ
ログラム・コンバータに変換を加えずに同種言語だけで
なく異種言語のソースプログラム間の変換も行うコンバ
ータを提供することにある。
様をパラメータ化したものであり、変換前ソースプログ
ラムの文法解析をパラメータを使用して行なっていない
。したがって、コンバータの構文解析部分は、変換前ソ
ースプログラムの言語文法に依存した処理構造を持たざ
るを得ない。また、変換仕様をパラメータ化しただけで
は、そのパラメータは、変換対象言語依存的とならざる
を得ない。このような方式では、言語の種類だけコンバ
ータプログラムが必要であり、異種言語間の変換処理を
行なうことは不可能である。本発明の目的は、ソースプ
ログラム・コンバータに変換を加えずに同種言語だけで
なく異種言語のソースプログラム間の変換も行うコンバ
ータを提供することにある。
【課題を解決するための手段】変換前言語の定義語を列
挙する変換前文法テーブルと、変換後言語の定義語を列
挙する変換後文法テーブルとを設け、変換前文法テーブ
ルには変換前の定義語と変換後の定義語との対応関係を
記述しておき、変換前文法テーブルを参照して変換前の
ソース・ステートメントを解析して定義語に分解し、変
換前文法テーブルと変換後文法テーブルとを参照して変
換前の定義語を変換後の定義語に変換し、変換後のソー
ス・ステートメントを組み立てて出力するソースプログ
ラム・コンバータを特徴とする。
挙する変換前文法テーブルと、変換後言語の定義語を列
挙する変換後文法テーブルとを設け、変換前文法テーブ
ルには変換前の定義語と変換後の定義語との対応関係を
記述しておき、変換前文法テーブルを参照して変換前の
ソース・ステートメントを解析して定義語に分解し、変
換前文法テーブルと変換後文法テーブルとを参照して変
換前の定義語を変換後の定義語に変換し、変換後のソー
ス・ステートメントを組み立てて出力するソースプログ
ラム・コンバータを特徴とする。
【作用】変換前文法テーブルに基づいて変換前ソースプ
ログラム中のソース・ステートメントを定義語に分解す
る。このことにより、ソース・ステートメントの構文解
析を変換前言語の定義語と入力ソース・ステートメント
との比較処理だけにすることができ、ソース・ステート
メントの構文解析処理から言語依存部分をなくすことが
できる。次に、変換前後の定義語の対応関係に基づいて
変換前の定義語に変換し、得られた定義語群をアセンブ
ルし、変換後のソース・ステートメントを生成する。こ
れらの方式により、コンバータプログラムは、変換前後
の言語に依存しない構造とすることができる。
ログラム中のソース・ステートメントを定義語に分解す
る。このことにより、ソース・ステートメントの構文解
析を変換前言語の定義語と入力ソース・ステートメント
との比較処理だけにすることができ、ソース・ステート
メントの構文解析処理から言語依存部分をなくすことが
できる。次に、変換前後の定義語の対応関係に基づいて
変換前の定義語に変換し、得られた定義語群をアセンブ
ルし、変換後のソース・ステートメントを生成する。こ
れらの方式により、コンバータプログラムは、変換前後
の言語に依存しない構造とすることができる。
【実施例】本発明の一実施例についてCOBOLソース
プログラム間の変換を例として図面により説明する。図
1は、コンバータの内部構造を図示したものであり、変
換前方法ファイル1、変換前文法テーブル2、変換後文
法ファイル3、変換後文法テーブル4および解析結果テ
ーブル5より構成されており、変換前文法テーブル2内
に文法対応テーブルが内蔵されている。図2は、変換前
文法テーブル2の形式を示したものであり、COBOL
言語について変換前の定義語と変換前後の定義語の対応
関係とをテーブル化したものである。定義語は一つの語
または関連する複数の語から構成される。本テーブルは
、項番領域、特別処理指定領域、文法対応テーブル領域
、メッセージ番号指定領域、文法領域から構成されてい
る。「項番領域」には、当該定義語の本テーブル中での
順番を指定する。「特別処理指定領域」には、当該定義
語を使用するソースプログラムを特別に処理する必要が
ある場合、その処理ルーチン番号を指定する。「文法対
応テーブル領域」には、当該定義語に対応する変換後文
法テーブル4中の定義語の番号を指定する。「メッセー
ジ番号指定領域」には、当該定義語に対してメッセージ
を出力する場合そのメッセージ番号を指定する。「文法
領域」には、プログラム言語の定義語を文法書通りに列
挙する(ただし、ユーザ定義語は「#2」と記述する)
。図3は、変換後文法テーブル4を図示したものである
。本テーブルは、項番領域、文法領域より構成されてい
る。「項番領域」には、当該定義語の本テーブル中での
順番を指定する。「文法領域」には、変換後の定義語を
文法書通りに列挙する(ただし、ユーザ定義語は「#2
」と記述する)。また、図4に示すように、変換前文法
テーブル2の定義語と変換後文法テーブル4の定義語と
は、前者の文法対応テーブル領域と後者の項番領域とで
対応している。図5は、解析結果テーブル5を図示した
ものである。本テーブルは、変換後定義語番号領域とユ
ーザ定義語領域から形成されている。「変換後定義語番
号領域」には、構文解析の結果得られた変換前文法テー
ブル2中の文法対応テーブル領域に指定され定義語の番
号を設定する。「ユーザ定義語領域」には、構文解析の
結果得られたユーザ定義語を格納する。次に、変換の方
式を説明する。最初に、変換前文法テーブル2により変
換前ソースプログラムファイル6から入力されたステー
トメントを解析して定義語に分解し、当該文法の文法対
応テーブル領域に指定された変換後の定義語番号とユー
ザ定義語とを取り出し、解析結果テーブル5へ格納する
。この処理を1つのソースプログラムの全ステートメン
トに対して行なう。次に、解析結果テーブル5から、1
ステートメントに対する変換後定義語番号とユーザ定義
語を取り出す。その定義語番号により当該の変換後の定
義語を変換後文法テーブル4より取り出し、その定義語
とユーザ定義語とを基にして変換後のソース・ステート
メントを組み立てて変換後ソースプログラム7に出力す
る。ユーザ定義語の付属しない定義語についてはテーブ
ルのユーザ定義語の領域は空白である。このようにして
ソース・ステートメントごとに解析結果テーブル5を作
成し、ソース・ステートメントの変換を行う。図6に、
COBOL言語からCOBOL言語へ変換する場合の具
体例を示す。例として「ENTER」命令を取り上げる
。まず最初に入力ソース・ステートメント中の「ENT
ER」をキーにして、変換前文法テーブル2を検索し、
ENTERの定義語をとり出す。次に、テーブル中のア
イテムが、ユーザ定義語すなわち「#2」であるので、
入力ソース・ステートメントの中の次のアイテム「AB
C−DATA」がユーザ定義語であるか否かチェックす
る。今、「ABC−DATA」は、ユーザ定義語である
。したがって、入力ステートメントと項番96の定義語
は一致する。一致したら、変換前文法テーブル2中のE
NTER項目中の文法対応テーブル領域の変換後の定義
語番号、今の例では「522」とユーザ定義語、今の例
では、「ABC−DATA」を解析結果テーブル5へ格
納する。変換後ソースプログラムの生成は、次のように
行なう。解析結果テーブル5より、「522 ABC−
DATA」を取り出す。この情報中の変換後定義語番号
を基にして、変換後文法テーブル4を検索し、項番52
2の定義語を取り出す。今の例では、「CALL #2
」である。#2は、ユーザ定義語を意味しており、#2
をABC−DATAで置き換える。つまり、「CALL
#2」から、「CALL ABC−DATA」を生
成する。COBOL言語以外及び異種言語間の変換も上
記方式で行う。例としてPL/I言語からCOBOL言
語へ変換する場合の文法テーブル例を図7に示す。変換
前後の定義語間に、n:mの対応がある時、以上のよう
な置き換え処理だけでは変換を行なうことができない。 そのため、図2の変換前文法テーブル中に「特別処理指
定領域」を設け、条件判定等の処理を行なうルーチンを
選択できるようになっている。本実施例では、文法テー
ブルの変更に対してコンバータプログラムの改造を無く
すために、変換前後の文法をファイル1、2として持ち
、実行時にプログラム中にテーブル展開する方式として
いる。しかし、コンバータの処理速度を上げるために、
変換前後の文法テーブルをあらかじめコンバータプログ
ラム中に展開しておき、変換前文法ファイル1および変
換後文法ファイル2から文法テーブルを読み込む時間を
省略することも可能である。
プログラム間の変換を例として図面により説明する。図
1は、コンバータの内部構造を図示したものであり、変
換前方法ファイル1、変換前文法テーブル2、変換後文
法ファイル3、変換後文法テーブル4および解析結果テ
ーブル5より構成されており、変換前文法テーブル2内
に文法対応テーブルが内蔵されている。図2は、変換前
文法テーブル2の形式を示したものであり、COBOL
言語について変換前の定義語と変換前後の定義語の対応
関係とをテーブル化したものである。定義語は一つの語
または関連する複数の語から構成される。本テーブルは
、項番領域、特別処理指定領域、文法対応テーブル領域
、メッセージ番号指定領域、文法領域から構成されてい
る。「項番領域」には、当該定義語の本テーブル中での
順番を指定する。「特別処理指定領域」には、当該定義
語を使用するソースプログラムを特別に処理する必要が
ある場合、その処理ルーチン番号を指定する。「文法対
応テーブル領域」には、当該定義語に対応する変換後文
法テーブル4中の定義語の番号を指定する。「メッセー
ジ番号指定領域」には、当該定義語に対してメッセージ
を出力する場合そのメッセージ番号を指定する。「文法
領域」には、プログラム言語の定義語を文法書通りに列
挙する(ただし、ユーザ定義語は「#2」と記述する)
。図3は、変換後文法テーブル4を図示したものである
。本テーブルは、項番領域、文法領域より構成されてい
る。「項番領域」には、当該定義語の本テーブル中での
順番を指定する。「文法領域」には、変換後の定義語を
文法書通りに列挙する(ただし、ユーザ定義語は「#2
」と記述する)。また、図4に示すように、変換前文法
テーブル2の定義語と変換後文法テーブル4の定義語と
は、前者の文法対応テーブル領域と後者の項番領域とで
対応している。図5は、解析結果テーブル5を図示した
ものである。本テーブルは、変換後定義語番号領域とユ
ーザ定義語領域から形成されている。「変換後定義語番
号領域」には、構文解析の結果得られた変換前文法テー
ブル2中の文法対応テーブル領域に指定され定義語の番
号を設定する。「ユーザ定義語領域」には、構文解析の
結果得られたユーザ定義語を格納する。次に、変換の方
式を説明する。最初に、変換前文法テーブル2により変
換前ソースプログラムファイル6から入力されたステー
トメントを解析して定義語に分解し、当該文法の文法対
応テーブル領域に指定された変換後の定義語番号とユー
ザ定義語とを取り出し、解析結果テーブル5へ格納する
。この処理を1つのソースプログラムの全ステートメン
トに対して行なう。次に、解析結果テーブル5から、1
ステートメントに対する変換後定義語番号とユーザ定義
語を取り出す。その定義語番号により当該の変換後の定
義語を変換後文法テーブル4より取り出し、その定義語
とユーザ定義語とを基にして変換後のソース・ステート
メントを組み立てて変換後ソースプログラム7に出力す
る。ユーザ定義語の付属しない定義語についてはテーブ
ルのユーザ定義語の領域は空白である。このようにして
ソース・ステートメントごとに解析結果テーブル5を作
成し、ソース・ステートメントの変換を行う。図6に、
COBOL言語からCOBOL言語へ変換する場合の具
体例を示す。例として「ENTER」命令を取り上げる
。まず最初に入力ソース・ステートメント中の「ENT
ER」をキーにして、変換前文法テーブル2を検索し、
ENTERの定義語をとり出す。次に、テーブル中のア
イテムが、ユーザ定義語すなわち「#2」であるので、
入力ソース・ステートメントの中の次のアイテム「AB
C−DATA」がユーザ定義語であるか否かチェックす
る。今、「ABC−DATA」は、ユーザ定義語である
。したがって、入力ステートメントと項番96の定義語
は一致する。一致したら、変換前文法テーブル2中のE
NTER項目中の文法対応テーブル領域の変換後の定義
語番号、今の例では「522」とユーザ定義語、今の例
では、「ABC−DATA」を解析結果テーブル5へ格
納する。変換後ソースプログラムの生成は、次のように
行なう。解析結果テーブル5より、「522 ABC−
DATA」を取り出す。この情報中の変換後定義語番号
を基にして、変換後文法テーブル4を検索し、項番52
2の定義語を取り出す。今の例では、「CALL #2
」である。#2は、ユーザ定義語を意味しており、#2
をABC−DATAで置き換える。つまり、「CALL
#2」から、「CALL ABC−DATA」を生
成する。COBOL言語以外及び異種言語間の変換も上
記方式で行う。例としてPL/I言語からCOBOL言
語へ変換する場合の文法テーブル例を図7に示す。変換
前後の定義語間に、n:mの対応がある時、以上のよう
な置き換え処理だけでは変換を行なうことができない。 そのため、図2の変換前文法テーブル中に「特別処理指
定領域」を設け、条件判定等の処理を行なうルーチンを
選択できるようになっている。本実施例では、文法テー
ブルの変更に対してコンバータプログラムの改造を無く
すために、変換前後の文法をファイル1、2として持ち
、実行時にプログラム中にテーブル展開する方式として
いる。しかし、コンバータの処理速度を上げるために、
変換前後の文法テーブルをあらかじめコンバータプログ
ラム中に展開しておき、変換前文法ファイル1および変
換後文法ファイル2から文法テーブルを読み込む時間を
省略することも可能である。
【発明の効果】本発明により、各種言語の定義語を列挙
してファイルを作成することによって、複数言語間の変
換を一つのプログラムで行うことができる。さらに、各
文法間にn:mの対応が存在しても、異種言語、同種言
語を問わず、ソースプログラムを変換することが可能で
ある。また、変換仕様が変更された場合でも文法ファイ
ルを変更するだけでそれに対応可能である。
してファイルを作成することによって、複数言語間の変
換を一つのプログラムで行うことができる。さらに、各
文法間にn:mの対応が存在しても、異種言語、同種言
語を問わず、ソースプログラムを変換することが可能で
ある。また、変換仕様が変更された場合でも文法ファイ
ルを変更するだけでそれに対応可能である。
【図1】本発明の実施例を示す構成図である。
【図2】変換前文法テーブルの構成を示す図である。
【図3】変換後文法テーブルの構成を示す図である。
【図4】変換前後の文法テーブルの関連を示す図である
。
。
【図5】解析結果テーブルの構成を示す図である。
【図6】変換の手順を具体例で示す図である。
【図7】PL/IからCOBOLへ変換する場合のテー
ブル例を示す図である。
ブル例を示す図である。
2…変換前文法テーブル、
4…変換後文法テーブル、
5…解析結果テーブル。
Claims (1)
- 【請求項1】変換前言語の定義語を列挙するとともに前
記定義語と変換後言語の定義語との対応関係を記述する
変換前文法テーブルと、前記変換後言語の定義語を列挙
する変換後文法テーブルと、前記変換前文法テーブルを
参照して変換前のソースプログラム中のソース・ステー
トメントを解析して定義語に分解し、前記変換前文法テ
ーブルと前記変換後文法テーブルとを参照して前記変換
前言語の定義語を対応する前記変換後言語の定義語に変
換し、変換後のソース・ステートメントを組み立てて出
力する手段とを有することを特徴とするソースプログラ
ム・コンバータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5104891A JPH04286029A (ja) | 1991-03-15 | 1991-03-15 | ソースプログラム・コンバータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5104891A JPH04286029A (ja) | 1991-03-15 | 1991-03-15 | ソースプログラム・コンバータ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04286029A true JPH04286029A (ja) | 1992-10-12 |
Family
ID=12875921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5104891A Pending JPH04286029A (ja) | 1991-03-15 | 1991-03-15 | ソースプログラム・コンバータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04286029A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0721009A (ja) * | 1993-07-06 | 1995-01-24 | Nec Corp | 画像制御変更装置 |
US7052638B2 (en) | 1999-01-15 | 2006-05-30 | Velcro Industries B.V. | Hook and loop fastener |
US7275290B2 (en) | 2003-06-04 | 2007-10-02 | Velcro Industries B.V. | Touch fasteners |
JP2007334777A (ja) * | 2006-06-16 | 2007-12-27 | Pacific Systems Corp | レガシーシステム再構築システムおよびレガシーシステム再構築方法 |
US7727440B2 (en) | 1999-01-15 | 2010-06-01 | Velcro Industries B.V. | Methods of making fastener products |
USRE42475E1 (en) | 2001-06-04 | 2011-06-21 | Velcro Industries B.V. | Fasteners engageable with loops of nonwoven fabrics and with other open structures, and methods and machines for making fasteners |
JP2012053676A (ja) * | 2010-09-01 | 2012-03-15 | Tokyo Denki Gijutsu Kogyo Kk | プログラム変換処理装置、方法及びプログラム、並びに記録媒体 |
-
1991
- 1991-03-15 JP JP5104891A patent/JPH04286029A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0721009A (ja) * | 1993-07-06 | 1995-01-24 | Nec Corp | 画像制御変更装置 |
US7052638B2 (en) | 1999-01-15 | 2006-05-30 | Velcro Industries B.V. | Hook and loop fastener |
US7727440B2 (en) | 1999-01-15 | 2010-06-01 | Velcro Industries B.V. | Methods of making fastener products |
USRE42475E1 (en) | 2001-06-04 | 2011-06-21 | Velcro Industries B.V. | Fasteners engageable with loops of nonwoven fabrics and with other open structures, and methods and machines for making fasteners |
US7275290B2 (en) | 2003-06-04 | 2007-10-02 | Velcro Industries B.V. | Touch fasteners |
JP2007334777A (ja) * | 2006-06-16 | 2007-12-27 | Pacific Systems Corp | レガシーシステム再構築システムおよびレガシーシステム再構築方法 |
JP2012053676A (ja) * | 2010-09-01 | 2012-03-15 | Tokyo Denki Gijutsu Kogyo Kk | プログラム変換処理装置、方法及びプログラム、並びに記録媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6219831B1 (en) | Device and method for converting computer programming languages | |
US7162709B2 (en) | System and method for common code generation | |
JP2666847B2 (ja) | 異種言語間連絡方式 | |
US20040158820A1 (en) | System for generating an application framework and components | |
JPS63181033A (ja) | プログラム自動生成方式 | |
JPS63201834A (ja) | オブジエクト・モジユール生成方法 | |
JP2004021791A (ja) | 自然言語による既存データの記述方法及びそのためのプログラム | |
JPH04286029A (ja) | ソースプログラム・コンバータ | |
JPH1124913A (ja) | Jclプログラム変換装置および記録媒体 | |
JP2007140845A (ja) | プログラム管理方法及びプログラムの移行支援装置 | |
JP2006079484A (ja) | システム移行に伴うソースプログラム変換プログラム | |
CN114489683B (zh) | 一种类java语言基于JVM的函数式编程语法实现方法 | |
JPH11272524A (ja) | データ変換装置および記憶媒体 | |
JPH0689166A (ja) | 部品処理記述展開方式 | |
JPH03121531A (ja) | ジョブ制御文処理方式 | |
JPH06214776A (ja) | ソフトウェア自動生成システム | |
JPH07121379A (ja) | 複数言語混在コンパイラ | |
JPH01175035A (ja) | 多言語処理コンバータ | |
JPH0430239A (ja) | コマンドオプション指定処理装置 | |
JPH0340033A (ja) | 呼び出し元のコード系認識処理方式 | |
Triance et al. | Macro Processors for Enhancing High-Level Languages–Some Design Principles | |
JPH05150960A (ja) | プリコンパイラ | |
JPH08286927A (ja) | アセンブラ処理方式 | |
JPH03186933A (ja) | 言語処理システムのシンボル処理方式 | |
JPH06236283A (ja) | 言語処理システム |