COBOL の語

ANS85 COBOL の語とは 30 字以内の文字列であり、翻訳指示語、文脈依存語、利用者定義語、システム名、予約語、または組み込み関数名に使用する。特殊文字を含まない COBOL の語の各文字は、文字、数字、ハイフン

ISO2002 、およびアンダースコア

で構成される。

ハイフン

ISO2002 またはアンダースコア

は、特殊文字語では先頭または末尾に置くことはできない。小文字は対応する大文字と等しいものと見なされる。

ISO2002 文字列には 31 文字含められる。

ANS85 ソース要素内では、下記の規則が適用される。

ANS85 
  1. ANS85 LENGTH、RANDOM、および SUM を除くすべての COBOL の語に関して、
    1. 予約語の集合は、利用者定義語、システム名、および組み込み関数名の集合と重なり合ってはならない。
    2. ただし、利用者定義語、システム名、および組み込み関数名のそれぞれの集合は、重なり合ってもよい。つまり、利用者定義語、システム名、および組み込み関数名には、同じ COBOL 語を使用できる。その場合、使用された COBOL の語がどれに属するかは、句や指定の文脈によって判別される。
  2. ANS85 COBOL の語 LENGTH、RANDOM、および SUMに関して、
    1. LENGTH、RANDOM、および SUM は、予約語にも組み込み関数名にも含まれる。同じ COBOL の語である LENGTH、RANDOM、または SUM は、予約語としても組み込み関数名としても使用できる。その場合、使用された COBOL の語がどれに属するかは、文脈によって判別される。
    2. COBOL の語である LENGTH、RANDOM、および SUM は、利用者定義語およびシステム名とは別の集合に属する。したがって、どのような文脈においても、COBOL の語の LENGTH、RANDOM、および SUM は、利用者定義語としてもシステム名としても使用できない。

利用者定義語

利用者定義語は COBOL の語であり、利用者は句や文の形式に則して指定する必要がある。

利用者定義語には次の種類がある。

  • 符号系名 (alphabet-name)
  • ISO2002MF オブジェクト指向用の字類名 (class-name for object orientation)
  • ANS85 真理値命題用の字類名 (class-name for truth value proposition)
  • 条件名 (condition-name)
  • MF 定数名 (constant-name)
  • データ名 (data-name)
  • NET デリゲート名 (delegate-name)
  • NETJVM 列挙名 (enum-name)
  • ファイル名 (file-name)
  • ISO2002 関数プロトタイプ名 (function-prototype-name)
  • 指標名 (index-name)
  • ISO2002MF インターフェイス名 (interface-name)
  • レベル番号 (level-number)
  • 登録集名 (library-name)
  • ISO2002MF メソッド名 (method-name)
  • 呼び名 (mnemonic-name)
  • 段落名 (paragraph-name)
  • ISO2002 パラメーター名 (parameter-name)
  • プログラム名 (program-name)
  • ISO2002 プログラム プロトタイプ名 (program-prototype-name)
  • ISO2002 プロパティ名 (property-name)
  • レコード名 (record-name)
  • 報告書名 (report-name)
  • MF 手順名 (routine-name)
  • ISO2002MFXOPEN 画面名 (screen-name)
  • 節名 (section-name)
  • 区分番号 (segment-number)
  • ISO2002MF 分割キー名 (split-key-name)
  • ANS85 記号文字 (symbolic-character)
  • 原文名 (text-name)
  • MF 型定義名 (typedef-name)
  • ISO2002 利用者関数名 (user-function-name)
  • NETJVM 値タイプ名 (valuetype-name)

1 つのソース要素の中では、次の利用者定義語が互いに重ならない種類に分かれる。

  • 符号系名 (alphabet-name)
  • ISO2002MF オブジェクト指向用の字類名 (class-names for object orientation)
  • ANS85 真理値命題用の字類名 (class-names for truth value proposition)
  • 条件名 (condition-names)

    MF 定数名 (constant-names)

    データ名 (data-names)

    ISO2002 プロパティ名 (property-names)

    レコード名 (record-names)

    ISO2002MF 分割キー名 (split-key-names)

    MF 型定義名 (typedef-names)

  • NET デリゲート名 (delegate-name)
  • NETJVM 列挙名 (enum-name)
  • ファイル名 (file-names)
  • ISO2002 関数プロトタイプ名 (function-prototype-names)
  • 指標名 (index-names)
  • ISO2002 インターフェイス名 (interface-names)
  • 登録集名 (library-names)
  • ISO2002MF メソッド名 (method-names)
  • 呼び名 (mnemonic-names)
  • 段落名 (paragraph-names)
  • ISO2002 パラメーター名 (parameter-names)
  • プログラム名 (program-names)
  • ISO2002MF プログラム プロトタイプ名 (program-prototype-names)
  • 報告書名 (report-names)
  • MF 手順名 (routine-names)
  • ISO2002MFXOPEN 画面名 (screen-names)
  • 節名 (section-names)
  • ANS85 記号文字 (symbolic-characters)
  • 原文名 (text-names)
  • ISO2002 利用者関数名 (user-function-names)
  • NETJVM 値タイプ名 (valuetype-name)

区分番号およびレベル番号を除く利用者定義語はすべて、上記の互いに重ならない種類のうちの 1 つにのみ属する。さらに、同じ種類内の利用者定義語はすべて一意でなければならない (「一意参照」のセクションで指定されているものを除く)。

段落名、節名、レベル番号、および区分番号以外の利用者定義語はすべて、1 文字以上の英字

MF または 1 つのハイフン

を含める必要がある。

区分番号およびレベル番号は一意である必要はない。つまり、区分番号およびレベル番号は他の区分番号やレベル番号と同じにでき、段落名や節名とも同じにできる。

