- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 符号表
本章要点
1. 符号表的组织与作用;
2. 整理与查找;
3. 名字的作用范围;
4. 符号表的内容。
本章目标
理解和掌握符号表的组织,整理与查找,名字的作用范围,符号表的内容等。
本章重点
1. 符号表的组织;
2. 名字的作用域;
本章难点
一、单项选择题:
1. 教材介绍了三种符号表的构造和处理方法,其中中常把符号表组织成二叉树形式。
a. 线性组织b.排序组织和法c. 杂凑(散列)组织非线性组织
2. ____
a. 任何结点p右枝的所有结点值均应大于结点p的值;而左枝的任何结点值均应小于结点p的值;
a. 任何结点p右枝的所有结点值均应等结点p的值;而左枝的任何结点值均应不等于结点p的值;
a. 任何结点p右枝的所有结点值均应大于结点p的值;而左枝的任何结点值均应小于结点p的值;
a. 任何结点p右枝的所有结点值均应小于结点p的值;而左枝的任何结点值均应大于结点p的值;
一.答案:1. b;2. b;3. c;4. a;5. d;6. c;7. a;8. d
二、填空题:
1. 通常实现最近嵌套作用域规则的办法是,对每个过程指定一个,以便跟踪过程里的局部名字。
2. 在语义分析阶段,符号表所登记的内容将用于。
、判断题:
( )
( )
6. 如果各种名字所需的信息空间长度长短不一,可把一些共同属性值直接登记在符号表的信息栏,而把哪些特殊属性登记在别的地方,并在信息栏中附设一个指示器,指向存放特殊属性的地方。( )
7. 符号表可以采用二叉树表来构造和处理,因为这种方法查找效率要高一些。( )
8. 符号表中信息栏的具体组织和安排与所翻译的具体语言与目标机器无关。( )
三.答案:1. ×;2. ×;3.√;4.√;5. ×;6. √;7. √;8. ×;
四、名词解释:
1. ;名字,过程编号。在查找每个名字时,先查对过程编号,确定所属的表区段落,然后,再从此段落中查对标识符。
3. 对于具有分程序结构的语言程序,不同层次分程序中定义的标识符具有不同的作用域和可视规则。每当编译程序扫描到一个分程序时,为该分程序建立一张独立的符号表,在该分程序中定义的标识符,都被登录在该符号表中;而当编译程序扫描到一个分程序结束时,编译程序释放为该分程序所建立的符号表。 这种符号表的分表结构与源程序的分程序层次结构是完全一致的,这种层次结构是编译过程中动态建立和消亡的。
4. 为提高线性表的查找效率,给每项附设一个指示器,这些指示器把所有的项按“最近最新”访问原则连接成一条链,使得在任何时候,这条链的第一个元素所指的项是那个最新最近被查询过的项,第二个元素所指的项是那个次新次近被查询过的项,如此等等。每次查表的时候都按这条链所指的顺序,一旦查到之后就即时改造这条链,使得链头指向刚才查到的那个项。每当填入新项时,总让链头指向这个最新项。
六、简答题:
1.
4. 符号表的表项通常包括那些部分?各描述什么?
5. 编译器中符号表有什么作用?P221
六.答案:1. 办法是,对每个过程指定一个惟一的编号,即过程的顺序号,以便跟踪过程里的局部名字。为了对每个过程进行编号,可以按识别过程开头和结尾的语义规则,用语法制导翻译的方法实现。一个过程的编号(层次)作为本过程中说明的全部局部量的组成部分,即编号被看成是名字的一个组成部分。于是,在符号表中表示局部名字用一个二元组:名字,过程编号。这样,把整个符号表按不同的过程逻辑地划分为相应的不同段落。在查找每个名字时,先查对过程编号,确定所属的表区域段落,然后再从此段落中查对标识符。也就是说,对一个名字查找符号表是:只有当表项中的名字按其字符逐个匹配,并且该记录相关的编号和当前所处理的过程的编号匹配时,才能确定查找成功。
2. 在符号表中设置一个“函数—形参”的指针域。对函数符号来说,在该属性域中存放一个指针,该指针指向该函数第一个形参的符号所在符号表中位置;而对形式参数符号在该属性域中存放指向它的下一个形式参数符号在符号表中位置的指针。若一个函数无形参,则该参数符号项中“函数—形参”指针域为空,若某个形式参数是它所属函数的最后一个形式参数,则该形参符号项中“函数—形参”指针域亦为空。
3. C语言的结构变量中结构标识与成员之间也有上述函数与形参之间的相似关系,也可以在符号表中设立一个“结构—成员”指针链。对于结构标识符号,在该属性域中存放指向它的第一个成员的符号在符号表中位置的指针;对于成员符号,在该属性域中存放指向它的下一个成员的符号在符号表中的指针。若某个成员是一个结构变量的最后一个成员,则该成员符号项中“结构—成员”属性值为空。
七、应用题:
编译原理作业集-第八章 符号表
- 5 -
西安理工大学计算机科学与工程学院,张发存创建时间:2010-4-17
文档评论(0)