本書では、COBOL 文の形式を表すために、下記の表記法を使用する。
その項目は ANSI'74 COBOL (米国規格協会規格 X3.23-1974) の必須項目であるが、言語仕様の機能拡張の結果、省略可能になったことを表す。端に示されている記号は COBOL の方言を示す。方言を使用するかしないかは自由である。方言の機能の詳細は、規則 12 を参照。
一般形式においては、反復記号が表すのは、利用者が自分の判断で繰り返しを指定できる部分である。その範囲は次のように読み取る。
句または文の中に反復記号 (...) が出てきたならば、その左側へ順にたどって最初に出てくる } または ] を見つける。さらに左側へ順にたどって、} または ] に論理的に対応する { または [ を見つける。この一組の { } または [ ] で囲まれた一連の語が反復の対象範囲となる。
COBOL/370 と IBM VS COBOL II との違いは、手続きポインター形式に関して、デフォルトの長さが 4 バイトではなく 8 バイトであることである。
方言を使用している利用者の便宜を図るために、本書では、機能ごとに方言があれば明示している。
使用される記号は、以下のとおり。
![]() |
IBM OS/VS COBOL 中の ANS X3.23-1974 に対する拡張機能を表す。 |
![]() |
IBM VS COBOL II 中の ANS X3.23-1985 に対する拡張機能を表す。 |
![]() |
IBM SAA AD/Cycle COBOL/370 中の ANS X3.23-1985 に対する拡張機能であって IBM VS COBOL II には含まれない機能を表す。 |
![]() |
IBM COBOL for OS/390 & V2R2 中の ANS X3.23-1985 に対する拡張機能であって IBM SAA AD/Cycle COBOL/370 には含まれない機能を表す。 |
![]() |
Enterprise COBOL for z/OS 中の ANS X3.23-1985 に対する拡張機能であって IBM COBOL for OS/390 には含まれない機能を表す。 |
![]() |
ANS X3.23-1985 で新たに定義された機能で ANS X3.23-1974 にはなかった機能を表す。 |
![]() |
X/Open CAE 仕様の COBOL 言語 (XPG-4) に固有の ANS X3.23-1985 に対する拡張機能を表す。 |
![]() |
Micro Focus COBOL に固有の ANS X3.23-1985 に対する拡張機能を表す。 |
![]() |
ISO/IEC 1989:2002 で新たに定義された機能で ANS X3.23-1985 にはなかった機能を表す。 |
![]() |
Microsoft .NET マネージ CLR プラットフォームでのみサポートされる Micro Focus 機能を表す。このような機能は COBOL for .NET または NET COBOL と呼ばれる場合がある。 |
![]() |
JVM マネージ プラットフォームでのみサポートされる Micro Focus 機能を表す。このような機能は COBOL for JVM または JVM COBOL と呼ばれる場合がある。 |
これらの記号は、特定の構文および意味論のサポートを示す。特定の方言に関する予約語を変更するには、コンパイラ指令を使用する必要がある。本書の付録「予約語」および『Compatibility Guide』(使用している COBOL システムに付属している場合) には、さまざまな方言に影響される予約語の一覧がある。
たとえば、IBM OS/VS COBOL 上で使用するプログラムを開発している場合は、記号が付けられていない機能に加えて、OSVS の記号が付けられている機能を使用できる。自分の COBOL 環境専用に開発を行っている場合は、どの機能でも使用可能である。システム ソフトウェアを起動する際に、FLAG コンパイラ指令を発行すると、その COBOL システム ソフトウェアは、指定された方言のもの以外のあらゆる機能にフラグを付ける。また、FLAGAS コンパイラ指令を使用して、フラグのメッセージをエラー メッセージに変換することもできる。
次の例では、ID 要素が OSVS、VSC2、および Micro Focus 方言において有効である。
ANS X3.23-1985 以外の機能に必要なその他の予約語は、適切な方言制御指令が存在する場合にのみ予約されている。これにより、確実に、指定した方言での予約語のみが目的のシステムで予約されているようにすることができる。その他の予約語を必要とせず、その効果がすべての方言で同じである機能のみを使用する場合は、方言制御指令を指定する必要はない。
方言制御指令に ANS X3.23-1985 方言を指定すると、ANS X3.23-1985 内では使用できないいくつかの ANS X3.23-1974 の機能に警告メッセージが付けられる。