Statische reikwijdte

Statische reikwijdte bij programmeren declareert variabelen lexicaal, afhankelijk van de logische structuur en organisatie van het programma. Bij het programmeren declareert scope een bereik waarin een variabele zichtbaar en bruikbaar is. Scope is handig omdat het secties van een programma en de variabelen daarin onderscheidt.

Een andere opmerking over bereik is dat de beschrijving enigszins misleidend is: het verwijst ook naar de manier waarop een variabele functioneert binnen een programma, niet alleen naar het gebied waarin het bestaat. Toepassingsgebied is niet de meest nauwkeurige term omdat het alleen het bestreken gebied aangeeft, niet de uitgevoerde actie. Ontwikkelaars en onderzoekers accepteren dit en begrijpen onder scope zowel de definitie als het gebruik van een variabele.

Statische versus dynamische scoping

Statische scoping is gebruikelijk in programmeertalen; dynamische scope, de andere vorm van scoping, is dat veel minder. Als bij statische scoping een gebied van het programma een bepaald bereik heeft, retourneert een variabele binnen een functie de toegewezen waarde voor dat bereik wanneer de functie wordt uitgevoerd. Als bijvoorbeeld een variabele x = 5 in een bepaalde functie, en een daaropvolgende voorwaardelijke definitie voor x ook wordt gegeven, x = 5 waar de scope van het programma het ook als zodanig definieert. Dit is standaard voor de meeste programmeertalen.

Dit is in tegenstelling tot dynamische scoping, waarbij de meest recent gebruikte waarde van een variabele wordt aangeroepen op basis van de call-stack van het programma. In het bovenstaande voorbeeld, als x = 5 maar dan x later werd gedefinieerd met een waarde van 10, zou een programma met een dynamisch bereik x = 10 aanroepen als die waarde voor het laatst was gebruikt. Dynamische reikwijdte is minder logisch en gestructureerd dan statische reikwijdte.