Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 コンパイラーおよびランタイム 移行ガイド


IBM COBOL プログラム用の主要なコンパイラー・オプション

Enterprise COBOL コンパイラーと IBM COBOL コンパイラーは非常に類似しています。現行の IBM COBOL アプリケーションで使用しているのと同じコンパイラー・オプションを使用するのであれば、いくつかの内部的な変更が影響することがありますが、基本的には動作は変わりません。

IBM COBOL アプリケーションで使用していた設定と異なるコンパイラー・オプションを設定する場合は、 アプリケーションに与える可能性のある影響を十分考慮してください。

Enterprise COBOL には、IBM COBOL のコンパイラー・オプションに比較して、新しいコンパイラー・オプションがいくつかあります。表 1IBM COBOLEnterprise COBOL の間の互換性に影響を与えるオプションの一覧です。

表 1. IBM COBOL プログラム用の主要なコンパイラー・オプション
コンパイラー・オプション 説明
ARITH 算術ステートメントの中間結果について、COBOL/370 リリース 1 から COBOL (OS/390 および VM 版) バージョン 2 リリース 1 の場合と同じ結果を得るには、ARITH(COMPAT) を使用してください。
INTDATE 日付組み込み関数について COBOL/370 リリース 1 の場合と同じ結果を得る には、INTDATE(ANSI) を使用してください。整数値を保管し、同じデータに対して他の言語を使用する場合は、INTDATE(LILIAN) を 使用してください。INTDATE(LILIAN) を指定すると、日付組み込み関数は言語環境プログラムの開始日付を使用します。この開始日付は言語環境プログラムの日付呼び出し可能サービスを使用する PL/I または C プログラムによって使用される開始日付と同じです。

整数日付を 1 つのプログラム内でのみ使用する (たとえば、グレゴリオをリリアン日 に変換し、同一プログラム内でグレゴリオに変換し戻す) 場合は、INTDATE を設定すること は重要ではありません。

インストール時のデフォルトとして INTDATE(LILIAN) を選択する場合、すべてのコードが確実にリリアン整数日付標準を用いるようにするには、組み込み関数を使用する COBOL/370 リリース 1 のプログラム (また、もしあれば INTDATE(ANSI) を使用した IBM COBOL プログラム) をすべて再コンパイルする必要があります。この方法は、整数日付を保管し、その日付をプログラム間で (PL/I、COBOL、C の他言語プログラム間でも) 渡すことができ、日付処理の整合性も保たれるので最も安全です。

PGMNAME プログラム名が COBOL/370 リリース 1 と同様の方法で処理されるようにするには、PGMNAME(COMPAT) を指定してください。
NSYMBOL 国別処理または DBCS 処理 が想定されるかどうかを指定し、リテラルと PICTURE 文節で使用する "N" 記号の解釈を制御します。

NSYMBOL(DBCS) は、IBM COBOL および VS COBOL II の前のリリースとの互換性があります。

TRUNC COBOL (OS/390 および VM 版) のバージョン 2 リリース 2 より前のリリースでは、TRUNC(BIN) を指定され た符号なしバイナリー・データ項目は、バイナリー値が多くても 15 ビット (ハーフワード の場合)、31 ビット (フルワードの場合)、または 63 ビット (ダブルワードの場合) を 含んでいるときにのみ正しくサポートされました。つまり、データ項目が符号なしのときは、符号ビットは数値の一部として使用されま せんでした。Enterprise COBOL および COBOL (OS/390 および VM 版) バージョン 2 リリース 2 では、TRUNC(BIN) を指定すると、符号なし COMP-5 データ項目または符号なしバイナリー・データ項目の数値として、ハーフワードの 16 ビットすべて、フルワードの 32 ビットすべて、ダブルワードの 64 ビットすべてが使用されます。
たとえば、TRUNC(BIN) を指定してコンパイルされたプログラムで、次のように宣言され ているデータ項目
01 X pic 9(2) binary.
は、以前のリリースでは 0 ~ 32767 のバイナリー値のみを正しくサポートしましたが、バージョン 2 リリース 2 では 0 ~ 65535 の値をサポートします。

このサポートにより、非常に大きい符号なしバイナリー値が使用された場合は、以前のリリースで得られた算術結果とは異なる算術結果になります。


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)