Namespace
De Wikipedia, la enciclopedia libre
Esta página está siendo traducida del idioma inglés a partir del artículo namespace (computer science), razón por la cual puede haber lagunas de contenidos, errores sintácticos o escritos sin traducir. Puedes colaborar con Wikipedia continuando con la traducción desde el artículo original |
Namespace o espacio de nombre simplemente es un conjunto de nombres en el cual todos los nombres son únicos.
Un namespace es un contexto en el que un grupo de uno o más identificadores pueden existir. Un identificador definido en un namespace está asociado con ese namespace. El mismo identificador puede independientemente ser definido en múltiples namespaces, eso es, el sentido asociado con un identificador definido en un namespace es independiente del mismo identificador declarado en otro namespace. Los lenguajes que manejan namespaces especifican las reglas que determinan a qué namespace pertenece una instancia de un identificador.
Por ejemplo, Pedro trabaja para la compañía X y su número de empleado es 123. María trabaja para la compañía Y y su número de empleada también es 123. La razón por la cual Pedro y María pueden ser identificados con el mismo número de empleado es porque trabajan para compañías diferentes. Diferentes compañías simbolizan en este caso diferentes namespaces.
En programas grandes o en documentos no es infrecuente tener cientos o miles de identificadores. Los namespaces (O técnicas similares como la emulación de namespaces) proveen un mecanismo para ocultar los identificadores locales. Ellos proveen los medios para agrupar lógicamente los identificadores relacionados en sus correspondientes namespaces, haciendo así el sistema más modular.
Muchos lenguajes de programación manejan namespaces. En algunos lenguajes, como C++ o Python, estos identificadores nombrando namespaces están asociados con un namespace que los agrupa. Así pues, en estos lenguajes, los namespaces se pueden anidar formando un árbol de namespaces. En la raíz de éste árbol se encuentra el anónimo namespace global.