Formally, a
namespace is a label used to isolate the set of all possible object names within it from interfering with objects of the same name outside of it or in other namespaces. It is an abstract, labeled set of possible names for use within a single context (scope, binding, etc.).
Usage note: Many will first be introduced to namespaces from learning about a particular language or markup. While many languages and markups support namespaces explicitly or implicitly, the concept of a namespace is purely an abstraction for encapsulating a set of possible names, and should not be thought of in terms of the mechanisms any single language may use to support them.
For example
XML has a strong namespace mechanism that includes referenced and scoped namespaces. C++ includes specific declared namespaces, the "with" statement in
JavaScript allows convenient (if slow) support for namespaces by treating a class as a namespace, Perl permits a form of namespaces using its packages and explicit export mechanisms.