ページの先頭行へ戻る
NetCOBOL V12.1 NetCOBOL ユーザーズガイド(他社COBOL資産移行支援編)
FUJITSU Software

2.1.3 使用方法

翻訳前ソース変換機能の使用方法について、移行・開発作業の流れに沿って説明します。

2.1.3.1 入力となるユーザ資産の準備

他社COBOLからの移行資産をもとに、入力となるユーザ資産を準備します。

2.1.3.1.1 変換元ソースプログラム

他社COBOLから移行するソースプログラムを用意します。

対象のプログラムについて、以下の情報を確認します。

2.1.3.1.2 変換元登録集原文

変換元ソースプログラムにCOPY文を記述している場合、取り込まれる登録集原文を特定します。

他社COBOLとNetCOBOLでは、登録集ファイルのフォルダの検索順序や拡張子のデフォルト値が異なります。

特に同名の登録集ファイルが複数フォルダに存在する場合や、拡張子の異なる登録集ファイルが存在する場合、移行前とは異なる登録集ファイルが取り込まれる場合があります。

正しい登録集ファイルが取り込まれるように、指定方法の変更や、必要に応じてプログラム資産のフォルダ構成の見直しをしてください。

例:カレントフォルダとサブフォルダに同名の登録集ファイルが存在する場合

NetCOBOLの指定方法については、“2.1.3.4.1 登録集ファイルのフォルダ指定および拡張子指定”を参照してください。

2.1.3.1.3 変換情報ファイル

翻訳前ソース変換機能では、変換オプションにより、変換仕様を指定することができます。

変換情報ファイルは、変換オプションを指定するテキストファイルです。

以下のような変換元ソースプログラムを変換する場合、変換情報ファイルは必須です。

*1 : $IF文についての詳細は変換ID[m0101]を参照してください。

変換情報ファイルの形式

ここでは、変換情報ファイルの形式について説明します。

変換情報ファイルの文字コードは、ANSIコードページ(シフトJIS)またはBOM付きUTF-8です。

変換情報ファイルは、共通部といくつかのセクションから構成されます。

共通部

それぞれのプログラムに共通する変換仕様を記述します。

セクション

プログラムごとの変換仕様を記述します。セクション名は、角括弧(“[]”)で囲んで記述し、次のセクション名が現れるまでを1つのセクションとみなされます。

変換情報ファイルの内容を以下に示します。

「変換オプション名 = 指定値」をオプション情報といいます。


[1] プログラムに共通するオプション情報を記述します。共通部に記述したオプション情報は、すべてのプログラムで有効になります。変換するプログラムのプログラム名と同じ名前を持つセクションに、共通部と同じ変換オプション名を記述した場合、セクションに記述した内容が有効になります。

[2] プログラムごとのオプション情報の開始を表します。セクション名には、変換元ソースプログラムの拡張子を除いた名前を指定します。PROGRAM-IDではないことに注意してください。

[3] プログラムごとのオプション情報を記述します。

参照

変換オプションの詳細については“A.4 変換情報ファイルの指定情報”を参照してください。

注意

  • 1つの行に2個以上のオプション情報を記述することはできません。

  • 1つのセクションに、同一の変換オプション名を複数個指定しないでください。同一の変換オプション名を複数個指定した場合の動作については保証されません。

変換情報ファイル中のコメントの記述方法

行の先頭に;(セミコロン)がある場合、セミコロンから改行までの間はコメントとして認識されます。

コメント行が多い場合、コメント行の読み飛ばし処理のために、処理速度が低下する可能性があります。

2.1.3.2 変換処理の実行

入力となるユーザ資産の準備ができたら、翻訳前ソース変換機能の変換処理を実行します。以下の使用方法ごとに変換処理の実行例を示します。

2.1.3.2.1 COBOLコマンドを使用する

COBOLコマンドはNetCOBOLコマンドプロンプト上で実行します。

翻訳前ソース変換機能を利用する場合、-CVオプションを指定します。-CVオプションは以下の形式で指定します。

-CV{変換種別}[,変換情報ファイル名]

詳細は、“NetCOBOL ユーザーズガイド”の“-CV(翻訳前ソース変換機能を使用する指定)”を参照してください。

例1: 1つのソースファイルを変換・翻訳する
C:\COBOL>COBOL -M -CVm -I.\cpy test.cob
コマンドの処理

test.cobを変換して、変換後ソースプログラムを作成します。

変換後ソースプログラムを主プログラムとして翻訳して、目的プログラムtest.objを出力します。

例2:変換処理でエラーを検出した場合
C:\COBOL>COBOL -CVm -WC,"SRF(FIX)" -I.\copy test.cob
test.cob 8: JMN0503I-S  PRCV-ER108S COBOL登録集'COPY001'が割り当てられていません.
最大重大度コードは S で,変換したプログラム数は 1 本です.
JMN0020I-U 原始プログラムファイルが空です. 翻訳を中止します.

