表記

本書では、COBOL 文の形式を表すために、下記の表記法を使用する。

  1. 大文字で記しアンダーラインを引いてある語 (例:ABC)。その語が係わる機能を使用する際には、必ず指定しなければならない。アンダーラインの付いた語が存在しない、またはつづりが間違っている場合、COBOL システムはエラーを報告する。COBOL ソース プログラムを書く際には、アンダーラインを引く必要はない。
  2. 大文字で記してあるがアンダーラインを引いていない語 (例:ABC)。COBOL ソース プログラムを読みやすくするためだけに使用する。それらの語は指定しても指定しなくても構わない。ただし、指定する場合は、正しいつづりで書かなければならない。
  3. 日本語で記してある語 (例:ファイル名)。プログラマーが指定すべき名前を表す。
  4. { } いくつかの項目を中かっこで囲んである場合。その中から 1 つを選択して指定しなければならない。
  5. { | | } (場合によっては | | のみ) いくつかの項目を中かっこで囲み縦棒で区切ってある場合。その中から 1 つ以上を選択して指定しなければならない。ただし、1 つの項目は 1 回だけしか指定することはできない。
  6. [ ] いくつかの項目を角かっこで囲んである場合。その中の項目は任意の選択項目であることを表す。任意の選択項目は、必要に応じて、指定しても指定しなくても構わない。
  7. 項目が箱と角かっこで囲んである場合:


    *

    その項目は ANSI'74 COBOL (米国規格協会規格 X3.23-1974) の必須項目であるが、言語仕様の機能拡張の結果、省略可能になったことを表す。端に示されている記号は COBOL の方言を示す。方言を使用するかしないかは自由である。方言の機能の詳細は、規則 12 を参照。

  8. 反復記号 (...)。ソース プログラムまたは一連の記述の一部を省略していることを表す。どの部分が省略されているかは、文脈からわかる。

    一般形式においては、反復記号が表すのは、利用者が自分の判断で繰り返しを指定できる部分である。その範囲は次のように読み取る。

    句または文の中に反復記号 (...) が出てきたならば、その左側へ順にたどって最初に出てくる } または ] を見つける。さらに左側へ順にたどって、} または ] に論理的に対応する { または [ を見つける。この一組の { } または [ ] で囲まれた一連の語が反復の対象範囲となる。

  9. 比較文字の「<」、「>」、「=」は必要語であるが、アンダーラインを引いていない。これは、「>」(以上) のような他の記号と混同することを避けるためである。
  10. 一般形式で「整数」という語が使われている場合は、整数の数値定数を意味するものとする。また、その形式において明示的に許可されていない限り、符号付きの数字やゼロであってはならない。
  11. 本リファレンス マニュアルでは、IBM SAA AD/Cycle COBOL370 (COBOL/370) 文の構文および COBOL/370 を使用してコンパイルするソース プログラムを書く際の規則についても説明する。

    COBOL/370 と IBM VS COBOL II との違いは、手続きポインター形式に関して、デフォルトの長さが 4 バイトではなく 8 バイトであることである。

  12. 本リファレンス マニュアルでは、マルチベンダー統合アーキテクチャ (Multivendor Integration Architecture; MIA) の構文も示す。この MIA は COBOL プログラミング言語の技術的な必要条件となっている。本書では、MIA には箱または方言記号は使用しない。
  13. 大部分の COBOL 言語には、ANSI X3.23-1974 に定義されている COBOL 言語を拡張した機能が組み込まれている。組み込まれている拡張機能の度合はコンパイラによって違いがある。つまり、COBOL には「方言」と呼ばれる異なったバージョンがいくつもある。COBOL 製品は、コンパイラをまたがって開発作業を進められるように設計してある。つまり、この製品は、利用者が使用している COBOL システムだけではなく、IBM OS/VS COBOL、IBM VS COBOL II、IBM COBOL/370、または IBM COBOL for OS/390 & V2R2 で使用するプログラム、あるいは ANS X3.23-1974 ないしその更新版である ANS X3.23-1985 に完全に準拠するプログラムを開発するために使用できる。この製品では、IBM COBOL 製品の大部分の拡張機能と、ANS X3.23-1985 および X3.23a-1989 のすべての機能を使用できる。

    方言を使用している利用者の便宜を図るために、本書では、機能ごとに方言があれば明示している。

    • ANS X3.23-1974 を超える機能に関する記述は四角で囲んで、端に下記の楕円形の記号を付している。
    • セクション全体が別の方言である場合は、セクションの見出しの後に記号のみの行がある。
    • 別の方言の一部である指定は、そのようにマークが付けられ、それのみで 1 段落となっている。
    • 構文の表記では、ANS X3.23-1974 以外の機能は、線で囲まれ、その後またはその行末に記号が付けられている。次に例を示す。

      方言記号の付いた、箱内の構文

    使用される記号は、以下のとおり。

    OSVS  IBM OS/VS COBOL 中の ANS X3.23-1974 に対する拡張機能を表す。
    VSC2  IBM VS COBOL II 中の ANS X3.23-1985 に対する拡張機能を表す。
    COB370  IBM SAA AD/Cycle COBOL/370 中の ANS X3.23-1985 に対する拡張機能であって IBM VS COBOL II には含まれない機能を表す。
    OS390  IBM COBOL for OS/390 & V2R2 中の ANS X3.23-1985 に対する拡張機能であって IBM SAA AD/Cycle COBOL/370 には含まれない機能を表す。
    ENT  Enterprise COBOL for z/OS 中の ANS X3.23-1985 に対する拡張機能であって IBM COBOL for OS/390 には含まれない機能を表す。
    ANS85  ANS X3.23-1985 で新たに定義された機能で ANS X3.23-1974 にはなかった機能を表す。
    XOPEN  X/Open CAE 仕様の COBOL 言語 (XPG-4) に固有の ANS X3.23-1985 に対する拡張機能を表す。
    rocket  Rocket ® COBOL に固有の ANS X3.23-1985 に対する拡張機能を表す。
    注: Micro Focus/MF 方言は Rocket 方言に名称が変更されました。これらの方言は同一のものです。既存のプログラムは、COBOL 方言の設定を変更することなく、これまでと同様にビルドおよび実行できます。
    ISO2002  ISO/IEC 1989:2002 で新たに定義された機能で ANS X3.23-1985 にはなかった機能を表す。
    NET  Microsoft .NET マネージ CLR プラットフォームでのみサポートされる Rocket ® COBOL 機能を表す。このような機能は COBOL for .NET または NET COBOL と呼ばれる場合がある。
    JVM  JVM マネージ プラットフォームでのみサポートされる Rocket ® COBOL 機能を表す。このような機能は COBOL for JVM または JVM COBOL と呼ばれる場合がある。
    注:
    • Rocket ® COBOL、VS COBOL II、COBOL/370、OS/390、および X/Open 方言はすべて、ANS X3.23-1985 COBOL 標準に基づく。したがって、ANS85 に有効と記されている構文 (または規則) はどれも、特に記述されていない限り、Rocket ® COBOL、VS COBOL II、COBOL/370、OS/390、および X/Open にも有効である。
    • COBOL/370 方言は、本書中で VSC2 の記号が付けられている VS COBOL II に含まれる構文をすべて含んでいる。本書で唯一 COB370 の記号が記載されているのは、COBOL370 (NOCMPR2 コンパイラ オプションを伴う) が、VS COBOL II (NOCMPR2 コンパイラ オプションを伴う) に含まれるもの以外のテキストを含む場合のみである。
    • OS390 方言は、VSC2 の記号が付けられている VS COBOL II に含まれる構文をすべて含んでいる。本書で唯一 OS390 の記号が記載されているのは、OS390 (NOCMPR2 コンパイラ オプションを伴う) が、VS COBOL II (NOCMPR2 コンパイラ オプションを伴う) に含まれるもの以外のテキストを含む場合のみである。
    • Enterprise Cobol 方言は、VSC2 の記号が付けられている VS COBOL II に含まれる構文をすべて含んでいる。本書で唯一 ENT の記号が記載されているのは、Enterprise Cobol (NOCMPR2 コンパイラ オプションを伴う) が、VS COBOL II (NOCMPR2 コンパイラ オプションを伴う) に含まれるもの以外のテキストを含む場合のみである。

    これらの記号は、特定の構文および意味論のサポートを示す。特定の方言に関する予約語を変更するには、コンパイラ指令を使用する必要がある。本書の付録「予約語」および『Compatibility Guide』(使用している COBOL システムに付属している場合) には、さまざまな方言に影響される予約語の一覧がある。

    たとえば、IBM OS/VS COBOL 上で使用するプログラムを開発している場合は、記号が付けられていない機能に加えて、OSVS の記号が付けられている機能を使用できる。自分の COBOL 環境専用に開発を行っている場合は、どの機能でも使用可能である。システム ソフトウェアを起動する際に、FLAG コンパイラ指令を発行すると、その COBOL システム ソフトウェアは、指定された方言のもの以外のあらゆる機能にフラグを付ける。また、FLAGAS コンパイラ指令を使用して、フラグのメッセージをエラー メッセージに変換することもできる。

  14. 特定の方言の記号が付けられている図内の要素によって、他の方言の記号が付けられている図内の他の要素が囲まれている場合がある。これは、ネストされた方言の使用時に、囲まれている要素によって構文が拡張されることを示す。

    次の例では、ID 要素が OSVS、VSC2、および Rocket ® COBOL 方言において有効である。

    方言記号の付いた、二重の箱内の構文

  15. 方言により異なる効力を持つ機能もあり、方言制御指令を指定して、互換性を持たせる方言を選択することができる。このような機能は、二重線で囲まれている。

    ANS X3.23-1985 以外の機能に必要なその他の予約語は、適切な方言制御指令が存在する場合にのみ予約されている。これにより、確実に、指定した方言での予約語のみが目的のシステムで予約されているようにすることができる。その他の予約語を必要とせず、その効果がすべての方言で同じである機能のみを使用する場合は、方言制御指令を指定する必要はない。

    方言制御指令に ANS X3.23-1985 方言を指定すると、ANS X3.23-1985 内では使用できないいくつかの ANS X3.23-1974 の機能に警告メッセージが付けられる。

  16. 本書中に「注記にとどまる」と記してある場合は、該当するコーディングが、文法的には COBOL コンパイラに受け入れられるが、実行用プログラムを生成する際には無視されることを意味する。
  17. 16 進数は、小文字の x (数値以外の場合) または h (数値の場合) の後に引用符で囲んで示される (例:x"9D")。