Variabel (computer)

I datalogi , variabler er symboler , der forbinder et navn ( id ) med en værdi. På de fleste sprog og især de mest almindelige kan variabler ændre værdi over tid ( dynamisk ). På sprogene i visse paradigmer , især funktionel programmering , er deres værdi tværtimod frossen i tiden ( statisk ).

Variabler og konstanter

I modsætning til en variabel er en konstant en identifikator, der er knyttet til en fast værdi. Syntaksisk har denne identifikator alle aspekterne af en variabel. Det tildeles dog en endelig værdi, det vil sige konstant , såsom størrelsen på et skakbræt (8x8). En konstant indeholder en værdi, der kan have forskellige værdier afhængigt af henrettelserne, som minesveger- spillet, hvor spilleren kan vælge tavlens størrelse.

Programmeringsvariabler

På et programmeringssprog er en variabel lagerplads for et resultat. Imidlertid er mulighederne For en variabel tæt knyttet til det programmeringssprog, som vi henviser til. For eksempel vil en variabel i C ++ have seks karakteristika:

Man kan dog finde sprog, der begrænser disse egenskaber:

Variabler og henvisninger

På alle de sprog, der tillader dynamisk oprettelse af adresser (nyt i C ++ eller Java), suppleres begrebet variabel med begrebet pointer (datatype tilknyttet en variabel, hvis værdier er adresser). Adressen indeholdt i en markørvariabel kan være utilgængelig for programmøren (PHP, Java, Python) eller direkte tilgængelig (C ++) .

Navn på variabler

På nogle sprog skal navnene på variabler (som identifikatorerne ) nødvendigvis begynde med et bogstav (store eller små bogstaver) eller med et _ ( understreget ). De andre tegn, der udgør navnet på variablen, skal være et bogstav, et tal eller et _ . Forskellen mellem store og små bogstaver (store og små bogstaver) i navnet på en variabel afhænger af det betragtede sprog.

Eksempler på gyldige variabelnavne i C  :

Eksempel på et ugyldigt variabelnavn i C:

Således kan det første tegn ikke være et tal, fordi dette gør det muligt at lette kompilering eller fortolkning af programmet ved at fjerne en tvetydighed: når kompilatoren læser et tal, ved det, at de følgende tegn vil udgøre en numerisk værdi. Ligeledes, hvis det læser et brev eller en understregning, ved det, at det har at gøre med en variabel.

Alle disse variabelnavne er gyldige i Lisp .

Indtastning

Når typen af ​​en variabel bestemmes ved kompilering (eksplicit af programmøren eller automatisk efter typeinferens ), taler vi om statisk typing . Værdierne for denne variabel skal være af denne type (i vid forstand, det vil sige af samme type eller af afledt type).

Statisk skrivning hjælper med at generere mere effektiv objektkode (med hensyn til hukommelsesforbrug og udførelseshastighed). Det forbyder imidlertid refleksivitet under udførelse.

Ellers i tilfælde hvor det ikke er variablerne, der har en type, men værdierne, taler vi om dynamisk skrivning eller latent skrivning.

Vi taler om stærk skrivning, når sproget kræver, at variablerne deklareres i en type og bruges i denne type (f.eks: Ada eller C ++). Vi taler om svag typing, når sproget indrømmer, at en variabel kan ændre type under dens eksistens (især for at tilpasse sig udtrykets semantik).

Livscyklus af variabler

Der er generelt fem operationer på variabler, som hver kan have forskellige syntaktiske former.

Sprog, såsom C , Caml eller Pascal , kræver at deklarere en variabel eller endda give den en type inden dens anvendelse. Den tvungne erklæring af variabler giver compiler eller tolk for at identificere trykfejl som udfører sort variabler eller enslydende variabler. Andre sprog afgiver erklæringen på tidspunktet for den første opgave (dette er tilfældet med de fleste script-sprog ) eller når de først vises i koden (som i Prolog).

Med hensyn til initialisering af variabler, det vil sige tildelingen af ​​en værdi på samme tid som definitionen, kræver nogle sprog at initialisere en variabel inden første læsning, andre giver en implicit værdi (specificeret eller ubestemt) og endelig andre lader variablen have en uspecificeret værdi. Sprog som Oz eller Prolog udfører strengt taget ikke initialisering. Når der erklæres variabler, er der ikke tilknyttet nogen værdi, siger vi, at variablen ikke er bundet . Værdien af ​​variablen bestemmes, når programmet udføres, dette kaldes forening .

I funktionel programmering eller logiske programmeringssprog kan variabler kun have en værdi under deres eksistens.

Refleksivitet

På de fleste sprog findes variabler kun som værktøjer til programmøren. Omdøbning af alle forekomster af en variabel ændrer således ikke programmets funktion.

Tværtimod, for at give yderligere udtryksevne tillader nogle sprog, at et variabelnavn kan betragtes som en værdi som enhver anden (for eksempel er disse symbolerne for Common Lisp og Smalltalk ). Dette er en meget nyttig teknik til effektiv implementering af symbolske beregningsalgoritmer .

Noter og referencer

  1. I C varierer det ikke over tid, hvis vi bruger const- nøgleordet

Se også