COBOL 語は、文字、数字、ハイフン、および 下線のセットから成る文字ストリングでなければなりません。
(ただし、ハイフンおよび下線を先頭文字または最後の文字として使用することはできません。) ILE COBOL 言語では、通常、それぞれの小文字は対応する大文字と等価です。
COBOL 語には、次の 5 つのタイプがあります。
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
ソース・プログラム内に含まれる特殊文字語ではないすべての COBOL 語には次の規則が適用されます。
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
そのような COBOL 語の特定のオカレンスの種別は、それが出現する句のコンテキストによって判断します。
以下に、ユーザー定義語と、その構成時に従うべき規則をリストします。
各ユーザー定義語の機能は、それが現れる文節またはステートメントで説明してあります。
関連情報
通常、ユーザー定義語は、上記のテーブルにリストしたタイプのいずれか 1 つに属していなければなりません。 さらに、ユーザー定義語は、属するタイプの中で固有でなければなりません。
一般規則には、以下の 2 つの例外があります。
このような名前の参照の固有性の確保について詳しくは データ参照の方法を参照してください。
ユーザー定義語が宣言されているプログラムのステートメントおよび記入項目は、次のユーザー定義語のタイプを参照できます。
次のユーザー定義語のタイプは、どの COBOL プログラムでも参照できます。
次のタイプの名前は、構成セクションで宣言されていれば、 構成セクションを含んだプログラム、またはそのプログラム内に含まれるすべてのプログラムのいずれかにあるステートメントおよび記入項目から、参照できます。
システム名は、システムにとって特定の 意味を持つように IBM によって定義された文字ストリングです。 システム名には次の 4 つのタイプがあります。
コンピューター名は、DBCS 文字で書くことができます が、その他のシステム名は書くことができません。
関数名とは、COBOL ソース・プログラムで使用される、一連の指定された語の 1 つです。
関数名は、ILE COBOL によって提供される、組み込み関数の値を判別するためのメカニズムを指定します。
語 LENGTH、RANDOM、SUM、および WHEN-COMPILED の場合を除き、 別のコンテキストでは関数名として使用されている語をプログラムの中でユーザー定義語、 システム名、またはコンテキストに依存した語として使用できます。
+----------------------------------IBM 拡張----------------------------------+
コンテキストに依存した語は、予約語の規則に従 って形成された COBOL 語で、一般形式で指定されたように使用できます。
同じ語が、関数名、ユーザー定義語、またはシステム名として使用されることがあります。
ILE COBOL のコンテキストに依存した語は 付録 D, ILE COBOL 関数名およびコンテキストに依存した語のリストにリストされています。
+------------------------------End of IBM 拡張-------------------------------+
予約語は、COBOL ソース・プログラムで事前定義 した意味を持つ文字ストリングのことで、言語定義形式の指定のとおりにのみ 使用できます。
ILE COBOL の予約語は 付録 E, ILE COBOL 予約語リストにリストしてあります。
予約語には、次の 5 つのタイプがあります。
キーワードとは、特定の文節、 記入項目、または ステートメント内で必要な予約語のことです。
オプショナル語とは、読みやすくするために文節、記入項目、またはステートメントの形式の中に含められる予約語のことです。 それらはプログラムの意味や実行に影響を与えることはありません。 オプショナル語は形式内では大文字で表されますが、主パスの下部に書かれます。
特殊文字語には、次の 2 つのタイプがあります。
表意定数とは、特定の定数値に名前を付けて、それを参照する予約語のことです。 表意定数のための予約語とその意味を次に示します。
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
APOST がコンパイラー・オプションとして指定されるとき、 表意定数 QUOTE にはアポストロフィの EBCDIC 値が含まれます。
+------------------------------End of IBM 拡張-------------------------------+
ALL リテラル以外の表意定数を使用する場合には、ALL という語は余分であり、 読みやすくするだけの目的で使用します。 INSPECT、STOP、または STRING ステートメントの中で表意定数の ALL リテラルを使用してはなりません。
+----------------------------------IBM 拡張----------------------------------+
ALL リテラルに使用できるリテラルは、ブール・リテラル、DBCS リテラル、または国別の 16 進リテラルです。
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
ILE COBOL 言語では、NULL の値は定義されていません。
+------------------------------End of IBM 拡張-------------------------------+
ZERO、SPACE、HIGH-VALUE、LOW-VALUE、QUOTE、および NULL の単数形と複数形は等価なので、いずれを使用してもかまいません。 たとえば、DATA-NAME-1 が 5 文字のデータ項目の場合、 次のステートメントはどれも、DATA-NAME-1 に 5 桁のスペースを埋めます。
MOVE SPACE TO DATA-NAME-1 MOVE SPACES TO DATA-NAME-1 MOVE ALL SPACES TO DATA-NAME-1
「リテラル」が形式の中のどこにあっても、明示的に禁止されている場合以外は、表意定数を使用できます。 形式の中に数字リテラルがある場合には、使用できる表意定数は ZERO だけです。 表意定数は、それがある関数への引数となっている算術式の中以外においては、関数の引数として使用できません。
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
表意定数の長さは、プログラムのコンテキストによって決まります。次の規則が適用されます。
特殊レジスターとは、コンパイラーにより生成される記憶域に名前を付ける予約語のことです。 その主な用途は、特定の COBOL 機能が作成した情報を保管することです。 このような記憶域はおのおのが固定の名前をもっているので、プログラムの中で改めて定義する必要はありません。
この指定の一般的な形式では、他に制限がなければ、データ名または ID が指定されているところではどこでも、特殊レジスターを使用できます。 ただし、特殊レジスターはデータ名または ID と同一のカテゴリーであることが条件です。 修飾が許可されている場合は、特殊レジスターに固有性を与えるために修飾できます。
プログラムの制御が、CALL ステートメントによって、実行単位内で あるプログラムから別のプログラムに最初に移されると、コンパイラーは、特殊レジスター・フィールド を初期値に設定します。RETURN-CODE および SORT-RETURN 特殊レジスターは、 以下の場合、初期値にリセットされます。
その他のすべての場合、特殊レジスターが初期値にリセットされることはありません。 特殊レジスターは、前回に、プログラム制御が CALL ステートメントによって移された ときに保存された値のままです。
英数字の引数が許可されている場合は、特に禁止されていない限り、英数字レジスターを関数で指定できます。
英数字の引数が許可されている場合は、特に禁止されていない限り、英数字特殊レジスターを関数で指定できます。
それぞれの特殊レジスターについては、次に示されたページから始まるセクションに説明されています。
特殊レジスターには次のものがあります。
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+