COBOLコマンドは、変換・翻訳結果や診断メッセージなどの情報を、コマンドプロンプト画面に表示します。

2.1.3.2.2 NetCOBOL Studioを使用する
  1. COBOLプロジェクトを新規作成します。

  2. プロジェクト内のCOBOLソースファイルとして、変換元ソースプログラムを登録します。

  3. “NetCOBOL Studio ユーザーズガイド”の“翻訳オプションの設定”にしたがって、[翻訳オプション]ページから、翻訳オプションPRECONVを指定します。変換仕様を変更したい場合、翻訳オプションPRECONVに変換情報ファイルのパス名を指定します。

  4. ビルドします。

    診断メッセージは[問題]ビューに表示されます。[問題]ビューで翻訳エラー情報をダブルクリックするか、コンテキストメニューから[ジャンプ]を選択すると、変換元のソースプログラムがエディタに表示されます。

参照

  • “NetCOBOL ユーザーズガイド”の“PRECONV(翻訳前ソース変換機能の使用の可否)”

  • “NetCOBOL Studioユーザーズガイド”の“COBOLプログラムのビルド”

  • “NetCOBOL Studioユーザーズガイド”の“翻訳エラーの修正”

2.1.3.2.3 COBPRECONVコマンドを使用する

COBPRECONVコマンドは、NetCOBOLコマンドプロンプト上で実行します。変換元ソースプログラムをNetCOBOLで翻訳可能なソースプログラムに変換するコマンドです。

COBPRECONVコマンドは、以下の形式で指定します。

COBPRECONV -CV{変換種別}[,変換情報ファイル名] -o出力フォルダ名 [-f] [翻訳コマンドのオプション] ファイル名…

-CVオプションの指定形式は、COBOLコマと同じです。

-oオプションには、存在するフォルダ名を指定します。

-fオプションを指定した場合、出力する変換後ソースファイルおよび登録集ファイルと、同名ファイルが存在する場合、上書きして出力します。

翻訳コマンドのオプションは、-I、-P、-dp、および-WCのみ指定できます。

詳細は、“NetCOBOL ユーザーズガイド”の“COBPRECONVコマンド”を参照してください。

例1: 1つのソースファイルを変換する
C:\COBOL>COBPRECONV -CVm -I.\cpy -o.\out test.cob
コマンドの処理

test.cobを変換して、-oで指定したフォルダに変換後ソースプログラムtest.cobを出力します。

例2: 複数のソースファイルを変換する
C:\COBOL>COBPRECONV -CVm -I.\cpy -o.\out test1.cob test2.cob
コマンドの処理

test1.cobとtest2.cobを変換して、-oで指定したフォルダに変換後ソースプログラムtest1.cobとtest2.cobを出力します。

COBPRECONVコマンドは、変換結果や診断メッセージなどの情報を、コマンドプロンプト画面に表示します。

2.1.3.3 変換結果の確認

変換結果の確認方法について説明します。

2.1.3.3.1 重大度コード

翻訳前ソース変換機能は、変換項目ごとに以下の重大度コードを持ちます。

重大度コード

変換処理

意味

I

変換する

変換仕様にしたがって変換します。

W

変換する

変換仕様にしたがって変換します。

しかし、変換結果が利用者の意図どおりかどうかを確認する必要があります。

E

変換しない

変換しません。別途修正が必要になります。

また、変換処理の過程でエラーを検出した場合、その重度により以下のレベルの変換メッセージを出力します。

重大度コード

レベル

I

通知メッセージ

W

軽度のエラー

E

中程度のエラー

S

重度のエラー

U

致命的なエラー

変換をした変換項目の重大度と検出したエラーの重大度から「最大重大度コード」が決定します。

2.1.3.3.2 変換ID

翻訳前ソース変換機能では、変換項目ごとに変換IDを付加しています。

変換IDは、変換結果出力ファイルに対象となる変換元ソースプログラムまたは登録集原文の行番号とともに出力します。

変換IDは、以下の5文字の英数字です。

nxxyy
2.1.3.3.3 変換メッセージ

以下のどちらかの場合に、変換メッセージを標準出力に表示します。

  1. 重大度コードがW以上の変換項目を検出

  2. 変換処理の過程でエラーを検出


変換メッセージの形式は以下のとおりです。

メッセージ番号 メッセージ内容

メッセージ番号は次のように表示されます。

PRCV-xxxxxS
[変換コマンド]

以下の形式で変換メッセージを表示します。

メッセージの形式

ファイル名 行番号: 変換メッセージ
[翻訳コマンド]

