Sunteți pe pagina 1din 8

Domenii de viziblilitate.

Corpul unui program sau subprogram se


numete bloc. Deoarece subprogramele
snt incluse n programul principal i pot
conine la rndul lor alte subprograme,
rezult c blocurile pot fi imbricate (incluse unul n altul). Aceast imbricare de
blocuri este denumit structura de bloc a
programului PASCAL.

Structura de bloc

Prin domeniul de vizibilitate al unei variabile se


ntelege zona din program n care este "vazuta"
declaratia acesteia; adica zona de program n care
este cunoscuta valoarea sa.
Daca o variabila a fost declarata ntr-un
subprogram atunci valoarea sa este cunoscuta
numai n interiorul subprogramului respectiv. O
astfel de variabila se numestelocala.
Daca o variabila a fost declarata la nceputul
programului (n zona de declaratii a acestuia)
atunci aceasta este "vazuta" n tot programul si se
numesteglobala.

Semnificatie acestora se vede in urmatorul


desen:
Astfel :
variabilele declarate in
PP vor fi vizibile in S1,
S2, S3, S4, S5.
variabilele declarate in S1
vor fi vizibile in S1 si in S2,
iar in PP, S3, S4, S5 nu;
variabilele declarate in S3
vor fi vizibile in S4 si S5 iar
in PP si S1, si S2 nu.
Variabilele declarate in S4
vor fi vizibile doar acolo si
nu in S5, S3, S1, S2 si PP

PP
S1
S2
S3
S4
S5

Variabilel declarate in S3 sunt variabile


locale pentru pentru S3 dar sunt variabile
globale pentru S4 si S5. Variabilele
declarate in PP sunt globale deoarece sunt
vizibile de toate subprogramele. Daca exista
o variabila declarata si in S3 si in S4 (ex:
var a:integer) atunci in S3 se va folosi
variabila definita acolo iar in S4 variabila a
declarata in S4 cea din S3 pierzandu-si
semnificatia.

Variabilele globale se caracterizeaza


astfel:
-declaratia definitie a lor este in afara
oricarei functii;
-li se aloca spatiu intr-un segment de
date, inainte de executia programului;
-au durata de viata statica;
-sunt initiate implicit; pot fi initializate
numai cu valori constante;
-vizibilitatea lor poate fi extinsa la nivelul
intregului program.

Variabilele locale se clasifica astfel:


variabile locale automatice;
variabile locale statice.

Variabile locale automatice se caracterizeaza astfel:


declaratia definitie a lor se face in interiorul unui bloc, si
vicibilitatea este la nivelul acestuia;
li se aloca spatiu pe stiva sau in registrele microprocesorului
atunci cand declaratia definitie a lor este precedata de
specificatorul register, cand se intalneste declaratia definitie;
sunt dezalocate cand se iese din blocul respective;
pot fi initializate cu valori constante sau cu valori variabile;
vizibilitatea lor nu poate fi extinsa.