プログラムにおける変数名やクラス名 XMLのタグ名などの「名前(シンボル)」の集まりのこと。シンボルは一つの名前空間内で一意である必要がある。C++ VB.NET C#などは 名前空間にファイル・システムにおけるディレクトリのような階層構造を導入することでシンボルの衝突を防ぐ仕組みを用意している。例えばC++で Tokyo.Chiyoda Tokyo.Shinjukuという二つの名前空間を用意すると それらの中で定義したTaxクラスは別々のものとして扱われる。この場合 Tokyo.Chiyoda::Taxのように記述すれば各クラスにアクセスできる。Javaの場合はパッケージが同様の機能を提供する。