namespacesname spacehierarchical namespaceanonymous namespaceC++ namespacesenvironmentpackageWeb addresses
In computing, a namespace is a set of symbols that are used to organize objects of various kinds, so that these objects may be referred to by name.wikipedia
289 Related Articles

Domain Name System

DNSresource recordDNS record
In networking, the Domain Name System organizes websites (and other resources) into hierarchical namespaces.
The Internet maintains two principal namespaces, the domain name hierarchy and the Internet Protocol (IP) address spaces.

Name collision

In computer programming, namespaces are typically employed for the purpose of grouping symbols and identifiers around a particular functionality and to avoid name collisions between multiple identifiers that share the same name.
The term "name collision" refers to the nomenclature problem that occurs in computer programs when the same variable name is used for different things in two separate areas that are joined, merged, or otherwise go from occupying separate namespaces to sharing one.


IDidentifiersidentification number
For many programming languages, namespace is a context for their identifiers.
Many codes and nomenclatural systems originate within a small namespace.

Name resolution (programming languages)

name resolutionname maskingdynamic-named
When local names are used by themselves, name resolution is used to decide which (if any) particular item is alluded to by some particular local name.

Uniform Resource Name

URNUniform Resource Name (URN)Namespace Specific String
An example of a non-recursive hierarchy are Uniform resource name representing an Internet Assigned Numbers Authority (IANA) number.
In contrast, URNs were conceived as persistent, location-independent identifiers assigned within defined namespaces, typically by an authority responsible for the namespace, so that they are globally unique and persistent over long periods of time, even after the resource which they identify ceases to exist or becomes unavailable.

Java package

In Java, the idea of a namespace is embodied in Java packages.
A Java package organizes Java classes into namespaces,

XML namespace

XML namespacesnamespacesnamespace
If each vocabulary is given a namespace, the ambiguity between identically named elements or attributes can be resolved.

Perl module

A module defines its source code to be in a package (much like a Java package), the Perl mechanism for defining namespaces, e.g. CGI or Net::FTP or XML::Parser; the file structure mirrors the namespace structure (e.g. the source code for Net::FTP is in Net/

Variable (computer science)

Common techniques for doing so are to have different sections of a program use different name spaces, or to make individual variables "private" through either dynamic variable scoping or lexical variable scoping.

Internet Assigned Numbers Authority

IANAInternet Assigned Numbers Authority (IANA)Internet number
An example of a non-recursive hierarchy are Uniform resource name representing an Internet Assigned Numbers Authority (IANA) number.
In the case of the two major Internet namespaces, namely IP addresses and domain names, extra administrative policy and delegation to subordinate administrations is required because of the multi-layered distributed use of these resources.

Name mangling

Name decorationadornC++ name mangling
The need arises where the language allows different entities to be named with the same identifier as long as they occupy a different namespace (where a namespace is typically defined by a module, class, or explicit namespace directive) or have different signatures (such as function overloading).

Universally unique identifier

UUIDGlobally Unique IdentifierGUID
Version-1 UUIDs are generated from a time and a node id (usually the MAC address); version-2 UUIDs are generated from an identifier (usually a group or user id), time, and a node id; versions 3 and 5 produce deterministic UUIDs generated by hashing a namespace identifier and name; and version-4 UUIDs are generated using a random or pseudo-random number.

Fully qualified name

fully qualified file namefully qualified class namefully (database, schema, and table) qualified
Code from other packages is accessed by prefixing the package name before the appropriate identifier, for example in can be referred to as (this is known as the fully qualified class name).
Fully qualified names explicitly refer to namespaces that would otherwise be implicit because of the scope of the call.

C++ Standard Library

libstdc++standard libraryits standard library
For example, the entire C++ Standard Library is defined within, but before standardization many components were originally in the global namespace.
Features of the C++ Standard Library are declared within the namespace.

Naming collision

namespace collisioncollision
Namespaces in C++ are most often used to avoid naming collisions.
A naming collision is a circumstance where two or more identifiers in a given namespace or a given scope cannot be unambiguously resolved, and such unambiguous resolution is a requirement of the underlying system.


C++ programming languageC++98C with Classes
In some programming languages (e.g. C++, Python), the identifiers naming namespaces are themselves associated with an enclosing namespace.
Later feature additions included templates, exceptions, namespaces, new casts, and a boolean type.

Naming convention (programming)

naming conventionsnaming conventionidentifier naming convention
In programming languages lacking language support for namespaces, namespaces can be emulated to some extent by using an identifier naming convention.

Scope (computer science)

scopelexical scopeLexical
A namespace identifier may provide context (Scope in computer science) to a name, and the terms are sometimes used interchangeably.
Together with namespaces, scoping rules are crucial in modular programming, so a change in one part of the program does not break an unrelated part.


PHP5PDOPHP programming language
Namespaces were introduced into PHP from version 5.3 onwards.


onlinethe Internetweb
The overreaching definitions of the two principal name spaces in the Internet, the Internet Protocol address (IP address) space and the Domain Name System (DNS), are directed by a maintainer organization, the Internet Corporation for Assigned Names and Numbers (ICANN).

C Sharp (programming language)

C#Visual C#C# programming language
In Java (and Ada, C#, and others), namespaces/packages express semantic categories of code.

.NET Framework

.NETMicrosoft .NET FrameworkMicrosoft .NET
For example, in C#, contains code provided by the system (the .NET Framework).
The .NET Framework Class Library (FCL) is organized in a hierarchy of namespaces.

Argument-dependent name lookup

argument-dependent lookupArgument dependent name lookup criticism
During argument-dependent lookup, other namespaces not considered during normal lookup may be searched where the set of namespaces to be searched depends on the types of the function arguments.


As an analogy, consider a system of naming of people where each person has a proper name, as well as a family name shared with their relatives.