表格模板-符号表的组织与管理 精品.ppt
《表格模板-符号表的组织与管理 精品.ppt》由会员分享,可在线阅读,更多相关《表格模板-符号表的组织与管理 精品.ppt(64页珍藏版)》请在第一文库网上搜索。
1、1第第六六章章 符号表符号表6.1 符号表的作用符号表的作用6.2 符号表的组织符号表的组织6.3 符号表的建立和查找符号表的建立和查找2【学习目标】【学习目标】符号表作为编译系统的重要设施,贯穿于文法分析、检查和语符号表作为编译系统的重要设施,贯穿于文法分析、检查和语义处理的编译全过程。义处理的编译全过程。本章目的使学生深刻全面地了解符号表的地位和作用;本章目的使学生深刻全面地了解符号表的地位和作用;掌握符号表的组织和管理方法;以及编译过程中符号表的操作掌握符号表的组织和管理方法;以及编译过程中符号表的操作活动过程。活动过程。 3【学习指南】【学习指南】在编译程序中符号表用来存放源程序中出现
2、的有关名字的属在编译程序中符号表用来存放源程序中出现的有关名字的属性信息,这些信息集中反映了名字的语义特征属性。性信息,这些信息集中反映了名字的语义特征属性。符号表在编译全过程的地位和作用非常重要,是进行上下文符号表在编译全过程的地位和作用非常重要,是进行上下文合法性检查和语义处理及代码生成的依据。合法性检查和语义处理及代码生成的依据。符号表总体结构的设计和实现是与源语言的复杂性(包括词符号表总体结构的设计和实现是与源语言的复杂性(包括词法结构、语法结构的复杂性)有关,还与对于编译系统在时法结构、语法结构的复杂性)有关,还与对于编译系统在时间效率和空间效率方面的要求有关。间效率和空间效率方面的
3、要求有关。4【难重点】【难重点】u符号表总体组织的选择原则。符号表总体组织的选择原则。u变量的类型和存储类别等属性的重要性。变量的类型和存储类别等属性的重要性。u采用单表结构时采用单表结构时,如何解决分程序构造中同名名字声明的如何解决分程序构造中同名名字声明的可视性规则。可视性规则。采用分表结构适合哪种语言的编译系统。采用分表结构适合哪种语言的编译系统。56.1 符号表的作用符号表的作用在编译程序中符号表用来存放语言程序中出现的有关标识符在编译程序中符号表用来存放语言程序中出现的有关标识符的属性信息,这些信息集中反映了标识符的语义特征属性。的属性信息,这些信息集中反映了标识符的语义特征属性。1
4、.在词法分析及语法在分析过程中不断积累和更新表中的信在词法分析及语法在分析过程中不断积累和更新表中的信息;息;2.在词法分析到代码生成的各阶段,按各自的需要从表中获在词法分析到代码生成的各阶段,按各自的需要从表中获取不同的属性信息。取不同的属性信息。3.不论编译策略是否分趟,符号表的作用和地位是完全一致不论编译策略是否分趟,符号表的作用和地位是完全一致的。的。6根据编译程序工作阶段的不同划分,名字表中的各种信息将根据编译程序工作阶段的不同划分,名字表中的各种信息将在编译程序工作过程中的适当时候填入。在编译程序工作过程中的适当时候填入。u对于对于就建立符号表的编译程序,当扫描源程就建立符号表的编
5、译程序,当扫描源程序识别出一个单词序识别出一个单词(名字名字)时,就以此名字查找符号表;时,就以此名字查找符号表;若表中无此名的登记项,就将此名字填入符号表中;若表中无此名的登记项,就将此名字填入符号表中;至于与此名相关的其它信息,可视工作方便分别在语法分析、至于与此名相关的其它信息,可视工作方便分别在语法分析、语义分析及中间代码生成等阶段陆续填入。语义分析及中间代码生成等阶段陆续填入。,符号表中的信息可以用于语义检查;,符号表中的信息可以用于语义检查;,编译程序则利用符号表提供的信息选出恰当,编译程序则利用符号表提供的信息选出恰当的代码进行优化;的代码进行优化;,编译程序将依据符号表中的符号
6、名来分,编译程序将依据符号表中的符号名来分配目标地址。配目标地址。7几乎在编译程序工作的全过程中,都需要对符号表进行频繁几乎在编译程序工作的全过程中,都需要对符号表进行频繁地访问地访问(查表或填表查表或填表),其耗费的时间在整个编译过程中占有,其耗费的时间在整个编译过程中占有很大的比例。很大的比例。因此,因此,8符号表的作用符号表的作用1.收集符号属性收集符号属性2.上下文语义的合法性检查的依据上下文语义的合法性检查的依据3.作为目标代码生成阶段地址分配的依据作为目标代码生成阶段地址分配的依据9作用一:收集符号属性作用一:收集符号属性 编译程序扫描编译程序扫描收集有关标识符的属性,并在符号表收
7、集有关标识符的属性,并在符号表中建立符号的相应属性信息。中建立符号的相应属性信息。例如,编译程序分析到下述两个说明语句例如,编译程序分析到下述两个说明语句则在符号表中收集到关于符号则在符号表中收集到关于符号 x 的属性是一个整型变量,的属性是一个整型变量,y 是一个具有是一个具有 10 个元素的整型数组,个元素的整型数组,关于符号关于符号 w 的属性是浮点型简单变量。的属性是浮点型简单变量。 10作用二:上下文语义的合法性检查的依据作用二:上下文语义的合法性检查的依据 同一个标识符可能在程序的不同地方出现,而有关该符号的同一个标识符可能在程序的不同地方出现,而有关该符号的属性是在这些不同情况下
8、收集的。属性是在这些不同情况下收集的。特别是在特别是在多趟编译多趟编译及程序分段编译(在及程序分段编译(在 PASCAL 及及 C 中中以文件为单位)的情况下,更需检查标识符属性在上下文中以文件为单位)的情况下,更需检查标识符属性在上下文中的一致性和合法性。的一致性和合法性。通过符号表中属性记录可进行相应上下文的语义检查。通过符号表中属性记录可进行相应上下文的语义检查。11例如,在一个例如,在一个 C 语言程序中出现语言程序中出现编译过程首先在符号表中记录了标识符编译过程首先在符号表中记录了标识符 A 的属性是的属性是23个整型个整型元素的数组;元素的数组;而后在分析第二、第三这两个定义说明时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 表格模板-符号表的组织与管理 精品 表格 模板 符号 组织 管理