データ部 (DATA DIVISION)

データ部 (DATA DIVISION)

DATA DIVISION と ENVIRONMENT DIVISION の順序

環境部 (ENVIRONMENT DIVISION)の『DATA DIVISION と ENVIRONMENT DIVISION の順序』を参照してください。

FD または SD 項目

FD 項目または SD 項目に重複した文節が存在していて、 使用できる文節が 1 つだけである場合、OPM COBOL/400 は最後に指定された文節を使用します。

同じ状況下で、ILE COBOL は最初に指定された文節を使用します。

作業記憶域セクション (WORKING-STORAGE SECTION)

ILE COBOL では、独立した作業記憶域項目の記憶割り振りはそれらの項目が作業記憶域セクション (WORKING-STORAGE SECTION) で宣言された順序を反映しませんが、OPM COBOL/400 では反映されていました。

ストレージの割り振り方法がこのように変更されることによる潜在的な影響は、OPM COBOL/400 の 32K という最大テーブル・サイズ制限を緩和する回避スキーマを使用するプログラムに現れます。 複数の独立した作業記憶域項目が一貫して宣言されていて、範囲検査がオフに設定されている場合に、 テーブル・サイズを増加させる回避スキーマを使用するプログラムの場合、そのスキーマは機能しなくなります。 そのようなスキーマを使用するプログラムを ILE COBOL を使用して実行すると、結果は予測不能になります。

ILE COBOL では、最大テーブル・サイズが 16,711,568 バイトになったので、 この回避スキーマが起動されるという問題はなくなりました。 しかし、この回避スキーマを使用するプログラムはすべて、コーディングしなおす必要があります。

LIKE 文節

REDEFINES 文節が LIKE 文節の後に存在する場合、OPM COBOL/400 コンパイラーは、REDEFINES 文節が LIKE 文節の後に現れたために無視されたことを示す重大度 20 のメッセージを出します。

同じ状況下で、ILE COBOL コンパイラーは REDEFINES 文節が検出されると重大度 10 のメッセージを出してその REDEFINES 文節を受け入れますが、 さらに LIKE 文節に REDEFINES 文節との互換性がないことを示す重大度 30 のメッセージも出します。

LIKE および USAGE、または LIKE および PICTURE など互換性のない他の文節の場合にも、このようなことが生じる場合があります。

LINAGE 文節

OPM COBOL/400 は、符号付き LINAGE 整数にメッセージ LBL1350 のフラグを立てますが、符号付き FOOTING、TOP、および BOTTOM に対してはメッセージを出しません。

ILE COBOL は、4 つのすべての場合にメッセージ LNC1350 を出します。

PICTURE 文節

PICTURE ストリング .¥¥ は、ILE COBOL コンパイラーでは使用できません。 同様に、PICTURE ストリング +.¥¥ および -.¥¥ も使用できません。

CR または DB が文字ストリングの文字位置 30 および 31 に存在する場合、ILE COBOL コンパイラーはそれらを有効な文字ストリングとして処理しません。 PICTURE ストリングは全体で 30 文字以内でなければなりません。

REDEFINES 文節

OPM COBOL/400 は、再定義された項目を初期設定します。

ILE COBOL は、再定義された項目を初期設定しません。 初期値は、元のデータ項目のデフォルト値によって判別されます。

VALUE 文節

ILE COBOL では、VALUE 文節に指定された数字リテラルが、それを定義する PICTURE ストリングよりも長い場合、その数字リテラルは切り捨てられます。 OPM COBOL/400 では、値 0 と見なされます。