名前がプログラムで指定されている場合と、クラス定義で指定されている場合では、名前解決の規則が異なります。
あるプログラム (プログラム B) が別のプログラム (プログラム A) の中に含まれていると、 それら 2 つのプログラムは、同じユーザー定義語で条件名、データ名、ファイル名、 またはレコード名を定義することができます。 そのような重複名がプログラム B で参照されると、 次のステップに従って、参照されるリソースが判別されます。(これらの規則はクラスおよび 含まれているメソッドにも適用されます)。
この規則は、有効なリソースが見つかるまで、 含んでいる方のプログラムに適用されます。
クラス定義では、次の単位の中でリソースを定義することができます。
オブジェクト定義のデータ部おいてリソースがある名前で定義されている場合、 そのオブジェクト定義のインスタンス・メソッドに同じ名前のリソースが定義されていないときは、 その名前へのインスタンス・メソッドからの参照は、オブジェクト・データ部のリソースへの参照になります。
ファクトリー定義のデータ部おいてリソースがある名前で定義されている場合、 そのファクトリー定義のファクトリー・メソッドに同じ名前のリソースが定義されていないときは、 その名前へのファクトリー・メソッドからの参照は、ファクトリー・データ部のリソースへの参照になります。
メソッド内にリソースが定義されている場合、そのメソッド内での同じリソース名への参照はすべて、 そのメソッド内のリソースへの参照になります。
1 つのメソッド・データ部、オブジェクト・データ部、ファクトリー・データ部の中で、 同じ名前が複数のリソースに関連付けられている場合は、参照の修飾と固有性に関する標準規則が適用されます。