1盛威网:专业的计算机学习网站指导教师:杨建国二零零七年十一月2盛威网:专业的计算机学习网站重点掌握:符号表的主要属性、作用和组织方法重点掌握:符号表的主要属性、作用和组织方法学习目标第9章符号表3盛威网:专业的计算机学习网站第一节符号表的作用和地位第二节符号的主要属性及作用第三节符号表的组织教学内容第四节符号表的管理4盛威网:专业的计算机学习网站知识结构5盛威网:专业的计算机学习网站§9
1符号表的作用和地位一一
符号表的定符号表的定义义二二
符号表的作符号表的作用用符号表是连接声明与引用的桥梁
一个名字在声明时,相关信息被填写进符号表,而在引用时,根据符号表中的信息生成相应的可执行语句
它的作用主要有:辅助语义的正确性检查辅助代码生成在编译过程中,编译程序用来记录源程序中各种名字的特性信息,所以也称为名字特性表
6盛威网:专业的计算机学习网站三三
符号表与编译各阶段的关符号表与编译各阶段的关系系开始,扫描器识别到一个名字后,查阅符号表,填表在语法分析和语义分析中陆续填入有关信息在语义分析时用到表中信息进行语义检查,生成中间代码在目标代码生成阶段,依据符号表对符号名分配地址7盛威网:专业的计算机学习网站例1
intx,a,b;
L:x:=a+b;
建表,分配存贮符号表数据区x简单变量整型a简单变量整型b简单变量整型L标号1
语法分析和语义分析•说明语句、赋值语句的语法规则•上下文有关分析:是否声明•类型一致性检查2
生成目标代码LOADa的地址ADDb的地址STOx的地址8盛威网:专业的计算机学习网站四四
符号表的组符号表的组成成符号表由若干个登记项(表项)组成,每个表项分两部分,其中前者是标识符的名字(或在符号表中的地址),而后者是属性部分(不同种类的标识符属性不同)
符号表=名字栏+信息栏符号表的基本结构:名字信息“名字”域: