Variabilă (informatică)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

O variabilă , în informatică , este un container de date situat într-o porțiune de memorie (una sau mai multe locații de memorie) destinată să conțină valori, care pot fi modificate în timpul executării unui program . O variabilă este caracterizată printr-un nume (de obicei înțeles ca o succesiune de caractere și cifre).

O constantă este o dată nemodificabilă localizată într-o porțiune de memorie (una sau mai multe locații de memorie) destinată să conțină o valoare, care nu poate fi modificată în timpul executării unui program . O constantă poate fi caracterizată printr-un nume (de obicei înțeles ca o succesiune de caractere și cifre).

În limbile tastate , fiecare variabilă este caracterizată de un tip de date, care specifică modul în care ar trebui luate în considerare datele reprezentate și, eventual, restricționează valorile acceptabile. De exemplu, o variabilă destinată să conțină numărul progresiv al unei luni a unei date poate lua doar valorile întregi de la 1 la 12.

Setul de variabile existente la runtime este conținut în mediu .

Definiție formală

Variabila este un identificator V asociat cu un set prestabilit de valori posibile care definesc tipul variabilei. Setul de valori posibile definește gama de valori pe care V le poate asuma în timpul executării unui program. Prin definirea tipului și reprezentării variabilei, precum și a gamei de valori, sunt definite și operațiile posibile cu variabila în sine. În timpul executării unui program, fiecare variabilă are o valoare curentă.

Domenii de aplicare după conceptul de variabilă

În limbaje de programare de diferite niveluri, conceptul de variabilă are nuanțe diferite:

  • În asamblare există cel mai de bază tip de variabilă: registrul , un container de date elementare din interiorul procesorului conceput pentru a conține acele informații numerice pe care procesorul în sine este capabil să le manipuleze direct la viteza maximă de procesare. Singurele operații aplicabile pe registre, întotdeauna disponibile într-un număr foarte limitat, sunt cele stabilite de limbajul mașinii pus la dispoziție de procesor însuși, cum ar fi atribuirea directă sau indirectă, testele elementare, operațiile logice sau booleene. De obicei, ansamblorul pune la dispoziția programatorului câteva caracteristici de nivel superior, pentru a facilita scrierea programului. De exemplu, este posibil să se utilizeze variabile sau etichete: în acest caz, o variabilă identifică o zonă de memorie de o anumită dimensiune, care nu este legată strict de tipul de date pe care le găzduiește, care acceptă unele operații elementare, cum ar fi citirea, atribuirea , operații logice simple sau aritmetice. O celulă de memorie poate fi opțional identificată printr-o etichetă (numită și etichetă ), pentru a crea o asociere mnemonică simplă; rămâne însă posibilitatea de a accesa conținutul său direct, prin adresa proprie.
  • În limbile care mențin o legătură strânsă cu arhitectura hardware , cum ar fi C sau C ++ pentru tipurile de date elementare, variabilele sunt caracterizate de un tip , care limitează operațiunile care se pot face cu variabila declarată și specializează semantica operatorilor . De exemplu, expresia a+b poate fi evaluată diferit dacă a și b sunt numere întregi sau numere cu virgulă mobilă. Cu toate acestea, este posibil să se obțină adresa unei variabile (pentru a construi un pointer ) și apoi să se manipuleze manual utilizarea memoriei făcută de compilator .
  • În limbile care oferă un nivel mai ridicat de abstractizare, cum ar fi Java , variabila este tastată, dar numele variabilei este singura modalitate de a accesa datele stocate în ea și nu este posibil să știți adresa unde a fost stocată . O variabilă de tip complex este de fapt întotdeauna o referință la o zonă de memorie alocată dinamic gestionată de limbă.
  • În cele mai simple limbaje de scripturi interpretate , variabilele sunt, de regulă, doar identificatori simpli, fără tip și dimensiune definită. Spațiul de memorie este alocat dinamic în momentul atribuirii.

Utilizarea variabilelor

În limbile compilate , variabilele trebuie definite sau declarate într-un mod dactilografiat înainte de a fi folosite, deoarece compilatorul sau interpretul nu știe cum să trateze sau nu recunoaște obiecte necunoscute sau nespecificate anterior. Declarația permite atingerea a două obiective fundamentale: pe de o parte, cu declarația tastată se specifică tipul variabilei, astfel încât compilatorul să poată verifica eventualele erori semantice prezente în cadrul unui program corect din punct de vedere sintactic (de exemplu, este nu este permisă înmulțirea între ele a unei variabile șir și a unei variabile întregi). Pe de altă parte, este evaluată și definită cantitatea de memorie destinată, în timpul rulării, să conțină datele la care se referă variabila.

Operațiile de bază care pot fi efectuate pe o variabilă sunt citirea valorii pe care o conține și scrierea unei noi valori, sau atribuire . Prima atribuire a variabilei se numește inițializare . Multe limbi necesită sau preferă ca variabila odată declarată să fie inițializată la o valoare arbitrară.

