Variabel (programmering)

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 27. januar 2021; checks kræver 3 redigeringer .

En variabel i imperativ programmering  er et navngivet eller på anden måde adresserbart hukommelsesområde , hvis adresse kan bruges til at få adgang til data . Dataene indeholdt i en variabel (det vil sige på en given hukommelsesadresse) kaldes værdien af ​​denne variabel (kort sagt: en variabel er et navngivet stykke hukommelse, der har en bestemt type).

I andre programmeringsparadigmer , for eksempel i funktionel og logisk , viser begrebet en variabel sig at være noget anderledes. På sådanne sprog er en variabel defineret som et navn , som en værdi kan associeres med, eller endda som en placering til at gemme værdien.

Omfanget og/eller levetiden for en variabel på nogle sprog er givet af lagerklassen .

Klassifikation

Statisk og dynamisk typning af variabler

Hvis datatypen bestemmes på kompileringstidspunktet , finder statisk indtastning sted , og hvis datatypen køres, dynamisk indtastning . I sidstnævnte tilfælde siges det nogle gange, at variablen ikke har nogen type, selvom de data , der er indeholdt i den, bestemt tilhører en bestemt datatype , men dette er allerede afklaret under udførelsen af ​​programmet.

I de fleste tilfælde reducerer statisk indtastning omkostningerne ved programafvikling, fordi dynamisk indtastning kræver overhead med at finde ud af datatyper og caste dem i udtryk med blandede typer. Statisk indtastning giver dig mulighed for at kontrollere typer på stadiet af programkompileringen. Det gør det også nemmere at opdage fejl i udviklingsfasen, hvor det er billigere at rette dem.

Men i mange tilfælde er det nødvendigt at bruge dynamisk skrivning. For eksempel behovet for at opretholde kompatibilitet, når du flytter til et nyt datarepræsentationsformat (for eksempel sender den gamle del af projektet datoen til proceduren som en tegnstreng, og nye objekter bruger en mere moderne numerisk type).

Statiske og dynamiske variabler

Adressen på en navngivet hukommelsesplacering kan også bestemmes både på kompileringstidspunktet og ved runtime. Variabler kan enten være statiske eller dynamiske på det tidspunkt, de oprettes . Førstnævnte oprettes på det tidspunkt, hvor programmet eller subrutinen startes, og sidstnævnte oprettes under afviklingen af ​​programmet.

Dynamisk adressering er kun nødvendig, når mængden af ​​data, der skal lagres, ikke er nøjagtigt kendt på forhånd. Sådanne data placeres i specielle dynamiske strukturer, hvis type er valgt i overensstemmelse med opgavens specifikationer og med mulighederne i det valgte programmeringssystem. Det kan være en stack , en heap , en osv. Selv en fil, i den forstand som N. Wirth satte ind i Pascal , er en dynamisk struktur.

Lokale og globale variabler. Omfang

Efter omfang skelnes lokale og globale variabler. Førstnævnte er kun tilgængelige for en specifik subrutine, sidstnævnte for hele programmet. Med udbredelsen af ​​modul- og objektprogrammering var der også delte variabler (tilgængelige på visse niveauer af subrutinehierarkiet). Omfanget er nogle gange givet af lagerklassen . Synlighed kan begrænses ved at indføre navnerum .

Synlighedsbegrænsning blev opfundet både for at kunne bruge de samme variabelnavne (hvilket er rimeligt, når variabler udfører en lignende funktion i forskellige underprogrammer), og for at beskytte mod fejl i forbindelse med ulovlig brug af variabler (men til dette skal programmøren eje og bruge den passende logik ved datastrukturering).

Simple og komplekse variabler

Ifølge tilstedeværelsen af ​​en intern struktur kan variabler være enkle eller komplekse (sammensatte).

De mest typiske eksempler på komplekse typer er array (alle elementer er af samme type) og record (elementer kan have forskellige typer).

Relativiteten af ​​en sådan opdeling bør understreges: For forskellige programmer kan den samme variabel have en anden struktur.

For eksempel skelner compileren 4 felter i en variabel af en reel type: tegn på mantissen og eksponenten plus deres værdier, men for en programmør, der kompilerer sit program, er en reel variabel en enkelt hukommelsescelle, der gemmer et reelt tal.

Variable navngivningskonventioner

Se også

Noter

Links