Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.6.PODSTAWYJĘZYKÓWPROGRAMOWANIA
29
Mniejoczywistemożebyćto,żelokalizacjaoznaczonaprzez
x
możeulec
zmianiewczasiedziałaniaprogramu.Przykładowo,jakpokazaliśmywprzy-
kładzie1.3,jeśli
x
niejestzmiennąstatyczną(inaczejnklasową”),wówczas
każdyobiekttejklasymaswojąwłasnąlokalizacjędlawystąpieniazmiennej
x
.
Wtakimprzypadkuprzypisaniedo
x
możezmienićpewnąztychnwystąpienio-
wych”zmiennych,zależnieodobiektu,doktóregozastosowanabędziemetoda
zawierającatoprzypisanie.
środowisko
nazwy
lokalizacje
(zmienne)
stan
wartości
RYSUNEK
108:Dwufazowemapowanieodnazwdowartości
Powiązanienazwzlokalizacjamiwpamięci(magazynie)inastępniezich
wartościamimożnaopisaćjakodwaodwzorowania,któremogązmieniaćsię
wtrakciedziałaniaprogramu(patrzrysunek1.8):
1.
Środowisko(environment)toodwzorowanienazwnalokalizacjewpamięci.
Ponieważzmienneodnosząsiędolokalizacji(n
l
-wartości”wterminologiiję-
zykaC),możemyalternatywniezdefiniowaćśrodowiskojakoodwzorowanie
nazwnazmienne.
2.
Stan(state)toodwzorowanielokalizacjiwpamięcinaichwartości.Inaczej
mówiąc,stanodwzorowuje
l
-wartościnaodpowiadająceim
r
-wartości
wterminologiiC.
Środowiskazmieniająsięzgodniezregułamizasięgujęzyka.
Przykład1.4:
RozważmyfragmentprogramuCpokazanynarysunku1.9.
Zmiennacałkowita
ź
jestzadeklarowanajakozmiennaglobalna,jakrównież
jakozmiennalokalnafunkcji
f
.Gdywykonywanajestfunkcja
f
,środowisko
dopasowujeto,doczegoodwołujesięnazwa
ź
,takbywskazywałalokalizację
zarezerwowanądla
ź
jakolokalnejdla
f
,idowolneużycie
ź
,jakpokazanejawnie
przypisaniei=3,odwołujesiędotejlokalizacji.Typowolokalnazmienna
ź
otrzymujemiejscewstosieczasuwykonania.
Ilekroćfunkcja
g
(innaniż
f
)jestwykonywana,użyciezmiennej
ź
niemoże
odwołaćsiędotego
ź
,którejestlokalnedla
f
.Użycienazwy
ź
w
g
musibyć
wzasięgujakiejśinnejdeklaracji
ź
.Przykładpokazujewyrażeniex=i+1,
któreznajdujesięwewnątrzjakiejśprocedury,któradefinicjaniejestpokazana.
Zmienna
ź
wwyrażeniu
ź
+1domyślnieodnosisiędoglobalnejzmiennej
ź
.Jak
wwiększościjęzyków,deklaracjezmiennychwCmusząpoprzedzaćichużycie,
zatemfunkcjaumieszczonaprzedglobalnądeklaracją
ź
niemożesięodwoływać
dotejzmiennej.
Odwzorowaniaśrodowiskaistanupokazanenarysunku1.8dynamiczne,
aleistniejekilkawyjątków: