Pok-13-wyk-Slajd29

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Środowisko czasu wykonania – zmienne nielokalne(1)

Środowisko czasu wykonania – zmienne nielokalne(1)


Dla przedstawionego wcześniej przykładowego programu w języku Pascal rozważmy następujący ciąg wywołań podprogramów A->B->C->D->B i przyjrzyjmy się stosowi rekordów aktywacji poszczególnych instancji podprogramów.

W momencie, gdy dochodzi do wykonania przypisania „p:=q+s”, to oczywiste jest, że chodzi o zmienne p i s, które są lokalnymi zmiennymi w podprogramie B, ale co ze zmienną q ?

Zgodnie z omówionymi wcześniej regułami widzialności statycznej wykorzystywanej w Pascalu chodzi o zmienną zadeklarowaną w podprogramie A.

Niektóre języki korzystają jednak z tzw. reguły widzialności dynamicznej (np. APN, Snobol i Lisp). W tym przypadku wiązanie nazwy z deklaracją odbywa się dynamicznie, w trakcie wykonywania programu. W przypadku wiązania dynamicznego poszukujemy w stosie rekordów aktywacji ostatniego wystąpienia zmiennej q – w przedstawionym przykładzie jest to zmienna lokalna procedury C.

Niezależnie od tego, która reguła widzialności jest stosowana w danym języku środowisko czasu wykonania musi zapewnić odpowiednie mechanizmy wyszukania właściwego wystąpienia zmiennej w stosie rekordów aktywacji.


<< Poprzedni slajd | Spis treści | Następny slajd >>