JP2005038316A - プログラムソース変換方式および方法ならびにプログラム - Google Patents

プログラムソース変換方式および方法ならびにプログラム Download PDF

Info

Publication number
JP2005038316A
JP2005038316A JP2003276565A JP2003276565A JP2005038316A JP 2005038316 A JP2005038316 A JP 2005038316A JP 2003276565 A JP2003276565 A JP 2003276565A JP 2003276565 A JP2003276565 A JP 2003276565A JP 2005038316 A JP2005038316 A JP 2005038316A
Authority
JP
Japan
Prior art keywords
program source
source
program
copy reference
reference description
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
Application number
JP2003276565A
Other languages
English (en)
Inventor
Yuichi Iijima
裕一 飯島
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2003276565A priority Critical patent/JP2005038316A/ja
Publication of JP2005038316A publication Critical patent/JP2005038316A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

【課題】ある言語のプログラムソースを他言語のプログラムソースに変換するときに、非互換である記述を変換する。
【解決手段】プログラムソース整形手段2は、コンパイルリスト1を入力し、整形後プログラムソース4を出力するとともに、コンパイルリスト1中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域3に記録する。プログラムソース変換手段5は、整形後プログラムソース4を入力し、ターゲットプログラムソース6に変換する。プログラムソース切り出し手段7は、ターゲットプログラムソース6を入力し、コピー参照記述記録領域3を参照して、コピー参照記述部分を参照プログラムソース9として切り取って出力し、コピー参照記述以外の部分を最終プログラムソース8として出力する。
【選択図】図1

Description

