SLIDE 1
Symbol Table 0 ref := EnterId(Stacktop) ref Id size Id age - - PowerPoint PPT Presentation
Symbol Table 0 ref := EnterId(Stacktop) ref Id size Id age - - PowerPoint PPT Presentation
Symbol Table 0 ref := EnterId(Stacktop) ref Id size Id age Id Max Id next 1 Symbol Table 0 ref := EnterId(Stacktop) ref Id size Id age Id Max Id next HASH(size) 2 Symbol Table size 4 ref := EnterId(Stacktop) (0,4),
SLIDE 2
SLIDE 3
3
Symbol Table
Id size Id age Id Max Id next
ref := EnterId(Stacktop) ref
(0,4), 1, ... size 4 HASH(size)
SLIDE 4
4
Symbol Table
Id size Id age Id Max Id next
ref := EnterId(Stacktop) ref^.namekind := variable ref^.address := ... ... ref
(0,4), 1, ... variable ... size 4 HASH(size)
SLIDE 5
5
Symbol Table
Id size Id age Id Max Id next
ref := EnterId(Stacktop-1) ref
(0,4), 1, ... variable ... size 4 HASH(age)
SLIDE 6
6
Symbol Table
Id size Id age Id Max Id next
ref := EnterId(Stacktop-1) ref
(0,4), 1, ... variable ... sizeage (4,3), 1, ... 7 HASH(age)
SLIDE 7
7
Symbol Table
Id size Id age Id Max Id next
ref := EnterId(Stacktop-1) ref^.namekind := variable ref^.address := ... ... ref
(0,4), 1, ... variable ... sizeage (4,3), 1, ... variable ... 7 HASH(age)
SLIDE 8
8
Symbol Table
Id size Id age Id Max Id next
ref := EnterId(Stacktop-2) ref
(0,4), 1, ... variable ... sizeage (4,3), 1, ... variable ... 7 HASH(Max)
SLIDE 9
9
Symbol Table
Id size Id age Id Max Id next
ref := EnterId(Stacktop-2) ref^.namekind := constant ref^.value := ... ref
sizeageMax (4,3), 1, ... variable ... (0,4), 1, ... variable ... (7,3), 1, ... constant ... 10 HASH(Max)
SLIDE 10
10
EnterId Notes: Later entries are ahead of earlier entries. The symbol table is “Stack-like” EnterId is like push. Later removals will be pops. EnterId fills in some fields. The caller fills in rest. ALL other fixed fields & All fields for this variant. The caller **ALWAYS** fills in the tag field, namekind. The name itself is stored indirectly in a “spelling table.”
SLIDE 11
11
Symbol Table
Id size Id age Id Max Id next
ref := LookupID(stacktop) ref
sizeageMax (4,3), 1, ... variable ... (0,4), 1, ... variable ... (7,3), 1, ... constant ... 10
SLIDE 12
12
Symbol Table
Id size Id age Id Max Id next
ref := LookupID(stacktop) ref
sizeageMax (4,3), 1, ... variable ... (0,4), 1, ... variable ... (7,3), 1, ... constant ... 10 HASH(size) search miss
SLIDE 13
13
Symbol Table
Id size Id age Id Max Id next
ref := LookupID(stacktop) ref
sizeageMax (4,3), 1, ... variable ... (0,4), 1, ... variable ... (7,3), 1, ... constant ... 10 search hit HASH(size)
SLIDE 14
14
Symbol Table
Id size Id age Id Max Id next
ref := LookupID(stacktop) ref
sizeageMax (4,3), 1, ... variable ... (0,4), 1, ... variable ... (7,3), 1, ... constant ... 10 HASH(size)
SLIDE 15
15
Symbol Table
Id size Id age Id Max Id next
ref := LookupID(stacktop-1) ref
sizeageMax (4,3), 1, ... variable ... (0,4), 1, ... variable ... (7,3), 1, ... constant ... 10 HASH(next) search miss
SLIDE 16
16
Symbol Table
Id size Id age Id Max Id next
ref := LookupID(stacktop-1) ref
sizeageMax (4,3), 1, ... variable ... (0,4), 1, ... variable ... (7,3), 1, ... constant ... 10 HASH(next) search
NIL
SLIDE 17