特殊レジスター

特殊レジスターとは、 コンパイラーにより生成される記憶域に名前を付ける予約語のことです。その主な用途は、特定の COBOL 機能が作成した情報を保管することです。 このような記憶域はおのおのが固定の名前をもっているので、プログラムの中で改めて定義する必要はありません。

この指定の一般的な形式では、他に制限がなければ、データ名または ID が指定されているところではどこでも、特殊レジスターを使用できます。 ただし、特殊レジスターはデータ名または ID と同一のカテゴリーであることが条件です。 修飾が許可されている場合は、特殊レジスターに固有性を与えるために修飾できます。

プログラムの制御が、CALL ステートメントによって、実行単位内で あるプログラムから別のプログラムに最初に移されると、コンパイラーは、特殊レジスター・フィールド を初期値に設定します。RETURN-CODE および SORT-RETURN 特殊レジスターは、 以下の場合、初期値にリセットされます。
  • 参照されたサブプログラムを初期化するために、CANCEL ステートメントが呼び出された場合
  • INITIAL 属性を処理するプログラムの場合
  • RECURSIVE 属性を処理するプログラムの場合
その他のすべての場合、特殊レジスターが初期値にリセットされることはありません。 特殊レジスターは、前回に、プログラム制御が CALL ステートメントによって移された ときに保存された値のままです。

英数字の引数が許可されている場合は、特に禁止されていない限り、英数字レジスターを関数で指定できます。

英数字の引数が許可されている場合は、特に禁止されていない限り、英数字特殊レジスターを関数で指定できます。

それぞれの特殊レジスターについては、次に示されたページから始まるセクションに説明されています。

このレジスターは構文検査だけ実行されます。

特殊レジスター
ページ
DEBUG-ITEM
このレジスターは構文検査だけ実行されます。
LINAGE-COUNTER
LINAGE-COUNTER 特殊レジスター
IBM Extension
End of IBM Extension