本発明はプログラムソース変換方式および方法ならびにプログラムに関し、特にある言語のプログラムソースを他言語のプログラムソースに変換するためのプログラムソース変換方式および方法ならびにプログラムに関する。
通常のソースプログラムは、マクロ参照を行っていたり、他ソースをコピー参照したりしている。このため、ある言語のプログラムソースを他言語のプログラムソースに変換するときには、非互換である記述を変換する必要がある。
従来技術では、ある言語のプログラムソースを他言語のプログラムソースに変換するときに、ソースレコードを単語単位に分解し、分解された単語がソース変換するためのキーワードであるならば変換情報データベースを検索し、検索結果に基づいてソース変換の必要があればソース変換を行う方法をとっていた(例えば、特許文献1参照)。
また、他の従来技術では、埋め込みSQL文を含むソースプログラムを翻訳する場合に、プログラムソースを入力し、埋め込みSQL文を含むソースイメージを認識した後、SQL文ソースイメージ格納領域に設定し、埋め込みSQL文の始まりと終わりを示す中間テキストを認識し、対応するSQL文ソースイメージ格納領域からSQL文ソースイメージを取り出し、SQL文の解析処理を行った後、オブジェクト生成に必要な情報をSQL文情報格納領域に生成していた(例えば、特許文献2参照)。
特開平03‐062226号公報(第3−4頁、図1) 特開平05‐216686号公報(第2−3頁、図1)
このため、従来の技術では、プログラムソースを変換しようとしても、マクロ参照記述部分およびコピー参照記述部分は変換不可という欠点があった。
また、そのため、マクロ定義やコピーの元ソースを別途修正しなければならないという欠点があった。
本発明の目的は、ある言語のプログラムソースを他言語のプログラムソースに変換するために、非互換である記述の変換の際に、プログラムソース本体を元にするのではなく、そのプログラムのコンパイルリストを元に変換を行うプログラムソース変換方式を提供することにある。ここで、コンパイルリストとは、コンパイラが翻訳対象としたプログラムソースの全ての行が展開されている翻訳リストを意味する。
本発明のプログラムソース変換方式は、コンパイルリストを入力し整形後プログラムソースを出力するとともに、前記コンパイルリスト中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域に記録するプログラムソース整形手段と、前記整形後プログラムソースを入力しターゲットプログラムソースに変換するプログラムソース変換手段と、前記ターゲットプログラムソースを入力し前記コピー参照記述記録領域を参照して最終プログラムソースを出力するプログラムソース切り出し手段とを有することを特徴とする。
また、本発明のプログラムソース変換方式は、コンパイルリストを入力し整形後プログラムソースを出力するとともに、前記コンパイルリスト中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域に記録するプログラムソース整形手段と、前記整形後プログラムソースを入力しターゲットプログラムソースに変換するプログラムソース変換手段と、前記ターゲットプログラムソースを入力し前記コピー参照記述記録領域を参照してコピー参照記述部分を参照プログラムソースとして切り取って出力し、コピー参照記述以外の部分を最終プログラムソースとして出力するプログラムソース切り出し手段とを有することを特徴とする。
一方、本発明のプログラムソース変換方法は、ある言語のプログラムソースを他言語のプログラムソースに変換するときに、非互換である記述を変換するために、そのプログラムのコンパイルリストを元に変換を行うことを特徴とする。
また、本発明のプログラムソース変換方法は、プログラムソース整形手段により、コンパイルリストを入力し整形後プログラムソースを出力するとともに、前記コンパイルリスト中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域に記録する工程と、プログラムソース変換手段により、前記整形後プログラムソースを入力してターゲットプログラムソースに変換する工程と、プログラムソース切り出し手段により、前記ターゲットプログラムソースを入力し前記コピー参照記述記録領域を参照して最終プログラムソースを出力する工程とを含むことを特徴とする。
さらに、本発明のプログラムソース変換方法は、プログラムソース整形手段により、コンパイルリストを入力し整形後プログラムソースを出力するとともに、前記コンパイルリスト中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域に記録する工程と、プログラムソース変換手段により、前記整形後プログラムソースを入力してターゲットプログラムソースに変換する工程と、プログラムソース切り出し手段により、前記ターゲットプログラムソースを入力し前記コピー参照記述記録領域を参照してコピー参照記述部分を参照プログラムソースとして切り取って出力し、コピー参照記述以外の部分を最終プログラムソースとして出力する工程とを含むことを特徴とする。
他方、本発明のプログラムは、コンピュータを、コンパイルリストを入力し整形後プログラムソースを出力するとともに、前記コンパイルリスト中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域に記録するプログラムソース整形手段と、前記整形後プログラムソースを入力しターゲットプログラムソースに変換するプログラムソース変換手段と、前記ターゲットプログラムソースを入力し前記コピー参照記述記録領域を参照して最終プログラムソースを出力するプログラムソース切り出し手段として動作させることを特徴とする。
また、本発明のプログラムは、コンピュータを、コンパイルリストを入力し整形後プログラムソースを出力するとともに、前記コンパイルリスト中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域に記録するプログラムソース整形手段と、前記整形後プログラムソースを入力しターゲットプログラムソースに変換するプログラムソース変換手段と、前記ターゲットプログラムソースを入力し前記コピー参照記述記録領域を参照してコピー参照記述部分を参照プログラムソースとして切り取って出力し、コピー参照記述以外の部分を最終プログラムソースとして出力するプログラムソース切り出し手段として動作させることを特徴とする。
本発明のプログラムソース変換方式によれば、マクロ記述やコピー参照記述部分が展開された完全なプログラムソースを含むコンパイルリストを入力とするため、プログラムソースのロジック変換を完全に行うことができるという効果がある。
また、コピー参照記述部分の変換結果の切り出しも同時に行われるため、これらの変換を別途行う必要がないという効果がある。
以下、本発明の実施例について図面を参照して詳細に説明する。
図1は、本発明の実施例1に係るプログラムソース変換方式の構成を示すブロック図である。本実施例に係るプログラムソース変換方式は、コンパイルリスト1と、プログラムソース整形手段2と、コピー参照記述記録領域3と、整形後プログラムソース4と、プログラムソース変換手段5と、ターゲットプログラムソース6と、プログラムソース切り出し手段7と、最終プログラムソース8と、参照プログラムソース9とから構成されている。
コンパイルリスト1は、コンパイラ(図示せず)が翻訳対象としたプログラムソースの全ての行が展開されている翻訳リストである。
プログラムソース整形手段2は、コンパイルリスト1を入力し、整形後プログラムソース4を出力する。さらに、プログラムソース整形手段2は、コンパイルリスト1中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域3に記録する。
プログラムソース変換手段5は、整形後プログラムソース4を入力し、ターゲットプログラムソース6に変換する。
プログラムソース切り出し手段7は、ターゲットプログラムソース6を入力し、コピー参照記述記録領域3を参照して、コピー参照記述部分を参照プログラムソース9として切り取って出力し、コピー参照記述以外の部分を最終プログラムソース8として出力する。ここで、最終プログラムソース8と参照プログラムソース9とを分けて出力するのは、通常、参照プログラムソース9は、複数プログラムから参照されるので、最終プログラムソース8と分けて出力することにより、参照プログラムソース9に変更があった場合に、そのソースのみ変更すればよく、保守性が向上するからである。
図2は、コンパイルリスト1が、あるCOBOL(COmmon Business Oriented Language)コンパイラが出力したものであることを前提として、プログラムソース整形手段2の動作を詳細に説明したものである。図2を参照すると、プログラムソース整形手段2の動作は、1行読み込みステップ21と、コピー参照行判定ステップ22と、行イメージおよび行番号格納ステップ23と、ソースイメージ出力ステップ24とからなる。なお、このコンパイルリスト1においては、LINEというカラムの前のカラムに「C」という記号がついていた場合に、コピー参照行であることを示すものとする。また、ORIGINALというカラムには、元ソース名が表示されているものとする。
図3は、図2で説明したコンパイルリスト1が、プログラムソース変換手段5によって、ターゲットプログラムソース6に変換されたことを前提として、プログラム切り出し手段7の動作を詳細に説明したものである。図3を参照すると、プログラム切り出し手段7の動作は、1行読み込みステップ31と、コピー参照行判定ステップ32と、行イメージ出力ステップ33と、最終プログラムソース出力ステップ34とからなる。
次に、このように構成された実施例1に係るプログラムソース変換方式の動作について説明する。
プログラムソース整形手段2は、入力のコンパイルリスト1から1行読み込み(ステップ21)、読み込まれた行には、通常、その行がコピー参照行か否かを示す印があるので、その印がないかどうかを判定する(ステップ22)。この例のコンパイルリスト1の場合は、LINEというカラムの前にある「C」が印となる。
入力行にコピー参照行であるという印がある場合には、プログラムソース整形手段2は、元ソース名イメージをその行から取り出すと同時にその行番号をコピー参照記述記録領域3の開始行番号および終了行番号に格納する(ステップ23)。ただし、開始行番号には、先頭行の行番号のみを設定する。
ステップ22の判定において、入力した行がコピー参照行でない場合は、プログラムソース整形手段2は、ソースイメージのみを取り出して、整形後プログラムソース4へ出力する(ステップ24)。
そして、プログラムソース整形手段2は、さらに入力行からソースイメージのみを取り出して、整形後プログラムソース4へ出力する(ステップ24)。この例のコンパイルリスト1の場合には、元ソース名としてREC1が記録され、開始行番号として111行目が、最終行番号として113行目がコピー参照記述記録領域3に記録される。
次に、プログラムソース変換手段5は、整形後プログラムソース4を入力しターゲットプログラムソース6に変換する。
なお、図2中の整形後プログラムソース4と、図3中のターゲットプログラムソース6とでは表面上は違いがないように見えるが、実際には、プログラムソース変換手段5は、例えば、(1) オンラインプログラムについて、ミドルウェアとのインターフェースが変更されることによるプログラム記述上の変更、(2) バッチプログラムについて、JCL(ジョブ制御言語)とのインターフェースが替わることによるプログラム記述上の変更、(3)
データベースをリレーショナル型に変更することによるプログラム記述上の変更(READ,WRITE文→SQL文に変更など)、(4) その他の変換を行うので、2つのソースイメージは異なる。
続いて、プログラムソース切り出し手段7は、ターゲットプログラムソース6から1行読み込む(ステップ31)。
次に、プログラムソース切り出し手段7は、読み込んだ行の行番号が、コピー参照記述記録領域3に記録されている行番号の範囲に含まれているかどうかを調べる(ステップ32)。
もし含まれている場合には、プログラムソース切り出し手段7は、その行はコピー参照行であるので、その行イメージを参照プログラムソース9に出力する(ステップ33)。なお、このとき出力するファイル名は、コピー参照記述記録領域3の元ソース名とする。この例では、111行から113行までが参照プログラムソース9に出力される。そして、その実態ファイル名は、元ソース名であるREC1となる。
一方、ステップ32において、入力した行がコピー参照記述記録領域3に記録されている行番号の範囲に含まれていない場合は、プログラムソース切り出し手段7は、最終プログラムソース8へ出力する(ステップ34)。この例では、111行から113行を除く行イメージが最終プログラムソース8へ出力される。
なお、マクロ参照記述の部分は、例えば次のように最終プログラムソース8中に展開されるだけであり、COPY原文のように、その部分の記述の切り出しは不要である。よって、実施例1では、特に詳しくは説明しない。
001000
@M1ABORT(DATA1,PROC1);