重大度コード別に以下の翻訳時メッセージのメッセージ本文として変換メッセージを埋め込みます。

重大度コード

翻訳時メッセージ

I

JMN0500I-I

W

JMN0501I-W

E

JMN0502I-E

S

JMN0503I-S

U

JMN0504I-U

このとき、ファイル名および行番号を以下のように表示します。

ファイル名 行番号: JMN05xxI-S 変換メッセージ
2.1.3.3.4 変換後ソースプログラム

最大重大度コードがE以下の場合、変換が終了し、変換後ソースプログラムを出力します。

以下のフォルダに変換元ソースプログラムと同じファイル名で出力します。

[翻訳コマンド]

変換元ソースプログラムのあるフォルダ配下の「.preconv」フォルダに出力します。「.preconv」フォルダが存在しない場合、新規にフォルダを作成します。この出力フォルダは変更できます。変更方法は、変換情イルの「WORKDIR」を参照してください。

[変換コマンド]

-oオプションで指定したフォルダに出力します。詳細は、“NetCOBOL ユーザーズガイド”の“COBPRECONVコマンド”を参照してください。

注意

  • [翻訳コマンド]翻訳処理を実行するごとに変換後ソースプログラムを上書きします。

  • [変換コマンド]変換後ソースプログラムがすでに存在する場合、デフォルトではエラーになります。変換後ソースプログラムを上書きする場合は-fオプションを指定してください。

  • [翻訳コマンド]最大重大度コードがS以上の場合、続く翻訳処理で以下のエラーが出力されます。

    JMN0020I-U 原始プログラムファイルが空です. 翻訳を中止します.
2.1.3.3.5 変換後登録集原文
[翻訳コマンド]

変換元ソースプログラムにCOPY文を記述している場合、変換した登録集原文の内容を、変換後ソースプログラム中に展開します。変換後登録集原文は作成しません。

[変換コマンド]

変換元ソースプログラムにCOPY文を記述している場合、デフォルトでは-oで指定したフォルダに変換後登録集原文を出力します。変換オプションの指定により、登録集原文の内容をソースプログラムに展開できます。指定方法は“A.4 変換情報ファイルの指定情報”の「EXPAND-COPY」を参照してください。

注意

  • COPY文にパス名を指定している場合、-oで指定したフォルダとは異なるフォルダに出力する場合があります。詳細は“2.1.4.1.3 登録集原文ファイルの扱い”を参照してください。

  • 変換後登録集原文がすでに存在する場合、デフォルトではエラーになります。変換後登録集原文を上書きする場合は-fオプションを指定してください。

  • 複数の変換元ソースプログラムから1つの登録集を取り込んでいる場合も同様です。デフォルトでは2番目以降の変換元ソースプログラムの変換時にエラーとなります。-fオプションを指定した場合、変換後登録集原文を上書き作成しますが、内容の同一性確認は行いません。
    異なる変換仕様で登録集原文を出力する場合、出力フォルダを変更するか、ソースプログラム中に展開するように指定してください。

2.1.3.3.6 変換結果出力ファイル

変換箇所および変換内容を確認する場合、変換結果出力ファイルを出力します。

出力するための指定方法については、“2.1.3.4.2 変換結果出力ファイルの出力および出力先の指定”を参照してください。

変換結果出力ファイルには、変換対象となった変換元ソースプログラムの行番号と変換IDを出力します。“A.2 変換項目詳細”を参照し、変換IDから変換内容を確認します。

変換結果出力ファイルの詳細は“付録B 変換結果出力ファイル”を参照してください。

参考

[翻訳コマンド]翻訳リストの出力指定(-Pオプションまたは翻訳オプションPRINT)と翻訳オプションSOURCEを指定して翻訳すると、変換結果出力ファイルにソースプログラムリストを出力します。ソースプログラムリストは変換後ソースプログラムの内容が出力されます。

2.1.3.4 翻訳オプションおよび環境変数の指定

翻訳前ソース変換機能では、COBOLコンパイラに指示する翻訳オプションや環境変数指定のうち、変換時のソース解釈に影響する指定については、同じ指定形式をサポートしています。

2.1.3.4.1 登録集ファイルのフォルダ指定および拡張子指定

登録集機能(COPY文)を記述しているソースプログラムを変換する場合、必要に応じて指定します。

フォルダの検索順序や拡張子のデフォルト値は他社COBOLと異なる場合があるため、必ず確認してください。

登録集ファイルのフォルダ指定

NetCOBOLは、登録集ファイルのフォルダを以下の順で検索します。

  1. -Iオプション

  2. [翻訳コマンド] 翻訳オプションLIB

  3. 環境変数COB_COBCOPY

  4. カレントフォルダ

参照

