リソースの識別に加えて、名前の属性にはグローバル属性とローカル属性があります。
名前の一部はいつでもグローバルで、一部はいつでもローカルです。
また、プログラムで宣言される名前の仕様によっては、
ローカルになったりグローバルになったりする名前もあります。
- PROGRAM の場合
- グローバル名 を使用して、
その名前が関連するリソースを次のプログラムから参照することができます。
- グローバル名が宣言されるプログラムの中
- グローバル名を宣言するプログラムに入っているその他のプログラムの中
名前がグローバルであることを示すには、データ記述項目で GLOBAL 節を使用します。GLOBAL 節の使用の詳細については、GLOBAL 節を参照してください。
ローカル名 を使用して、それが宣言されたプログラムの中から
ローカル名に関連するリソースを参照することができます。
デフォルトでは、
データ記述項目にあるデータ名、ファイル名、レコード名、
または条件名の宣言に GLOBAL 節が含まれない場合、その名前はローカル名です。
- METHOD の場合
- メソッドで宣言された名前は、
すべて暗黙的にローカル名です。
- CLASS の場合
- クラス定義で宣言された名前は、
そのクラス定義に含まれるすべてのメソッドに対してグローバル名になります。
- OBJECT 段落の場合
- OBJECT 段落のデータ部で宣言した名前は、その OBJECT 段落に含まれるすべてのメソッドに対してグローバル名になります。
- FACTORY 段落の場合
- FACTORY 段落のデータ部で宣言した名前は、その FACTORY 段落に含まれるすべてのメソッドに対してグローバル名になります。
制約事項: 特定の規則によって、あるデータ記述、ファイル記述、
またはレコード記述項目に GLOBAL 節を指定できない場合があります。
以下のリストでは、使用できる名前と、
その名前がローカル名とグローバル名のどちらであるかを示しています。
- データ名
- データ名 はデータ項目に名前を割り当てます。
GLOBAL 節が、データ名を宣言するデータ記述項目か、
そのデータ記述項目が従属している別の項目のどちらかに指定されている場合、
そのデータ名はグローバル名です。
- ファイル名
- ファイル名 はファイル結合子に名前を割り当てます。
ファイル名は、そのファイル名に対するファイル記述項目の中で GLOBAL 節が指定されている場合、グローバル名になります。
- レコード名
- レコード名 はレコードに名前を割り当てます。
GLOBAL 節がそのレコード名を宣言するレコード記述で指定されている場合、
あるいはファイル・セクション内のレコード記述項目の場合、
レコード記述項目と関連付けられているファイル名のファイル記述項目の中で GLOBAL 節が指定されている場合は、
レコード名はグローバル名になります。
- 条件名
- 条件名 は条件変数に値を関連付けます。
データ記述項目が、
GLOBAL 節を指定する別の項目に従属している場合は、
条件名はそのデータ記述項目で宣言されます。
構成セクションの中で宣言される条件名は、常にグローバル名になります。
- プログラム名
- プログラム名 は、外部プログラムか内部 (ネストされた) プログラムのどちらかに名前を割り当てます。詳細については、プログラム名の命名規則を参照してください。
プログラム名はローカル名でもグローバル名でもありません。
詳しくは、プログラム名の命名規則を参照してください。
- メソッド名
- メソッド名 はメソッドに名前を割り当てます。
メソッド名 は、英数字リテラルまたは国別リテラルの内容として指定する必要があります。
- セクション名
- セクション名 は手続き部のセクションに名前を割り当てます。
セクション名はいつでもローカル名です。
- 段落名
- 段落名 は手続き部の段落に名前を割り当てます。
段落名はいつでもローカル名です。
- 基本名
- 基本名 は、コンパイラーがソース単位に組み込むソース・テキストの名前を指定します。詳細については、BASIS ステートメントを参照してください。
- ライブラリー名
- ライブラリー名 は、コンパイラーが COPY テキストを組み込むために使用する COBOL ライブラリーを
指定します。詳細については、COPY ステートメントを参照してください。
- テキスト名
- テキスト名 は、コンパイラーがソース単位に組み込む COPY テキストの名前を指定します。詳細については、COPY ステートメントを参照してください。
- 英字名
- 英字名 は、
環境部の SPECIAL-NAMES 段落で特定の文字セットまたは
照合シーケンス、あるいはその両方に名前を割り当てます。
英字名はいつでもグローバル名です。
- クラス名 (データの)
- クラス名 は、
環境部の SPECIAL-NAMES 段落で真の値を定義できる提案されたクラスに名前を割り当てます。
クラス名はいつでもグローバル名です。
- クラス名 (オブジェクト指向)
- クラス名 は、オブジェクト指向クラスまたはサブクラスに名前を割り当てます。
- 簡略名
- 簡略名 はインプリメンター名にユーザー定義語を割り当てます。
簡略名はいつでもグローバル名です。
- シンボリック文字
- シンボリック文字 はユーザー定義形象定数を表します。
シンボリック文字はいつでもグローバル名です。
- 指標名
- 指標名 は特定のテーブルに関連する指標に名前を割り当てます。
グローバル属性のデータ項目が指標によってアクセスされるテーブルを含んでいる場合は、その指標もグローバル属性を持ちます。
さらに、指標名のスコープはテーブルが含まれるデータ名のスコープと同じです。