001000*@M1ABORT(DATA1,PROC1);
001010 IF DATA1 NOT = 0
001020
GO TO PROC1.
ここで、展開部分(001010行,001020行)は、マクロのパラメータ(DATA1,PROC1)によりイメージが変わる。
実施例1によれば、マクロ記述やコピー参照記述部分が展開された完全なプログラムソースを含むコンパイルリスト1を入力とするため、プログラムソースのロジック変換を完全に行うことができる。
また、コピー参照記述部分の変換結果の切り出しも同時に行われるため、これらの変換を別途行う必要がない。
図4は、本発明の実施例2に係るプログラムソース変換方式の構成を示すブロック図である。本実施例に係るプログラムソース変換方式は、図1に示した実施例1に係るプログラムソース変換方式を搭載するコンピュータ100に対してプログラムソース変換プログラム200を付加するようにした点だけが異なる。したがって、その他の特に言及しない部分には同一符号を付して、それらの詳しい説明を省略する。
プログラムソース変換プログラム200は、コンピュータ100に読み込まれ、コンピュータ100の動作を、プログラムソース整形手段2,プログラムソース変換手段5,プログラムソース切り出し手段7として制御する。プログラムソース変換プログラム200の制御によるコンピュータ100の動作は、実施例1に係るプログラムソース変換方式の動作と全く同様になるので、その詳しい説明を割愛する。
本発明の実施例1に係るプログラムソース変換方式の構成を示すブロック図である。 図1中のプログラムソース整形手段の動作を示すフローチャートである。 図1中のプログラムソース切り出し手段の動作を示すフローチャートである。 本発明の実施例2に係るプログラムソース変換方式の構成を示すブロック図である。
符号の説明
1 コンパイルリスト
2 プログラムソース整形手段
3 コピー参照記述記録領域
4 整形後プログラムソース
5 プログラムソース変換手段
6 ターゲットプログラムソース
7 プログラムソース切り出し手段
8 最終プログラムソース
9 参照プログラムソース
21 1行読み込みステップ
22 コピー参照行判定ステップ
23 行イメージおよび行番号格納ステップ
24 ソースイメージ出力ステップ
31 1行読み込みステップ
32 コピー参照行判定ステップ
33 行イメージ出力ステップ
34 ソースイメージ出力ステップ
100 コンピュータ
200 プログラムソース変換プログラム