各指定方法の詳細は、“NetCOBOL ユーザーズガイド”を参照してください。

  • -I(登録集ファイルのフォルダの指定)

  • LIB(登録集ファイルのフォルダの指定)

  • 環境変数の設定

登録集ファイルの拡張子指定

登録集ファイルの拡張子を変更する場合、環境変数COB_LIBSUFFIXを指定します。

環境変数には、複数の拡張子を指定できます。複数の拡張子を指定した場合、指定した順序でファイルを検索します。また、“None”を指定した場合、拡張子なしのファイルを検索します。

COB_LIBSUFFIX

環境変数の指定がない場合の検索順序は以下のとおりです。

  1. 拡張子CBL

  2. 拡張子COB

  3. 拡張子COBOL

環境変数の指定方法は、“NetCOBOL ユーザーズガイド”の“環境変数の設定”を参照してください。

2.1.3.4.2 変換結果出力ファイルの出力および出力先の指定

翻訳前ソース変換機能では、変換結果をファイルに出力して確認できます。このファイルを「変換結果出力ファイル」と呼びます。

[翻訳コマンド] NetCOBOLでは、翻訳結果に関する各種リストを確認するファイルとして、翻訳リストを出力します。翻訳前ソース変換機能では、翻訳リストの出力指定があった場合、翻訳リストと同一ファイルに変換結果を出力します。

翻訳オプション

意味

NetCOBOLユーザーズガイドの参照先

-Pオプション

[翻訳コマンド] PRINT

各種翻訳リストの出力

および出力先の指定

-P(各種翻訳リストの出力および出力先の指定)

PRINT(各種翻訳リストの出力の可否および出力先の指定)

-dpオプション

翻訳リストファイルのフォルダの指定

-dp(翻訳リストファイルのフォルダの指定)

注意

変換結果出力ファイルは、翻訳リストファイルと同一ファイルです。
指定方法を確認する際、“NetCOBOL ユーザーズガイド”の参照先では「翻訳リストファイル」を「変換結果出力ファイル」に読み替えてください。

2.1.3.4.3 翻訳オプション

変換時に有効となる翻訳オプションについて説明します。記載のない翻訳オプションは、変換結果に影響しません。

翻訳オプション

意味

変換時の解釈

ENCODE

RCS

実行時コード系

実行時のコード系判定で使用します。

RSV

予約語の種類

NetCOBOLでだけ予約語となる語の置換で使用します。

SCS

ソースファイルのコード系

変換元ソースプログラムおよび登録集原文ファイル解析時のコード系判定で使用します。

SRF

正書法の種類

変換元ソースプログラムの正書法の指定で使用します。(*1)

TAB

タブの扱い

変換元ソースプログラム中に記述されたタブコードの扱いを指定します。

本指定に従い、タブコードを8または4カラム単位の空白に変換します。本指定は、値としてのタブ値にも有効となります。

*1:翻訳オプションSRFの第2オペランドは指定できません。COBOLソースプログラムと登録集ファイルの正書法は同一とみなします。


翻訳オプションの指定方法と優先順位は以下のとおりです。

  1. ソースプログラム中の翻訳指示文(@OPTIONS)による指定

  2. -WCオプションによる指定

  3. 環境変数COB_OPTIONSによる指定

  4. コマンドオプションによる指定

  5. [翻訳コマンド] NetCOBOL Studioの[翻訳オプション]ページによる指定

指定方法の詳細は、“NetCOBOL ユーザーズガイド”の“翻訳オプションの指定方法と優先順位”を参照してください。

2.1.3.5 他社COBOL予約語ファイル

翻訳前ソース変換機能では、予約語ファイルの定義に従い、変換前ソースプログラム中の語が予約語か否か、判定しています。

デフォルトでは、他社COBOLの言語仕様に、予約語として記載されているすべての語を予約語としています。

また、他社COBOLでは、コンパイラ指令により、予約語の種類を変更できます。

このような場合、利用者が、予約語として扱ってほしくない語(利用者語として使用している語)を予約語ファイルから外すことで、不具合が生じないようにカスタマイズする必要があります。

翻訳前ソース変換機能では、以下のカスタマイズ方法を用意しています。

2.1.3.6 自動で有効となる翻訳オプション

翻訳前ソース変換機能では、他社COBOLのデフォルト動作となる翻訳オプションの指定については、翻訳時に自動で有効となるよう、翻訳オプション制御情報を変換後ソースプログラム中に生成します。

翻訳オプション制御情報(#OPTIONS)は、有効とする翻訳オプションを通知するための情報です。なお、翻訳オプション制御情報(#OPTIONS)で指定された翻訳オプションの優先順位は、他の指定方法よりも低くなります。

自動で有効となる翻訳オプションについては、“2.1.4.1.2 移行に適した翻訳オプション”の変換種別ごとの仕様を確認してください。