下記の利用者定義語は操作環境に対して外部公開される。

  1. 他のプログラム、

    ISO2002MF クラス名、

    ISO2002 関数プロトタイプ名、インターフェイス名、

    ISO2002MF メソッド名、

    ISO2002 プログラム プロトタイプ名、利用者関数名

    に含まれていないプログラムのプログラム名。

  2. ANS85 EXTERNAL 属性付きで記述された項目のデータ名、ファイル名、およびレコード名。

これらの名前のいずれかの代わりに、またはそれに加えて、定数を指定した場合、その定数の内容が操作環境に外部公開される名前となる。外部名の大文字と小文字は区別される。定数を指定しなかった場合は、小文字を大文字に変換して外部名が作成される。FOLD-CALL-NAME コンパイラ指令を使用すると、外部公開されたクラス名、インターフェイス名、およびプログラム名を大文字にするか小文字にするかを制御できる。OOCTRL コンパイラ指令の F および U オプションを使用すると、外部公開されたメソッド名を大文字にするか小文字にするかを制御できる。+F および -U を指定すると、メソッド名は小文字化される (既定値)。

条件名 条件名とは、データ項目が取り得る値の全集合内の特定の値、値の集合、または値の範囲に割り当てる名前である。そのデータ項目自体は、条件変数と呼ばれる。条件名は、データ部内、または環境部の特殊名段落内で定義できる。特殊名段落では、条件名を実行時スイッチがオン、オフ、またはその両方の状態に割り当てる必要がある。

条件名を使用するのは次の場合のみ。

  1. RERUN 句内。
  2. 比較条件を略記する場合。この比較条件では、関連付けられた条件変数が、条件名が割り当てられている集合の 1 つに等しいものと見なされる。
  3. 関連付けられた値が条件変数に移行されることを示す SET 文。
定数名 定数名とは、固定値に割り当てられた名前である。
呼び名 呼び名は、作成者語に利用者定義語を割り当てる。この関連付けは、環境部の特殊名段落の中で行う。「特殊名段落」トピックを参照。
段落名 段落名とは、手続き部の段落に付けた名前である。複数の段落名が等しいと判断されるのは、同じ数の文字が同じ順序で並んでいる場合のみである。
節名 節名とは、手続き部の節に付けた名前である。複数の節名が等しいと判断されるのは、同じ数の文字が同じ順序で並んでいる場合のみである。
その他の利用者定義語 その他の利用者定義語の定義については、「用語集」を参照。

システム名

システム名とは、操作環境との連絡に使用する COBOL の語である。

システム名には、1 つ以上の英字、

MF または 1 つのハイフン

を含める必要がある。

システム名には、次の 3 種類がある。

  • 計算機名 (computer-name)
  • 作成者語 (implementor-name)
  • 言語名 (language-name)

1 つの処理系の中では、これら 3 種のシステム名は互いに重なり合わない。1 つのシステム名は 1 つの種類にのみ属する。

上記のシステム名については、それぞれの定義を「用語集」に記載してある。

組み込み関数名

ANS85 組み込み関数名は、COBOL ソース要素の中で使用できる語のリストの 1 つである。組み込み関数名と同じ語を利用者定義語またはシステム名として、ソース要素中の別々の文脈において使用できる。ただし、LENGTH、RANDOM、および SUM は例外で、利用者定義語またはシステム名としては使用できない。「関数の定義」トピックを参照。

予約語

予約語とは、COBOL 翻訳群で使用される語の指定リストのうち、利用者定義語またはシステム名としては翻訳中で使用できない COBOL の語である。予約語は、一般形式で指定されている方法でのみ使用できる。「付録の予約語」トピックを参照。

予約語には、次の種類がある。

  • キーワード (key word)
  • 補助語 (optional word)
  • 特殊レジスタ (special register)
  • 表意定数 (figurative constant)
  • 特殊文字語 (special-character word)
  • ISO2002MF 定義済みオブジェクト一意名 (predefined object identifier)

キーワード キーワードとは、翻訳群でキーワードの所定の書き方を使用する際に必須の語である。それぞれの書き方において、キーワードは大文字および下線付き表記となる。

キーワードには、次の 3 種類がある。

  1. ADD、READ、ENTER などの動詞
  2. 必須語 (文および記述項の書き方に記述)
  3. NEGATIVE、SECTION などの特定の機能の意味をもつ語
補助語 それぞれの書き方において、補助語は大文字で下線なし表記となり、利用者の裁量で使用できる。補助語は省略も可能で、補助語の有無によって COBOL ソース要素の意味が変わることはない。
特殊レジスタ 特殊レジスタの命名および参照には、特定の文字を使用する。特殊レジスタは、COBOL システムで作成される特定の記憶領域であり、その主な用途は、特定の COBOL 機能の使用に関連して生成された情報を格納することである。これらについては、本セクションの「特殊レジスタ」で後述する。
表意定数 特定の表意定数の命名および参照には、所定の予約語を使用する。これらの予約語については、「表意定数値」セクションで指定されている。
特殊文字語 算術演算子および比較文字は予約語である。
定義済みオブジェクト一意名 所定の予約語は、事前に定義されたオブジェクト一意名として使用する。これには次のものがある。
  • SELF
  • SUPER
  • MF SELFCLASS

文脈依存語

ISO2002 文脈依存語は、文脈依存語が指定されている一般形式でのみ予約されている COBOL の語である。同じ語を、組み込み関数名、利用者定義語、またはシステム名として使用できる。文脈依存語および文脈依存語が予約されている文脈については、付録「予約語」の「文脈依存語一覧表」を参照。