Claims (7)

  1. コンパイルリストを入力し整形後プログラムソースを出力するとともに、前記コンパイルリスト中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域に記録するプログラムソース整形手段と、
    前記整形後プログラムソースを入力しターゲットプログラムソースに変換するプログラムソース変換手段と、
    前記ターゲットプログラムソースを入力し前記コピー参照記述記録領域を参照して最終プログラムソースを出力するプログラムソース切り出し手段と
    を有することを特徴とするプログラムソース変換方式。
  2. コンパイルリストを入力し整形後プログラムソースを出力するとともに、前記コンパイルリスト中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域に記録するプログラムソース整形手段と、
    前記整形後プログラムソースを入力しターゲットプログラムソースに変換するプログラムソース変換手段と、
    前記ターゲットプログラムソースを入力し前記コピー参照記述記録領域を参照してコピー参照記述部分を参照プログラムソースとして切り取って出力し、コピー参照記述以外の部分を最終プログラムソースとして出力するプログラムソース切り出し手段と
    を有することを特徴とするプログラムソース変換方式。
  3. ある言語のプログラムソースを他言語のプログラムソースに変換するときに、非互換である記述を変換するために、そのプログラムのコンパイルリストを元に変換を行うことを特徴とするプログラムソース変換方法。
  4. プログラムソース整形手段により、コンパイルリストを入力し整形後プログラムソースを出力するとともに、前記コンパイルリスト中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域に記録する工程と、
    プログラムソース変換手段により、前記整形後プログラムソースを入力してターゲットプログラムソースに変換する工程と、
    プログラムソース切り出し手段により、前記ターゲットプログラムソースを入力し前記コピー参照記述記録領域を参照して最終プログラムソースを出力する工程と
    を含むことを特徴とするプログラムソース変換方法。
  5. プログラムソース整形手段により、コンパイルリストを入力し整形後プログラムソースを出力するとともに、前記コンパイルリスト中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域に記録する工程と、
    プログラムソース変換手段により、前記整形後プログラムソースを入力してターゲットプログラムソースに変換する工程と、
    プログラムソース切り出し手段により、前記ターゲットプログラムソースを入力し前記コピー参照記述記録領域を参照してコピー参照記述部分を参照プログラムソースとして切り取って出力し、コピー参照記述以外の部分を最終プログラムソースとして出力する工程と
    を含むことを特徴とするプログラムソース変換方法。
  6. コンピュータを、コンパイルリストを入力し整形後プログラムソースを出力するとともに、前記コンパイルリスト中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域に記録するプログラムソース整形手段と、前記整形後プログラムソースを入力しターゲットプログラムソースに変換するプログラムソース変換手段と、前記ターゲットプログラムソースを入力し前記コピー参照記述記録領域を参照して最終プログラムソースを出力するプログラムソース切り出し手段として動作させるためのプログラム。
  7. コンピュータを、コンパイルリストを入力し整形後プログラムソースを出力するとともに、前記コンパイルリスト中のコピー参照記述の元ソース名と開始行および終了行とをコピー参照記述記録領域に記録するプログラムソース整形手段と、前記整形後プログラムソースを入力しターゲットプログラムソースに変換するプログラムソース変換手段と、前記ターゲットプログラムソースを入力し前記コピー参照記述記録領域を参照してコピー参照記述部分を参照プログラムソースとして切り取って出力し、コピー参照記述以外の部分を最終プログラムソースとして出力するプログラムソース切り出し手段として動作させるためのプログラム。
