[go: up one dir, main page]

Een naamruimte (Engels namespace) is een mechanisme dat in veel computertalen de mogelijkheid biedt om namen van variabelen, constanten en functies (identifiers) zodanig te groeperen dat ze binnen verschillende contexten een (volstrekt) afzonderlijke betekenis en werking krijgen.

In het algemeen is een naamruimte een abstracte zone die bestaat of zou kunnen bestaan uit namen, technische termen of woorden. Een naamruimte identificeert een verzameling van namen eenduidig, zodat er geen sprake kan zijn van ambiguïteit als objecten met een andere herkomst maar met dezelfde naam door elkaar gebruikt worden. De reden hiervoor is dat de namen nooit "vermengd" kunnen worden, omdat ze uit verschillende naamruimten komen. In een naamruimte moet iedere naam uniek zijn. De naamruimte is de context, en in de naamruimte kan ieder woord in principe refereren aan een object of concept in de werkelijkheid.

In vele programmeertalen is een naamruimte een context voor symboolnamen. In Pascal heet een naamruimte unit, waarvan de implementation sectie met andere units communiceert via de interface sectie bovenin hetzelfde bestand. In de ontvangende unit kan de naam van de aangeroepen unit als prefix gebruikt worden om symboolnamen te desambigueren. In C en C++ zijn de declaraties van de symboolnamen in de ontvangende module, zoals die met een header file worden doorgegeven, niet zonder meer eenduidig; in de aangeroepen modulen kunnen definities van de symboolnamen worden voorzien van een expliciete namespace clausule; deze kan in de ontvangende module worden gebruikt door middel van het statement using <namespace> ten behoeve van het oplossen van dubbelzinnigheid.

MediaWiki-software

bewerken

Verder komen naamruimtes voor in de MediaWiki-software waarop onder andere Wikipedia draait. De opsplitsing in naamruimtes maakt het mogelijk om de inhoudelijke artikelen gescheiden te houden van andere pagina's die bedoeld zijn voor de ondersteuning van het project. Ook kunnen er aan bepaalde naamruimtes bepaalde eigenschappen gekoppeld worden. Een voorbeeld hiervan is de categorie-naamruimte waarbij andere pagina's, waarop de naam van de categorie is toegevoegd, getoond worden in de categorie en er op die manier een hiërarchische categorieboom gemaakt kan worden door artikelen te groeperen.