Th Produr Absrion Pr II: Symbol Tbls nd Aivion Rords
Th Produr s Nm Sp Why inrodu lxil soping? Provids ompil-im mhnism for binding vribls Ls h progrmmr inrodu lol nms How n h ompilr kp rk of ll hos nms? produr p { in, b,. { in v, b, x, w. } }
Th Produr s Nm Sp 5.7 in EC Th Problm A poin X in h xuion of h progrm, whih dlrion of b is urrn? A run-im, whr is b found? How dos ompilr dl b going in & ou of sops? Th Answr Th ompilr mus modl h nm sp Lxilly sopd symbol bls produr p { in, b,. { in v, b, x, w. } }
5.7 in EC Lxilly-sopd Symbol Tbls Th problm Th ompilr nds disin rord for h dlrion Nsd lxil sops llow dupli dlrions Th inrf insr(nm, lvl ) rs rord for nm lvl lookup(nm, lvl ) rurns poinr or indx dl(lvl ) rmovs ll nms dlrd lvl
High-lvl id Cr nw bl for h sop Chin hm oghr for lookup B0: produr b { in x, y, z B1: { in v, b, x, w B2: { B3: { } } } } in, b,. in x,, v B0 x y z B1 v b x w B2 b
Th Produr s n Exrnl Inrf OS nds wy o sr h progrm s xuion All funion od hr Aivion rords for xuing funions foo nd hllo.x hr C o d S G l & o b i l H p S k 0 high
Th Produr s n Exrnl Inrf min funion Lol vribls go in funion s ivion rord C o d S G l & o b i l H p S k 0 high on sk of ARs fopn min AR of fopn AR of min
Whr Do All Ths Vribls Go? Lol Kp hm in h produr ivion rord or in rgisr Auomi Þ lifim mhs produr s lifim C o d S G l & o b i l H p S k 0 high on sk of ARs fopn min AR of fopn AR of min
Whr Do All Ths Vribls Go? Lol Kp hm in h produr ivion rord or in rgisr Auomi Þ lifim mhs produr s lifim C o d S G l & o b i l H p S k 0 high on sk of ARs fopn min AR of fopn AR of min
Whr Do All Ths Vribls Go? Si (.g., in C lngug) Fil sop Þ sorg r ffixd wih fil nm Lifim is nir xuion C o d S G l & o b i l H p S k 0 high on sk of ARs fopn min AR of fopn AR of min
Whr Do All Ths Vribls Go? Globl On or mor nmd globl d rs On pr vribl, or pr fil, or pr progrm, Lifim is nir xuion C o d S G l & o b i l H p S k 0 high on sk of ARs fopn min AR of fopn AR of min
Pling Run-im D Sruurs Clssi Orgnizion C o d S G l & o b i l H p 0 high Singl Logil Addrss Sp S k Cod, si, & globl d hv known siz Hp & sk boh grow & shrink ovr im This is virul ddrss sp
How Dos This Rlly Work? Th Big Piur C o d S G l & o b i l H p S k C o d S G l & o b i l H p S k C o d S G l & o b i l H p S k...... Hrdwr s viw Compilr s viw OS s viw Physil ddrss sp_ virul ddrss sps 0 high C o d S G l & o b i l H p S k
Whr Do Lol Vribls Liv? A Simplisi modl Allo d r for h disin sop Nd d r pr invoion (or ivion) of sop W ll his h sop s ivion rord Th ompilr n sor onrol info hr!
Aivion Rords Top of Sk
B0: { Lol-D Ar in, b in v(),, x in z, y(8). } Arrys If siz is fixd ompil im, sor in fixd-lngh d r If siz is vribl, sor dsripor in fixd lngh r, wih poinr o vribl lngh r Vribl-lngh d r is ssignd h nd of h fixd lngh r for blok in whih i is llod b v x z y(8) v() Inluds vribl lngh d for ll bloks in h produr Vribl-lngh d
Aivion Rord Bsis TOS prmrs rgisr sv r rurn vlu rurn ddrss lol vribls Sp for prmrs o h urrn rouin Svd rgisr onns If funion, sp for rurn vlu Addrss o rsum llr Sp for lol vlus & vribls (inluding spills) On AR for h invoion of produr
Communiing Bwn Produrs Mos lngugs provid prmr pssing mhnism Þ Exprssion usd ll si boms vribl in ll Two ommon binding mhnisms Cll-by-rfrn psss poinr o ul prmr Rquirs slo in h AR (for ddrss of prmr) Cll-by-vlu psss opy of is vlu im of ll Rquirs slo in h AR (for vlu) Eh nm gs uniqu loion (my hv sm vlu) Arrys r mosly pssd by rfrn, no vlu
Produr Linkgs Sndrd produr linkg produr p prolog pr-ll pos-rurn pilog llr produr q prolog pilog ll Produr hs sndrd prolog sndrd pilog Eh ll involvs pr-ll squn pos-rurn squn Ths r omplly prdibl from h ll si Þ dpnd on h numbr & yp of h ul prmrs
Pr-ll Squn Ss up ll s bsi AR Hlps prsrv is own nvironmn Th Dils Allo sp for h ll s AR Evlus h prmr & sors vlu or ddrss Svs rurn ddrss, llr s ARP ino ll s AR Sv ny llr-sv rgisrs Sv ino sp in llr s AR Jump o ddrss of ll s prolog od
Produr Linkgs Sndrd produr linkg produr p prolog pr-ll pos-rurn pilog llr produr q prolog pilog ll Produr hs sndrd prolog sndrd pilog Eh ll involvs pr-ll squn pos-rurn squn Ths r omplly prdibl from h ll si Þ dpnd on h numbr & yp of h ul prmrs
Pos-rurn Squn Rsors llr s nvironmn Th Dils Copy rurn vlu from ll s AR, if nssry Fr h ll s AR Rsor ny llr-sv rgisrs Rsor ny ll-by-rfrn prmrs o rgisrs, if ndd Also opy bk ll-by-vlu/rsul prmrs Coninu xuion fr h ll
Produr Linkgs Sndrd produr linkg produr p prolog pr-ll pos-rurn pilog llr produr q prolog pilog ll Produr hs sndrd prolog sndrd pilog Eh ll involvs pr-ll squn pos-rurn squn Ths r omplly prdibl from h ll si Þ dpnd on h numbr & yp of h ul prmrs
Prolog Cod Finish sing up h ll s nvironmn Prsrv prs of h llr s nvironmn h will b disurbd Th Dils Prsrv ny ll-sv rgisrs Allo sp for lol d Esis snrio is o xnd h AR Find ny si d rs rfrnd in h ll Hndl ny lol vribl iniilizions
Produr Linkgs Sndrd produr linkg produr p prolog pr-ll pos-rurn pilog llr produr q prolog pilog ll Produr hs sndrd prolog sndrd pilog Eh ll involvs pr-ll squn pos-rurn squn Ths r omplly prdibl from h ll si Þ dpnd on h numbr & yp of h ul prmrs
Epilog Cod Wind up h businss of h ll Sr rsoring h llr s nvironmn Th Dils Sor rurn vlu? No, his hppns on h rurn smn Rsor ll-sv rgisrs Fr sp for lol d, if nssry Lod rurn ddrss from AR Rsor llr s ARP Jump o h rurn ddrss