ISO 2002 標準規格および Siemens BS2000 COBOL 方言では、スイッチは実行単位内で有効で、認識されます。たとえば、プログラム A でプログラム B を呼び出した場合に、A でのスイッチの変更は、B が呼び出された際に認識されます。また、B
で変更された内容は、制御が A に戻った時点で、A に認識されます。しかし、A が終了してから B が呼び出されると、A で変更された内容は失われます。スイッチが格納されている空間は、1 つの実行単位内のプログラムすべてで共有されます。そのため、スイッチへの変更はすべてのプログラムで認識されます。
本 COBOL システムおよび以前のバージョンの Micro Focus COBOL では、呼び出されたサブプログラム (この例ではプログラム B) には、他のプログラムから独立した独自のスイッチ セットがあります。プログラム A でプログラム
B を呼び出した場合は、プログラム B のスイッチが、プログラムの開始時に、プログラム A のスイッチの初期値と同じ値に設定されます。つまり、A がスイッチに加えた変更はすべて無視されます。制御がプログラム A に戻った時点での A のスイッチは、プログラムの制御が
B に移動する前とまったく同じ状態で、B でスイッチに加えられた変更はすべて無視されます。B のスイッチは保存される (B がキャンセルされない限り) ため、B の独自のスイッチが再度呼び出された際は A を呼び出した時点の設定が残っています。この場合、スイッチが格納される空間は、プログラムごとに一意となります。
説明:
ISO 2002 標準規格および Siemens BS2000 COBOL 方言では、スイッチは実行単位内で有効で、認識されます。たとえば、プログラム A でプログラム B を呼び出した場合に、A でのスイッチの変更は、B が呼び出された際に認識されます。また、B で変更された内容は、制御が A に戻った時点で、A に認識されます。しかし、A が終了してから B が呼び出されると、A で変更された内容は失われます。スイッチが格納されている空間は、1 つの実行単位内のプログラムすべてで共有されます。そのため、スイッチへの変更はすべてのプログラムで認識されます。
本 COBOL システムおよび以前のバージョンの Micro Focus COBOL では、呼び出されたサブプログラム (この例ではプログラム B) には、他のプログラムから独立した独自のスイッチ セットがあります。プログラム A でプログラム B を呼び出した場合は、プログラム B のスイッチが、プログラムの開始時に、プログラム A のスイッチの初期値と同じ値に設定されます。つまり、A がスイッチに加えた変更はすべて無視されます。制御がプログラム A に戻った時点での A のスイッチは、プログラムの制御が B に移動する前とまったく同じ状態で、B でスイッチに加えられた変更はすべて無視されます。B のスイッチは保存される (B がキャンセルされない限り) ため、B の独自のスイッチが再度呼び出された際は A を呼び出した時点の設定が残っています。この場合、スイッチが格納される空間は、プログラムごとに一意となります。
SWITCH-TYPE"3" は、Siemens BS2000 COBOL TSW-n および USW-n スイッチをサポートします。
必要なランタイム サポートを提供する BS/2000 アドオンがある場合は、SWITCH-TYPE"3" を使用します。