表意定数値

表意定数値は COBOL システムによって生成され、下記の予約語を使用して参照される。これらの予約語は、表意定数として使用する場合は引用符で囲まない。表意定数の形式は単数形と複数形が同じであるため、どちらを使用してもよい。

表意定数の値およびそれらを参照するために使用する予約語を以下に示す。

表 1.表意定数および対応する予約語
定数 説明
ZERO、ZEROS、ZEROES 値「0」を表わす。文脈によっては 1 つ以上の「0」文字を表わす。
SPACE、SPACES 計算機の文字集合の 1 つ以上の空白文字を表わす。
HIGH-VALUE、HIGH-VALUES プログラムの文字照合順序の最も高い文字を 1 つ以上表わす。(拡張 ASCII 文字集合では x"FF")
LOW-VALUE、LOW-VALUES プログラムの文字照合順序の最も低い文字を 1 つ以上表わす。(拡張 ASCII 文字集合では x"00")
QUOTE、QUOTES 1 つ以上の「"」文字を表わす。ソース プログラムでは、数字定数を囲むための引用符の代りに QUOTE または QOUTES を使用することはできない。したがって、「ABD」を表わすために、QUOTE ABD QUOTEと記すのは誤りである。
ALL 定数 定数内の文字列に何文字含まれているかを表わす。定数は文字定数、

ISO2002MF 各国文字定数、または

ALL 定数以外の表意定数のいずれかになる。

ISO2002MFXOPEN この文字定数および各国文字列には、連結式も使用できる。

表意定数を指定する場合には ALL は不要であり、読みやすくするためにのみ用いる。
NULL、NULLS

1 つ以上の未設定ポインター

MFCOB370 または手続きポインター

を表わす。USAGE POINTER

MFCOB370 または PROCEDURE-POINTER

を持つデータ項目、および値が NULL であるデータ項目は、どのデータ項目

MFCOB370 または手続き

のアドレスも表さないことが保証される。

NULL 値は環境によって異なり、通常は各環境用の COBOL 以外の言語で使用される等しい値と一致する。

表意定数が 1 つ以上の文字を含む文字列を表わす場合、その長さは文脈に応じて COBOL システムが決定する。その際、以下の規則が順に適用される。

  1. ISO2002MFXOPEN 表意定数を連結式として指定している場合は、文字列の長さは 1 文字となる。
  2. 表意定数を VALUE 句内で指定した場合、または表意定数を他のデータ項目と関連付けた場合 (表意定数を他のデータ項目に転記したり、他のデータ項目と比較したりした場合など)、表意定数に指定した文字が 1 文字ずつ右方向に継ぎ足され、その長さが対応するデータ項目と等しいかそれより大きくなったところで止められる。その後、得られた文字列が右側から順次切り詰められ、残りの文字数が 1 または対応するデータ項目の長さのどちらか大きい方と等しくなったところで止められる。この処理は、データ項目と関連付けられる JUSTIFY 句が指定されている場合には、JUSTIFIED 句よりも先に独立して行われる。
  3. 表意定数が ALL 定数以外の値である場合、文字列の長さは 1 文字となる。
  4. 文字列の長さは定数の長さとなる。

    MF 書き方 3 の DISPLAY 文における表意定数の使用は、DISPLAY 文の一般規則で説明するとおり、特別な効果を持つ。

書き方に定数が示されている箇所では、任意の場所で表意定数を使用できる。ただし定数が数字定数に限定されている箇所では、表意定数は ZERO (ZEROS、ZEROES) のみ使用できる。

表意定数の HIGH-VALUE(S) または LOW-VALUE(S) を使用する場合、各表意定数に関連付けられる実際の文字は、指定されているプログラムの文字照合順序によって決まる (「実行用計算機段落」および「実行用計算機段落」トピックを参照)。

表意定数を表わす予約語は、それぞれが独立した文字列である。ただし、「ALL 定数」は例外で、2 つの別々の文字列から構成される。

OSVSVSC2MF  QUOTE/QUOTES 表意定数の値は、APOST および QUOTE 指令の影響を受ける。

ANS85 「ALL 定数」表意定数を数字項目または数字編集項目に関係付け、定数の長さを複数桁にすることは、ANSI'85 標準では廃要素として分類されているが、これは ANSI 標準の次の全面改訂時に削除される予定である。

MF この COBOL 処理系に組み込まれている方言は、廃要素の ALL 定数構文が完全にサポートされている。FLAGSTD 指令を使用すると、この構文が使われている箇所をすべて検出できる。

XOPEN 廃要素の ALL 定数構文は標準 COBOL 定義の一部であるが、X/Open の COBOL 言語定義からは明示的に除外されている。したがって、X/Open COBOL 準拠のソース プログラム内では、この構文は使用できない。