第八章 符号表与错误处理 18页.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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 对下列程序 , 当编译程序编译到箭头所指位 置时 , 画出其层次表(分程序索引表)和符号表: program stack(output) ; var m, n:integer; r:real ; procedure setup (ns:integer, check :real) ; var k, l : integer; function total(var at : integer, nt : integer) : integer; var i, sum:integer; 第八章 符号表与错误处理 begin for i := 1 to nt do sum:=sum+at[i] ; total :=sum; end ; begin l :=27+total(a,ns) ; ----------------- end ; begin n:=4; setup (n,5.75) end. 第八章 符号表与错误处理 【解答】 编译程序编译到箭头所指位置时 , 其层 次表(分程序索引表)和符号表如图8- 1所示。 第八章 符号表与错误处理 图8- 1 分程序索引表和符号表示意图 第八章 符号表与错误处理 8.5 已知文法G[S] : S →while (e) S S → {L} S →a /*a代表赋值句*/ L →S ;L L →S 构造该文法的LR型的错误校正分析程序。 第八章 符号表与错误处理 (1) S →while e do S (2) S →begin L end (3) S →a (4) L →S (5) L →S; L 【解答】 首先将文法G[S]拓广为G[S ′]: (0) S ′ →S 第八章 符号表与错误处理 则文法G[S ′]的LR(0)项目集示范族为 I0 : S ′ → ·S I4 : S →a · I10: L →S; ·L S → ·while e do S I5 : S →while e · do s L → ·S S → ·begin L end I6 : S →begin L·end L → ·S; L S → ·a I7 : L → S

文档评论(0)

180****0576 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档