または 0 と等しくする。
integer-2 は integer-1 よりも大きいものとする
。または等しくする
。
書き方 2 では、「integer-1 TO」を省略すると、デフォルト値として 1 が想定される。
現在、この制限は廃止されている。
現在、この制限は廃止されている。
ただし、他の表用に定義した指標を使用する場合は、その必要はない (「COBOL 言語の概念」の章の「指標付け」セクションを参照)。
この句で識別される指標名は、他の場所では定義されず、データとして扱われず、データ階層に関連付けることもできない。
レコード記述内で、書き方 2 の OCCURS 句を含むデータ記述項の後ろには、その下位に属さないデータ記述項も続けられる。data-name-1 が参照するデータ項目の値が変更されると、その表の後に続くが従属はしないデータ項目の位置が変更される。これらの項目に含まれるデータは失われる場合がある。
ただし NOODOSLIDE コンパイラ指令を設定した場合は例外的に、data-name-1 の値にかかわらず、その表を含むすべての集団項目は常に最大反復数を持つものと見なされるため、表に続くデータ項目の位置は変更されない。
OCCURS 句は、書き方 2 の OCCURS 句を指定した別の項目の下位に属するデータ記述に指定できる。
現在、この制限は廃止されている。
ODOSLIDE コンパイラ指令を設定した場合は、data-name-1 は固定位置とする。
index-name-1 や index-name-2 などは一意である必要はなく、この記述項の左辺であるデータ名によって修飾できる。
SORT
または USE FOR DEBUGGING 文は例外とする。さらに、この記述項の左辺が集団項目の名前である場合、その集団に属するデータ名を作用対象として使用する際には、すべて添え字または指標を付ける。ただし、REDEFINES 句の右辺として用いる場合は例外とする。「COBOL 言語の概念」の章の「添え字付け」、「指標付け」、および「一意名」トピックを参照。
この書き方では、この記述項の左辺の反復回数が可変となる。integer-2 の値は最大反復回数を表し、integer-1 の値は最小反復回数を表す。つまり、この記述項の左辺の長さは必ずしも可変ではなく、反復回数が可変となる。
data-name-1 が参照するデータ項目の値は、integer-1 から integer-2 の範囲内とする。このデータ項目の値を小さくすると、反復回数が data-name-1 で参照されるデータ項目の値を超えるデータ項目の内容が予測不可能となる。
以下の最初の表は、非再帰プログラムに記憶域を割り当てる方法を示す。その次の表は、再帰プログラムに記憶域を割り当てる方法を示す。
指標名を定義する節 | 指標名を割り当てる節 | ||
---|---|---|---|
NOREENTRANT | REENTRANT (1) | REENTRANT (2) | |
作業場所 | 作業場所 | 作業場所 | スレッド局所 |
スレッド局所 | スレッド局所 | スレッド局所 | スレッド局所 |
連絡 | 作業場所 | 局所記憶 | 局所記憶 |
指標名を定義する節 | 指標名を割り当てる節 | ||
---|---|---|---|
NOREENTRANT | REENTRANT (1) | REENTRANT (2) | |
作業場所 | 作業場所 | 作業場所 | スレッド局所 |
スレッド局所 | スレッド局所 | スレッド局所 | スレッド局所 |
局所記憶 | 局所記憶 | 局所記憶 | 局所記憶 |
連絡 | 局所記憶 | 局所記憶 | 局所記憶 |