- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第八章符号表与错误处理
8.1完成下列选择题:
(1)编译程序使用区别标识符的作用域。
a.说明标识符的过程或函数名
b.说明标识符的过程或函数的静态层次
c.说明标识符的过程或函数的动态层次
d.标识符的行号
(2)在目标代码生成阶段,符号表用于。
a.目标代码生成b.语义检查
c.语法检查d.地址分配
(3)错误的局部化是指。
a.把错误理解成局部的错误
b.对错误在局部范围内进行纠正
c.当发现错误时,跳过错误所在的语法单位继续分析下去
d.当发现错误时立即停止编译,待用户改正错误后再继续编译
【解答】(1)b(2)d(3)c
8.2在编译过程中为什么要建立符号表?
【解答】在编译过程中始终要涉及到对一些语法符号的处理,这就需要用到语法
符号的相关属性。为了在需要时能找到这些语法成分及其相关属性,就必须使用一些表格来
保存这些语法成分及其属性,这些表格就是符号表。
8.3对出现在各个分程序中的标识符,扫描时是如何处理的?
【解答】对扫描到各分程序中的标识符的处理方法如下:
(1)当在一个分程序首部某说明中扫描到一个标识符时,就以此标识符查找相应于
本层分程序的符号表。如果符号表中已有此名字的登记项,则表明此标识符已被重复说明(定
义),应按语法错误进行处理;否则,在符号表中新登记一项并将此标识符及有关信息(种属、
类型、所分配的内存单元地址等)填入。
(2)当在一分程序的语句中扫描到一个标识符时,首先在该层分程序的符号表中查找此标识
符;若查不到,则继续在其外层分程序的符号表中查找。如此下去,一旦在某一外层分程序
的符号表中找到标识符,则从表中取出有关的信息并作相应的处理;如果查遍所有外层分程
序的符号表都无法找到此标识符,则表明程序中使用了一个未经说明(定义)的标识符,此时
可按语法错误予以处理。
8.4对下列程序,当编译程序编译到箭头所指位置时,画出其层次表(分程序索引表)和符号
表:
programstack(output);
varm,n:integer;
r:real;
proceduresetup(ns:integer,check:real);
vark,l:integer;
functiontotal(varat:integer,nt:integer):integer;
vari,sum:integer;
begin
fori:=1tontdosum:=sum+at[i];
total:=sum;
end;
begin
l:=27+total(a,ns);
end;
begin
n:=4;
setup(n,5.75)
end.
【解答】编译程序编译到箭头所指位置时,其层次表(分程序索引表)和符号表如图8-1所
示。11nt
10at
9total
8l
7k
6check
5ns
4setup
3r10
2n5
1m1
变量名属性分程序索引表
有哪些信誉好的足球投注网站
文档评论(0)