Enterprise COBOL コンパイラーと IBM COBOL コンパイラーは非常に類似しています。現行の IBM COBOL アプリケーションで使用しているのと同じコンパイラー・オプションを使用するのであれば、いくつかの内部的な変更が影響することがありますが、基本的には動作は変わりません。
Enterprise COBOL には、IBM COBOL のコンパイラー・オプションに比較して、新しいコンパイラー・オプションがいくつかあります。表 1 は IBM COBOL と Enterprise 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 の値をサポートします。 このサポートにより、非常に大きい符号なしバイナリー値が使用された場合は、以前のリリースで得られた算術結果とは異なる算術結果になります。 |