国防科技大学计算机系602教研室第八章符号表符号表的作用:一致性检查和作用域分析;辅助代码生成.国防科技大学计算机系602教研室8.1符号表的组织与作用符号表的每一项(入口)包含两大栏:名字栏,也称主栏,关键字栏信息栏,记录相应的不同属性,分为若干子栏.对符号表的操作:填入名称查找名字访问信息填写修改信息删除国防科技大学计算机系602教研室对符号表进行操作的时机:定义性出现使用性出现按名字的不同种属建立多张符号表,如常数表、变量名表、过程名表、…符号的组织方式:1.安排各项各栏的存储单元为固定长度2.用间接方式安排各栏存储单元国防科技大学计算机系602教研室符号表的存放次序:1.把每一项置于连续K存储单元中,构成一张K*N的表2.把整个符号表分成m个子表,如T1,T2,…Tm,每个子表含有N项.国防科技大学计算机系602教研室例:PASCAL程序段:PROCEDUREINCWAP(M,N:INTEGER);LABELSTART;VARK:INTEGER;BEGINSTART:K:=M+1;M:=N+4;N:=K;END.国防科技大学计算机系602教研室PROCEDUREINCWAP(M,N:INTEGER);LABELSTART;VARK:INTEGER;BEGINSTART:K:=M+1;M:=N+4;N:=K;END.表0.1符号名表SNTNAMEINFORMATIONM形式参数,整型,值参数N形式参数,整型,值参数K整型,变量国防科技大学计算机系602教研室表0.2常数表CT值(VALUE)(1)1(2)4PROCEDUREINCWAP(M,N:INTEGER);LABELSTART;VARK:INTEGER;BEGINSTART:K:=M+1;M:=N+4;N:=K;END.国防科技大学计算机系602教研室表0.3入口名表ENTNAMEINFORMATION(1)INCWAP二目子程序,入口四元式:1PROCEDUREINCWAP(M,N:INTEGER);LABELSTART;VARK:INTEGER;BEGINSTART:K:=M+1;M:=N+4;N:=K;END.国防科技大学计算机系602教研室表0.4标号表LTNAMEINFORMATION(1)START四元式:(4)PROCEDUREINCWAP(M,N:INTEGER);LABELSTART;VARK:INTEGER;BEGINSTART:K:=M+1;M:=N+4;N:=K;END.国防科技大学计算机系602教研室表0.1符号名表SNTNAMEINFORMATIONM形式参数,整型,值参数N形式参数,整型,值参数K整型,变量表0.2常数表CT值(VALUE)(1)1(2)4表0.3入口名表ENTNAMEINFORMATION(1)INCWAP二目子程序,入口四元式:1表0.4标号表LTNAMEINFORMATION(1)START四元式:(4)国防科技大学计算机系602教研室表0.5四元式表QTOPROPN1OPN2RESULT(1)link(2)parINCWAP1M(3)parINCWAP2N(4)+M1K(5)+N4M(6):=KN(7)returnPROCEDUREINCWAP(M,N:INTEGER);LABELSTART;VARK:INTEGER;BEGINSTART:K:=M+1;M:=N+4;N:=K;END.国防科...