Name collision

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. As with the collision of other identifiers, it must be resolved in some way for the new software (such as a mashup) to work right.[1] Problems of name collision, and methods to avoid them, are a common issue in an introductory level analysis of computer languages, such as for C++.[1]

History

The term "name collision" has been used in computer science for more than three decades, when referring to names in various classification systems.[2]

Avoiding name collisions

There are several techniques for avoiding name collisions, including the use of:

  • namespaces - to qualify each name within a separate name group, so that the totally qualified names differ from each other.[1]
  • renaming - to change the name of one item (typically the one used less often) into some other name.
  • prefixing - putting unique characters before the names so that the names differ and further name collisions are unlikely to happen by accident.

Those are some of the tactics used to resolve the name collisions.

gollark: 6_4 tells me that Opus sockets are *optionally* encrypted.
gollark: This is enough detail that you can see rivers and such.
gollark: If you want high quality I have a perfectly good *original*.
gollark: This is for hologram projection.
gollark: You can now see actual mesas.

See also

  • local variables, variable data items that are local to a module
  • Name mangling

References

  1. "Getting Started" (lesson for C++), Brown University, Computer Science Dept., January 2000 (in text as "Jan 2000"), pages 5-6, webpage (PDF): CS-Brown-Cpp.
  2. "Name collision in multiple classification hierarchies", Portal ACM (Association for Computing Machinery), by J.L. Knudsen, 1988, webpage: Portal-ACM-607.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.