Bereik (informatica)

Uit Wikipedia, de vrije encyclopedie
(Doorverwezen vanaf Variabelenbereik)
Ga naar: navigatie, zoeken

In de informatica wordt met het bereik (gewoonlijk de scope) van een symbool het deel van de broncode aangeduid waarin dat symbool gedefinieerd is. Het beperken van de scope van een symbool maakt het mogelijk dezelfde naam meermaals te gebruiken zonder dat verschillende definities conficteren. Een andere belangrijke reden is dat middels het beperken van de scope van een symbool de interne werking van een deel van een programma of programmabibliotheek kan worden verborgen zodat ongewenste linkage kan worden uitgesloten. Een bekend voorbeeld voor het beperken van een scope zijn lokale variabelen, die alleen binnen de procedure waarin ze zijn gedefinieerd geldig zijn, maar ook namespaces zijn bedoeld om het bereik van een symbool te beperken.

Aan welke regels het bereik van een symbool is onderworpen, verschilt van taal tot taal, maar veelal[1] word de scope gegeven door het blok waarin het symbool is gedefinieerd.

Statisch en dynamisch bereik[bewerken]

Bij een statisch bereik (ook lexicaal bereik genoemd) wordt het bereik van een symbool syntactisch bepaald: het is een bepaald deel van de broncode waar de definitie van het symbool in voorkomt. Het bereik wordt dus bepaald als het programma wordt gecompileerd (compile time), waardoor de geldigheid van gebruikte symbolen kan worden getoetst door de compiler, die passende diagnostische meldingen kan produceren.

Bij een dynamisch bereik wordt het bereik van een symbool bepaald door de uitvoering van het programma (run time): een definitie van een symbool blijft van kracht, waar de desbetreffende code ook gedefinieerd is, totdat de definitie ongedaan wordt gemaakt. Fouten in het gebruik van symbolen kunnen daardoor alleen worden geconstateerd tijdens het uitvoeren van het programma.

Globaal bereik[bewerken]

Een bijzonder geval is de global scope, wat inhoudt dat het symbool in het hele programma gedefinieerd is. Omdat dit bereik geen delen van de broncode uitsluit, gaan zodoende alle voordelen van het beperken van de scope verloren. De praktijk wordt dan ook in de regel stevig afgeraden.

Bronnen, noten en/of referenties
  1. Pascal, C, C++, Java, etc.