特殊レジスターとは、コンパイラーにより生成される記憶域に名前を付ける予約語のことです。その主な用途は、特定の COBOL 機能が作成した情報を保管することです。
このような記憶域はおのおのが固定の名前をもっているので、プログラムの中で改めて定義する必要はありません。
この指定の一般的な形式では、他に制限がなければ、データ名または ID が指定されているところではどこでも、特殊レジスターを使用できます。
ただし、特殊レジスターはデータ名または ID と同一のカテゴリーであることが条件です。
修飾が許可されている場合は、特殊レジスターに固有性を与えるために修飾できます。
プログラムの制御が、CALL ステートメントによって、実行単位内で
あるプログラムから別のプログラムに最初に移されると、コンパイラーは、特殊レジスター・フィールド
を初期値に設定します。RETURN-CODE および SORT-RETURN 特殊レジスターは、
以下の場合、初期値にリセットされます。
- 参照されたサブプログラムを初期化するために、CANCEL ステートメントが呼び出された場合
- INITIAL 属性を処理するプログラムの場合
- RECURSIVE 属性を処理するプログラムの場合
その他のすべての場合、特殊レジスターが初期値にリセットされることはありません。
特殊レジスターは、前回に、プログラム制御が CALL ステートメントによって移された
ときに保存された値のままです。
英数字の引数が許可されている場合は、特に禁止されていない限り、英数字レジスターを関数で指定できます。
英数字の引数が許可されている場合は、特に禁止されていない限り、英数字特殊レジスターを関数で指定できます。
それぞれの特殊レジスターについては、次に示されたページから始まるセクションに説明されています。
このレジスターは構文検査だけ実行されます。
- 特殊レジスター
- ページ
- DEBUG-ITEM
- このレジスターは構文検査だけ実行されます。
- LINAGE-COUNTER
- LINAGE-COUNTER 特殊レジスター
IBM Extension
End of IBM Extension