Nimiavaruus on tietojenkäsittelytieteessä formaalin kielen symboleja yhteen nippuun sitova määre.

Nimiavaruuksia käytetään tyypillisesti ohjelmointikielissä, tiedostojärjestelmissä ja tietoverkoissa. Ohjelmointikielissä nimiavaruuksia käytetään jäsentämään ohjelmiston sisällä käytettäviä tunnisteita siten, ettei eri konteksteissa käytettyjen nimien välille synny päällekkäisyyksiä. Näin esimerkiksi ohjelman aliohjelmalla ja muuttujalla voi olla sama nimi. Tiedostojärjestelmissä nimiavaruus mahdollistaa nimien asettamisen tiedostoille sekä hakemistoille. Tietoverkoissa eri resursseille voidaan vastaavasti antaa nimet, jolloin kommunikointi laitteiden välillä on mahdollista. Samassa nimiavaruudessa ei voi olla samoja nimiä, vaikka ne tarkoittaisivatkin eri asioita.

Ohjelmointikielissä Ohjelmointikielissä nimiavaruus osoitetaan nimiavaruuden tunnisteella sekä paikallisella nimellä.

C++-kielessä nimiavaruuksia käytetään osoittamaan yhteenliittyviä kokonaisuuksia (kuten mm. funktiot, luokat, enumeraatiot) ja joissa ei saisi olla törmäyksiä muiden vastaavasti nimettyjen kanssa. Nimiavaruuksien ulkopuolelta viittaamiseen käytetään kaksoispisteitä erottimena tai määrittämällä synonyymi, jolloin nimiavaruutta ei tarvitse toistaa viitatessa siihen. Nimiavaruudet voi määrittää itse ja on mahdollista käyttää sekä sisäkkäisiä nimiavaruuksia että nimiavaruuksien aliasointia.

Java käyttää nimiavaruuden osoittamiseen pakettinimiin perustuvaa hierarkiaa pistenotaatiolla: paketti osoittaa yhteenkuuluvien luokkien ryhmää ja määrittää nimiavaruuden johon ne kuuluvat. Luokan on sekä yksinkertainen nimi että täyspitkä nimi (), joka sisältää sen paketin johon se kuuluu. Luokan java.lang.String pakettinimi on java.lang ja yksinkertainen nimi on String.

Kaikki ohjelmointikielet eivät tue nimiavaruuksia. Tällaisia ovat mm. C sekä Objective-C.

Katso myös Linux-nimiavaruudet

Lähteet

Luokka:Formaalit kielet Luokka:Ohjelmointi