スコープ (プログラミング)
厳密にいえば名前空間自体はスコープそのものではなく、スコープを導入する機構である。おおまかに2通りのものを名前空間と呼んでいる。
名前の集合を定義するもので、任意のタイミングで名前空間を導入し、定義された名前を参照可能にすることができる。名前空間では持続範囲を指定できるため、外部で必要のない名前の拡散を避けることもできる。名前空間自体も一種のスコープを持ち、名前空間の名前によって参照される。この視点では、上記のファイルスコープやローカルスコープも暗黙の名前空間でスコープを構成していると考えられる。ただし無名であり、外部に導入できない名前空間である。
ごく単純なプログラミング言語を除いて、たとえば構造体のメンバー名などは、他の名前と干渉せず、その構造体の中でユニーク(唯一)であれば任意の名前が使える(予約語と同一の場合は制限されることもある。字句や構文の都合にもよる)。そのような「名前が干渉せず、区切られている」それぞれの空間を名前空間という。Lispにおける「Lisp-1とLisp-2の議論」などがある。