次の例は、バッチ環境での LANGUAGE コンパイラー・オプションの動作を示しています。 デフォルトのインストール・オプションは ENGLISH (省略形は EN) で、 呼び出しオプションは XX (存在しない言語) です。
CBL LANG(JP),FLAG(I,I),APOST,SIZE(MAX) (1)
IDENTIFICATION DIVISION. (2)
PROGRAM-ID. COMPILE1.
. . .
END PROGRAM COMPILE1.
CBL LANGUAGE(YY) (3)
CBL SIZE(2048K),LANGUAGE(JP),LANG(!!) (4)
IDENTIFICATION DIVISION. (2)
PROGRAM-ID. COMPILE2.
. . .
END PROGRAM COMPILE2.
IDENTIFICATION DIVISION.
PROGRAM-ID. COMPILE3.
. . .
END PROGRAM COMPILE3.
CBL LANGUAGE(JP),LANGUAGE(YY) (5)
. . .
プログラム COMPILE1 の場合、コンパイラーが呼び出しオプションを走査するときには、デフォルト言語 ENGLISH (EN) が有効です。XX は存在しない言語 ID なので、診断メッセージは英大/小文字混合で出されます。デフォルトの EN は、コンパイラーが CBL ステートメントを走査するときにも有効なままです。CBL ステートメントの認識されないオプション APOST は、英大/小文字混合で診断されます。これは、CBL ステートメントが処理を完了しておらず、EN が最後の有効な言語オプションであったからです。コンパイラーが CBL オプションを処理した後は、有効となる言語は日本語 (JP) です。
プログラム COMPILE2 では、最初のプログラムが使用される前に有効な言語は英語なので、コンパイラーは、大/小文字混合の CBL ステートメント・エラーを診断します。LANGUAGE オプションが 複数指定された場合は、最後に指定された有効な言語だけが使用されます。この例では、最後の有効な言語は日本語 (JP) です。したがって、コンパイラーが CBL オプションの処理を終了すると、日本語が有効な言語になります。CBL および PROCESS ステートメントのオプションを日本語で診断したい場合は、COMPILE1 より前に有効な言語が日本語でなければなりません。
プログラム COMPILE3 に CBL ステートメントはありません。 したがって、有効な言語である日本語 (JP) を以前のコンパイルから継承します。
コンパイラーは、COMPILE3 をコンパイルした後は、CBL ステートメントのために、有効な言語を英語 (EN) にリセットします。CBL ステートメントの言語オプションは、最後に指定された 2 文字の英数字言語 ID である YY を解決します。YY は存在しない言語であるため、有効な言語は英語のままです。