データ記述項の骨組み

データ記述項は、個々のデータ項目の特徴を指定する。

MF またはプログラマが定義したデータ型の特徴を記述して、複数のデータ項目の記述を指定するのに使用する。

ANS85 作業場所節またはファイル節内の 01 レベルのデータ記述項によって、データ レコードおよびその下位のデータ項目に局所名 (local name) または大域名 (global name) が含まれるか否かが決まる。

ANS85 作業場所節内の 01 レベルのデータ記述によって、データ レコードとその下位のデータ項目の内部属性または外部属性が決まる。

書き方 1 の一般形式

書き方 2 の 66 レベル項目の一般形式


*

書き方 3 の 88 レベル項目の一般形式


*
MF 

書き方 4 の 78 レベル項目の一般形式


78 レベル項目の一般形式

構文規則

  1. 書き方 1 では、レベル番号は 01 から 49 までのいずれか、または 77 とする。
  2. 原則として、各句をどんな順序で書いてもよい。ただし、例外が 2 つある。データ名-1 または FILLER (無名項目) 句が

    ANS85 指定されていれば、

    それらをレベル番号の直後に書く。REDEFINES (再定義) 句を指定するときは、データ名-1 または FILLER 句 が指定してあれば直後に書く。

    ANS85 指定がなければ、レベル番号の直後に書く。

  3. RENAMES 句の左辺または以下の用途の項目に対して PICTURE (形式) 句を指定してはならない。
    • INDEX
    • ISO2002MF OBJECT-REFERENCE
    • PROCEDURE-POINTER
    • ISO2002MF PROGRAM-POINTER
    • POINTER
    • OSVSVSC2MF COMPUTATIONAL-1、COMPUTATIONAL-2
    • ISO2002MF BINARY-CHAR、BINARY-SHORT、BINARY-LONG、BINARY-DOUBLE
    • ISO2002MF FLOAT-SHORT、FLOAT-LONG
    • MF EVENT-POINTER、MONITOR-POINTER、MUTEX-POINTER、SEMAPHORE-POINTER、または THREAD-POINTER

    基本項目を記述する他のどの記述項に対しても、PICTURE 句を指定しなければならない。ただし、次の規則 (構文規則 4) に該当する場合を除く。

  4. 書き方 1 の VALUE 句で英数字定数または各国文字定数が指定されている場合は、基本項目に対して PICTURE 句を省略してもよい。以下の場合は、PICTURE 句が暗黙的に指定される。
    1. リテラルが英数字の 'PICTURE X(長さ)' である
    2. リテラルが各国語型の 'PICTURE N(長さ))' である

    ここで、「長さ」とは、「COBOL 言語の概念」の章の「リテラル」節で指定された、リテラルの長さである。

  5. THRU と THROUGH は同義語であり、どちらを書いてもよい。
  6. ANS85 EXTERNAL 句を指定できるのは、作業場所節内の 01 レベルのデータ記述項の中だけである。
  7. ANS85 EXTERNAL 句と REDEFINES 句は、同じデータ記述項の中には指定できない。
  8. MF EXTERNAL 句および THREAD-LOCAL 句は、同じデータ記述項の中には指定できない。
  9. ANS85 GLOBAL (大域) 句は、01 レベルのデータ記述項の中でだけ指定できる。
  10. ANS85 GLOBAL 句または EXTERNAL 句を含む記述項、または GLOBAL 句または EXTERNAL 句を含むファイル記述項に関連するレコード記述に対しては、データ名-1 を指定する。
  11. MF TYPEDEF 句は、レベル番号 01 のデータ記述項にだけ記述できる。
  12. MF TYPEDEF 句は、データ名-1 が記述されている時にだけ使用できる。つまり、明示的または暗黙的な FILLER 句と同じデータ記述項の中では使用できない。

    TYPEDEF 句を集団項目に対して指定した場合、従属するデータ記述は明示的または暗黙的な FILLER 句で定義できるので注意が必要である。

  13. SYNCHRONIZED 句、PICTURE 句、JUSTIFIED 句、BLANK WHEN ZERO の各句は、基本データ項目以外には指定できない。

    OSVSVSC2 SYNCHRONIZED 句は、集団項目に指定できる。

  14. MF 定数-6 と 整数-1 は、浮動小数点値あるいは負数の値であってはならず、18 桁を超えてはならない。
  15. 定数-6 が式の一部として使用されている場合、整数でなければならない。
  16. OSVSVSC2 データ名-2 および データ名-3 は、暗黙的に修飾できる。
  17. ISO2002 VALUE 句は、字類が指標、オブジェクト、ポインターのデータ項目には指定できない。
  18. ISO2002MF ANY LENGTH 句を指定した場合は、レベル番号、エントリ名、PICTURE、および USAGE 以外の句は指定できない。

一般規則

  1. 書き方 3 は、条件名 (condition-name) に適用する。各条件名はレベル番号が 88 の記述項に別々に定義する必要がある。ここに、条件名とそれに対応する単独の値またはいくつかの値または値の範囲を指定する。条件変数 (condition variable) に対する条件名記述項は、条件名が関連する項目の記述項の直後に書く。条件名は原則として、レベル番号を含む任意のデータ記述項に関連付けることができる。ただし、下記のものを除く。
    1. 他の条件名
    2. 66 レベルの項目
    3. JUSTIFIED、SYNCHRONIZED、USAGE (USAGE IS DISPLAY を除く) を含む記述項を伴う項目を含む集団項目
    4. 指標データ項目

      VSC2MF またはポインター

      データ項目 (「USAGE (用途) 句」節を参照)

    5. MF 定数名
  2. VSC2MF 条件名を、内部浮動小数点数項目と関連付けることができる。

    MF 条件名を、外部浮動小数点数項目と関連付けることができる。

  3. MF 書き方 4 では、定数名を定義する。定数名 (constant-name) とは、原始コードが COBOL システムを経由して渡されるときに割り当てられる定数値を表わす記号名である。COBOL システムは定数名を対応する値で置き換える。
  4. MF TYPEDEF 句を使用すると、集団または基本データ記述を型定義として宣言できる。そして、USAGE 句内で data-name-1 を typedef-name-1 として使用して、そのデータ記述のインスタンスをデータ項目として宣言できる。型定義自体は記憶領域を割り当てられたデータ項目ではない。
  5. MF TYPEDEF 句を集団のレベルで指定した場合、その型の任意のデータ項目に関してその型定義の構成要素が暗黙的に宣言される。その構成要素を参照するには、データ項目の修飾に関する COBOL の通常の規則を適用する。
  6. ENT VOLATILE 句は注記になる。