2017-12-06 名前空間の構造 証明シェル その他ソフトウェア 名前空間の構造化に関連する概念 名前空間の親子関係 シャドーイング 入れ子名前空間(ブロックスコーピング) 上掛け(overlay)名前空間 大域名前空間 名前付き名前空間 無名名前空間 名前空間もオブジェクトと考えてツリー構造をなす。ルートノードの名前空間を大域名前空間またはレベル0名前空間と呼ぶ。名前空間は親子関係があるが、同時に寿命がある。大域名前空間は、親子関係の元であるだけでなくて、寿命も制御していて、大域名前空間がなくなるとき、すべての子の名前空間もなくなる。 各名前空間には、ローカル名をキーとしてオブジェクトが登録されている。オブジェクトの一種として子名前空間がある。 生成されると、親がなくなるまで生きる名前空間を上掛け名前空間と呼ぶ。 親より前に無くなる可能性がある名前空間を入れ子名前空間と呼ぶ。 親子関係でシャドーイングが起きる。しかし、上書きはしない。 上掛け名前空間であっても、シャドーした名前にアクセスする方法はある。したがって、シャドーの代わりに変更はできない。 親から名前で指される名前空間は名前付き名前空間。 親から出る子供名前空間が唯一のとき(一人っ子)、無名名前空間が許される。 任意の時点で、カレント名前空間が唯一に決っている。