A notation for indicating an entity in a program or system. (The word can also be used as a verb.) The kinds of entity that can be named depend on the context, and include variables, data objects, functions, types, and procedures (in programming languages), nodes, stations, and processes (in a data communication network), files, directories, devices (in operating systems), etc. The name denotes the entity, independently of its physical location or address. Names are used for long-term stability (e.g. when specifying a node in a computer program) or for their ease of use by humans (who recognize the name more readily than an address). Names are converted to addresses by a process of name lookup.
In many languages and systems, a name must be a simple identifier, usually a textual string. In more advanced languages, a name may be composed from several elementary components according to the rules of the language.