«« ( Date ) »» // «« ( Thread ) »» // ri4pp - 2006

Re: aktivacioni zapisi

by Jovan Popovic
četvrtak, 06. jul 2006 - 09:48.

>
>
> Ivana Jeremic <ivana.jeremic@gmail.com> wrote: Imam par pitanja, pa bih
> zamolila da mi odgovorite ili to da ucini asistent:
>
> 1. Kada imamo dinamicko okruzenje sa plitkim pristupom da li se menja
> njihova vrednost u statickoj mem (ako nesto radimo sa njima u f-ji gde
> je to nelokalna prom)? (nadam se ste razumeli pitanje :)
> Sa predavanja: Kod plitkog pristupa ideja je da za svaku promenljivu
> odvojimo polje u aktivacionom zapisu u kome je ona deklarisana (kao i u
> prethodnim sluèajevima). Dodatno odvajamo po jednu memorijsku lokaciju u
> statièkoj memoriji koja èuva vrednost promenljive, za svaku promenljivu.
> Kod plitkog pristupa, svaki pristup odgovarajuæoj promenljivoj
> iskljuèivo ide u tu statièku memoriju.
>
> Tvoje pitanje bi verovatno trebalo da glasi: da li se originalna
> vrednost nelokalne promenljive menja, kada joj se pristupa iz neke od
> ugnjezdenih procedura (a da ime te nelokalne promenjive nije
> preklopljeno nekom lokalnom promenljivom).
> Odgovor: Nisam 100% siguran, al mislim da se vrednost originalne
> promenljive menja kada joj se dodeljuje vrednost u nekoj od ugnjezdenih
> procedura.
>

Kod plitkog pristupa se u statickoj memoriji nalaze lokacije u kojima se
cuvaju trenutne vrednosti lokalnih promenljivih funkcija.
Kada se funkcija pozove sacuvaju se stare vrednosti lokalnih promenljivih
iz staticke memorije a trenutne lokacije u statickoj memoriji se koriste
za lokalne promenljive aktivne procedure. U aktivacionom zapisu se samo
nalaze stare vrednosti tih promenljivih (slicno kao u displejima). Kada se
koriste/menjaju vrednosti promenljivih u funkciji njihove vrednosti se
citaju/upisuju u te lokacije. Kada se zavrsi procedura trenutne vrednosti
lokalnih promenljivih procedure u statickoj memoriji nisu potrebne tako da
se umesto njih upisuju stare vrednosti koje su sacuvane u aktivacionom
zapisu.


>
> 2. Kada radimo u din. 1okruzenju nemamo pristupne veze?
> Kod dinamickog okruzenja nemas pristupne veze.
> Kod dubokog pristupa, nelokalnim promenljivama pristupas preko lanca
> kontrolnih veza, dok kod plitkog pristupa nelokalnim promenljivama
> pristupas preko staticke memorije.
>

Pristupne veze vam trebaju samo ako pristupate promenljivama koje su
definisane u proceduri koja okruzuje pozvanu proceduru tj. u statickom
okruzenju. U slucaju dinamickog okruzenja gde se nelokalna imena traze u
procedurama koje su pozvale trenutnu ili okruzenja kao za C-jezik gde se
traze u statickoj memoriji pristupne veze vam nisu potrebne.

> 3. Da li u polje pristupnih veza, kod rada sa displejima, upisujemo
> prethodnu vrednost displeja i da li nam trebaju kontrolne veze?
> Ne razumem bas pitanje, ...upisujemo prethodnu vrednost displeja...
> kada? U kojoj situaciji?
> Kod rada sa displejima uopste nemas pristupne veze. Displeji ti
> zamenjuju pristupne veze.
> Kod displeja ti trebaju kontrolne veze, odnosno treba ti registar BP,
> zbog pristupa lokalnim promenljivama.

Kontrolne veze su potrebne da bi se po zavrsetku funkcije aktivacioni
zapis ispod trenutnog proglasio za aktivni. To se radi tako sto vrednost
kontrolne
veze trenutnog aktivacionog zapisa (sto je pokayivac na zapis ispod
trenutnoig) upise u registar BP.
U statickom okruzenju kada pozovete proceduru procitate vrednost
odgovarajuceg displeja u zavisnosti od nivoa na kome je definisana
procedura, zapamtite tu vrednost displeja u aktivacionom zapisu i umesto
te vrednosti upisete adresu trenutnog aktivacionog zapisa.
Kada se zavrsi procedure trenutna vrednost displeja koji pokazuje na
trenutni aktivacioni zapis vam vise ne treba tako da umesto nje stavljate
vrednost koju ste zapamtili prilikom poziva procedure.
Inicijalno svi displeji su prazni oni se pune prilikom poziva funkcija i
prazne kada se zavrse funkcije.
Na kraju rada programa displeji su prazni. Pogledajte zadatak sa vezbi u
njemu je pokazano kako se menjaju vrednosti displeja za prvih par koraka
ali tabela nije zavrsena do kraja. Kada se zavrsi program vrednosti
displeja moraju biti prazni kao i na pocetku programa.

> Unapred hvala!
> Ivana
>
>
> -----------------------------------------------------------------
> unsubscribe:
> minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
> -----------------------------------------------------------------
>
>
>
> ---------------------------------
> Do you Yahoo!?
> Next-gen email? Have it all with the all-new Yahoo! Mail Beta.