ここでは、他社COBOLのコンパイラ指令のうち、NetCOBOLと互換のある指定について説明しています。
これらのコンパイラ指令を使用している場合、NetCOBOLでも翻訳オプション等の指定を有効にしてください。
なお、記載のないコンパイラ指令を使用している場合、移行前と同じ振る舞いを実現可能であるか、別途調査・検討が必要です。
表中の記号の意味は以下のとおりです。
○:翻訳オプションとして対応可能
△:翻訳オプションとして対応可能。ただし、指定値によっては対応がない、または、プログラムの動作に相違があるため、検証が必要
□:翻訳オプション以外の指定で対応可能
●:翻訳前ソース変換機能の変換オプションとして対応
他社COBOL | 意味 | 互換 | NetCOBOL |
---|---|---|---|
ANIM | デバッグ機能および診断機能の使用の可否 | ○ | TEST |
{APOST|QUOTE} | 表意定数QUOTEの扱い | ○ | {APOST|QUOTE} |
ARITH | 数値データ項目の最大桁数の定義(COMPATまたはEXTEND) ※指定可能な値および省略値が異なる | △ | ARITHMETIC |
BOUND | 添字・指標および部分参照の範囲外検査 | ○ | CHECK(BOUND) |
CASE | 英小文字の扱い(プログラム名定数、CALL文、CANCEL文、ENTRY文およびINVOKE文の定数を含む、定数中の英小文字は英大文字と区別する) | ○ | ALPHAL(WORD) |
CHECK | CHECK機能の使用の可否 ※Micro Focus COBOLにおけるLINKCHECK、PARAMCOUNTCHECK、RECURSECHECKに該当する機能はない | △ | CHECK(BOUND,PRM) |
CHECKNUM | データ例外(属性形式に合った値が数字項目に入っているかおよび除数がゼロでないか)検査 | △ | CHECK(NUMERIC) |
COMP-5 | 符号なし2進項目の再左端ビットを数値として扱う ※NetCOBOLではCOMP-5およびBINARYも対象 | △ | BINARY(WORD,MLBOFF) |
CONSTANT | プログラムで使用する定数を定義する | ● | 変換ID[m0101]参照 |
COPYEXT | COPY文内のファイル名が拡張子なしで指定されている場合の拡張子を指定する。 ※省略値が異なる | □ | 環境変数COB_LIBSUFFIX |
COPYLIST | 登録集原文の表示 ※NetCOBOLでは区分番号の指定不可 | △ | COPY |
COPYPATH | コンパイラがコピー ファイルを検索するためのフォルダのリストを指定します。 | □ | 環境変数COB_COPYまたは-Iオプション |
CURRENCY-SIGN | 通貨編集用文字の扱い ※NetCOBOLでは\または$だけ指定可 | △ | CURRENCY |
DATAMAP | データマップリスト、プログラム制御情報リストおよびセクションサイズリスト の出力の可否 | ○ | MAP |
DEFAULTBYTE | 作業場所節でのVALUE句なし項目の扱い ※NetCOBOLでは指定値は16進表現 | ○ | INITVALUE |
DIALECT | チェック時および実行時動作を、指定した方言に合わせる。 ※個々のコンパイラ指令ごとに確認してください。 | - | - |
DIRECTIVES | オプションファイルの指定 ※指定形式および指定値は異なる | □ | 環境変数COB_OPTIONS |
FLAG | 規格の違いによるメッセージの出力の可否 ※指定可能な値は異なる | △ | CONF |
FLAGSTD | |||
FORM | 翻訳リストの1ページ当たりの行数 ※指定可能な値は異なる | △ | LINECOUNT |
IBMCOMP | 符号なし2進項目の再左端ビットを数値として扱う | ○ | BINARY(WORD,MLBOFF) |
LIST | 各種翻訳リストの出力の可否および出力先の指定 | ○ | |
LISTPATH | |||
LISTWIDTH LW | 翻訳リストの1行当たりの文字数 ※指定可能な値は異なる | △ | LINESIZE |
LITLINK | プログラム構造の指定 ※指定可能な値および省略値が異なる | △ | DLOAD |
MF MFLEVEL | Micro Focus固有の予約語を有効にする | △ | RSV |
NSYMBOL | 日本語項目のエンコードの指定 ※NetCOBOLでは英数字項目および日本語項目のエンコードを指定、また、指定可能な組合せに制限あり | △ | ENCODE |
OPT | 広域最適化の扱い ※NetCOBOLでは最適化レベルの指定は不可 | △ | OPTIMIZE |
各種翻訳リストの出力の可否および出力先の指定 | ○ | PRINTまたは-Pオプション | |
REENTRANT | マルチスレッドプログラム作成の指定 ※指定可能な値は異なる | △ | THREAD(MULTI) |
RESEQ | ソースプログラムの一連番号領域の指定 ※省略値が異なる | ○ | NONUMBER |
RUNTIME-ENCODING | ランタイムのエンコーディングを決定します。 | △ | ENCODE |
SOURCE-ENCODING | ソースプログラムのエンコーディングを決定します。 | △ | SCS |
SOURCEFORMAT | 正書法の種類 ※省略値が異なる | ○ | SRF |
TRUNC | 桁落とし処理の可否 ※指定可能な値および省略値が異なる | △ | TRUNC |
UNICODE | 日本語項目のエンディアンの指定 ※NetCOBOLでは英数字項目および日本語項目のエンコードを指定、また、指定可能な組合せに制限あり | △ | ENCODE |
WARNING | 診断メッセージのレベル ※省略値が異なる | ○ | FLAG |
XREF | 相互参照リストの出力の可否 | ○ | XREF |
注意
他社COBOLでは、$IF文にコンパイラ指令を記述することができます。
$IF 指令設定 SET
この$IF文が記述されている場合、変換情報ファイルに変換オプション「DIRECTIVE」の指定が必要です。
詳細は変換ID[m0101]を参照してください。