JP2003276565A 2003-07-18 2003-07-18 プログラムソース変換方式および方法ならびにプログラム Pending JP2005038316A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003276565A JP2005038316A (ja) 2003-07-18 2003-07-18 プログラムソース変換方式および方法ならびにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003276565A JP2005038316A (ja) 2003-07-18 2003-07-18 プログラムソース変換方式および方法ならびにプログラム

Publications (1)

Publication Number Publication Date
JP2005038316A true JP2005038316A (ja) 2005-02-10

Family

ID=34212849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003276565A Pending JP2005038316A (ja) 2003-07-18 2003-07-18 プログラムソース変換方式および方法ならびにプログラム

Country Status (1)

Country Link
JP (1) JP2005038316A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016115071A (ja) * 2014-12-12 2016-06-23 Tis株式会社 プログラム変換システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016115071A (ja) * 2014-12-12 2016-06-23 Tis株式会社 プログラム変換システム

Similar Documents

Publication Publication Date Title
JP4404211B2 (ja) マルチリンガル翻訳メモリ、翻訳方法および翻訳プログラム
JP2005507525A (ja) 機械翻訳
US20220284188A1 (en) Machine based expansion of contractions in text in digital media
JP2016164707A (ja) 自動翻訳装置及び翻訳用モデル学習装置
JP2006085582A (ja) 文書処理装置およびプログラム
JP6056489B2 (ja) 翻訳支援プログラム、方法、および装置
JP2005038316A (ja) プログラムソース変換方式および方法ならびにプログラム
KR20200052108A (ko) 편집 부분을 자동 제시하는 자동번역 후편집 시스템 및 이의 동작 방법
JP6766384B2 (ja) 情報処理装置及びプログラム
JPH08212216A (ja) 自然言語処理装置および自然言語処理方法
JP5994150B2 (ja) 文書作成方法、文書作成装置及び文書作成プログラム
JP4643183B2 (ja) 翻訳装置および翻訳プログラム
JP2010146273A (ja) 文書検索装置およびプログラム
JP5909123B2 (ja) 機械翻訳装置、機械翻訳方法およびプログラム
JP3999771B2 (ja) 翻訳支援プログラム、翻訳支援装置、翻訳支援方法
WO2009144890A1 (ja) 翻訳前換言規則生成システム
JP3131432B2 (ja) 機械翻訳方法及び機械翻訳装置
JP6323828B2 (ja) 支援装置、情報処理方法、及び、プログラム
JPH11154093A (ja) プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体
JP4313967B2 (ja) 自然言語変換システム
US20130080144A1 (en) Machine translation apparatus, a method and a non-transitory computer readable medium thereof
JPH04259057A (ja) 文書編集方法及び機械翻訳方法
JP2796140B2 (ja) 自然言語処理用データ編集支援装置
JP2004264960A (ja) 用例ベースの文変換装置、およびコンピュータプログラム
JP2001125793A (ja) コンパイラシステム及びコンパイル方法並びに記録媒体

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050124

RD01 Notification of change of attorney

Effective date: 20050314

Free format text: JAPANESE INTERMEDIATE CODE: A7421

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070515

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070918