コンパイラが相互参照表を作成する。
>>-.---.-.----.--XREF---------------------->< +-/-+ +-NO-+
なし
| 省略値: | NOXREF |
| 段階: | 構文チェック |
| $SET: | 初期 |
XREFは、RESEQを設定する。
NOLISTにより、NOXREFに設定される。
LIST指令が指定されていないと、本指令は実行されない。
相互参照表を作成するには、コンパイラディスク上に追加の作業領域を必要とする。必要な記憶域は、データ項目数と手続き名数およびデータ項目および手続き名が 参照される回数により異なる。
XREF指令が指定されると、生成される( .lst)ファイルの終わりに追加情報が付加される。
簡単なプログラム用の( .LST)ファイルから抽出したものを以下に示す。
1 working-storage section.
2 01 a pic 9(2).
3
4 procedure division.
5 main section.
6 move 1 to a
7 if a = 1 display "HELLO" end-if
8 stop run.
...
* A Numeric DISPLAY
* 2# 6* 7? (X 3)
*
* 1 data-names
*
* MAIN Section
* 5# (X 1)
*
*
* 1 procedure-names
* End of cross reference listing
リストファイルからの相互参照情報では、1個のデータ項目Aがあり、種類は数字表示で行2に定義され行6で更新、行7で試験されている。データ項目は相互 参照表に3度現れている。(X3)は、行の最後で相互参照リストにデータ項目が現れる回数を参照する。手続き名Mainも、1度だけ参照される節として、 相互参照表に表示されている。