Din punctul de vedere al semanticii limbajelor de programare, atunci când o variabilă este declarată printr-un identificator sau nume și inițializată printr-o anumită valoare, computerul rezervă un container sau o zonă de memorie pentru variabila menționată anterior sau creează o asociere de adrese de celule a memoriei -valor atâta timp cât variabila în sine este activă. În virtutea definiției unei variabile, asocierea menționată mai sus este dinamică, adică valoarea ei poate varia în fluxul de execuție al programului, determinând ca valoarea anterioară să fie suprascrisă cu cea curentă la punctul sau momentul t .

Pentru a citi conținutul unei variabile v , adică pentru a o utiliza în anumite scopuri ale programului, este suficient să folosiți notația acesteia într-o expresie , cum ar fi în 5+v sau în (3.14+v)*x .

În multe limbaje de scriptare , pentru a indica faptul că doriți să citiți valoarea unei variabile, trebuie să adăugați un prefix și / sau un sufix la numele variabilei, cum ar fi $HOME în scripturile shell pe unix sau %HOME% în fișierele batch pe DOS .

Pentru a atribui o valoare unei variabile, cesiuni operatorul trebuie să fie utilizat, de exemplu, în C , a = b + 5 cesionarilor rezultatul expresiei b+5 evaluate în actualul mediu la variabila a .

În mod formal, o expresie care poate fi situată în stânga unui operator de atribuire, adică ceva în care se poate scrie o valoare, se numește o valoare l (contracția valorii stângi ). O variabilă este exemplul tipic, dar nu singurul, al valorii l. O expresie care poate fi citită sau evaluată numai, dar căreia nu i se poate atribui o valoare, se numește valoare r .

Vizibilitatea unei variabile

Contextul în care o variabilă este declarată în cadrul unui program determină vizibilitatea acesteia (sau domeniul sau domeniul de aplicare ). Toate variabilele vizibile la runtime într-un anumit moment sunt conținute în mediu . Dacă mai multe variabile cu același nume și tip sunt declarate în contexte diferite, mediul oferit de limbă determină modul în care variabilele sunt vizibile în orice moment. În cele mai populare limbi, de exemplu, numele variabilei se referă la cea mai specifică declarație și există instrumente pentru a indica în mod explicit domeniul de aplicare la care se referă.

Vezi următorul exemplu:

 <începe blocul 1>
     var x: ... / * x este vizibil aici * /
     <începe blocul 1.1>
         var y: ... / * x și y sunt vizibile aici * /
     <bloc final 1.1>
     <începe blocul 1.2>
         var z: ... / * x și z sunt vizibile aici * /
         <începe blocul 1.2.1>
             var y: ... / * x, zey sunt vizibile aici * /
         <bloc final 1.2.1>
     <bloc final 1.2>
 <bloc final 1>
     
  • Termenul de variabile globale indică în general acele variabile declarate în afara unui subbloc de program și care sunt vizibile într-unul sau mai multe subblocuri, în funcție de structura programului în sine. Utilizarea variabilelor globale este puternic descurajată de bune practici de programare, deoarece riscă să genereze interacțiuni greu de controlat între diferite părți ale unui program. În exemplu, x este global pentru blocurile 1.1, 1.2 și 1.2.1.
    • În limbajele orientate obiect , variabilele sau atributele de clasă sunt vizibile numai în instanțele clasei în care au fost declarate. În special, o variabilă declarată ca statică este unică pentru clasă și este partajată de fiecare dintre instanțele sale. Cu alte cuvinte, în fiecare instanță a clasei, acest atribut indică aceeași zonă de memorie, prin urmare o modificare a acesteia făcută într-o instanță se reflectă în toate celelalte instanțe ale aceleiași clase.
  • Variabilele locale sunt cele definite într-un subbloc, de exemplu în cadrul unei funcții și, prin urmare, vizibile numai în interiorul subblocului în sine, în funcție de tipul de mediu pus la dispoziție de limbă. În exemplu, variabilele y sunt locale pentru fiecare dintre cele două blocuri și sunt distincte una de alta: prima este locală în 1.1 și a doua în 1.2.1. În cele din urmă, z este global pentru blocul 1.2.1 și local pentru blocul 1.2.
    • În limbajele orientate obiect , atributele (nestatice) ale unei clase sunt elemente individuale ale fiecărei instanțe distincte. În acest caz, în fiecare caz, acest atribut este prezent local obiectului în sine și distinct de cele prezente în alte instanțe din aceeași clasă.
    • Parametrii formali ai unei funcții sunt similari parametrilor locali din punct de vedere al vizibilității.
    • În multe limbi, este posibil să declarați o variabilă într-un bloc al unei structuri de control sau să utilizați o construcție de bloc doar pentru a delimita sfera unei variabile locale sau să declarați o variabilă în cadrul unei expresii . Aceste variabile sunt vizibile numai în blocul sau expresia în care sunt declarate, așa cum se arată în exemplu. Aceste practici facilitează menținerea unei variabile în viață numai pentru timpul strict necesar, pentru a permite economisirea memoriei și curățarea în textul programului.

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT