2022春西安电子科技大学《编译原理与技术》大作业答案.docxVIP

2022春西安电子科技大学《编译原理与技术》大作业答案.docx

  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文档。上传文档
查看更多
学习中心/ 学习中心/函授站— 姓名 学号 西安电子科技大学网络与继续教育学院 2022学年上学期 《编译原理与技术》期末考试试题 (综合大作业) 题号 — 四 总分 题分 10 20 30 40 得分 考试说明: 1、 大作业试题公布时间:2022年4月22日; 2、 考试必须独立完成,如发现抄袭、雷同均按零分计; 3、 答案须用《西安电子科技大学网络与继续教育咖春期末考试答题纸》(个 人专属答题纸)手写完成,要求字迹工整、卷面干净、整齐; 4、 拍照要求完整、清晰,一张图片对应一张个人专属答题纸A4纸),正确上传。 一、单选题(每小题2分,共10分) 1、在以阶段划分的编译器中, 阶段的主要作用是识别源程序中的句子结构。 A、词法分析 B、语法分析 C、语义分析 D、代码优化 2、 在自下而上语法分析中,LL(1)中的第二个L表示 , A、最右归约 B、最左推导 C、最左归约 D、最右推导 3、 在自下而上语法分析中,句柄是指右句型中的 o A、非终结符 B、短语 C、直接短语 D、最左直接短语 4、 给定文法A-bA|aa, 是该文法的句子。 A、aabb abab C、bbaa D、baba 5、在布尔表达式短路计算的翻译方案中,当按照产生式E-ElandE2进行归约时, 可以确定 O A、E1的真出口 B、E1的假出口 C、E2的真出口 D、E2的假出口 答案:1-5 BBDCB 二、 填空(每空2分,共20分) 1、 动态存储分配包扌 配和 配两种。 2、 正规式(a|b)*ab義示的正规集为 0 3、 上下文无关文法G的四元组(N,T,P,0中,S表示 . P表示 o 4、 在文法E-E + T | T Tf F * T | F F-id中,运算+的优先级比* 运算+是 结合的,运算*是 结合的。 5、 函数调用执行肘.引用调用是扌 值调用是指 。 答案: 栈式、堆式 (abb , aabb , babb , aabbb , abbbb....) 开始符号、产生式集合 低、右、左 变量地址作为参数传递到函数中、把实参的内容复制到形参中 三、 简答题(每小题10分,共30分) 1、 请列举三种常用的中间代码.并说明编译过程中采用中间代码有什么好处。 答:常用的中间代码:三地址码,后缀式,DAG图。 中间代码的特点是与具体机器(指令系统)无关;采用中间代码可以明确 区分前端与后端;便于优化和移植(便于语法制导翻译;既与机器指令的结构 相近,又与具体机器无关)。 2、 清计算下面文法G[E]中各非终结符的FIRST和FOLLOW集合。请说明该文法为什 么不是LL(1)文法。 E—E * T | T T—T - F | F F-* (E) | id 答: FIRST (F) = FIRST (T) = FIRST (E) = ( (, id } FOLLOW (E) = {#,*,)} FOLLOW (T) = (- *,#,)} FOLLOW(F) = *,#,)} 解释:通俗地讲,a的FIRST集合就是从a幵始可以导出的序列中的开头终 结符。而A的FOLLOW集合,就是从幵始符号可以导出的所有含A序列中紧跟A之 后的终结符。根据计算FIRST集合和FOLLOW集合的算法进行计算。 判定G是否LL(1)文法有两个:①构造分析表,判断分析表中是否包含多重 定义的条目;②根据推论3. 2:文法G是LL(1)的,当且仅当G的任何两个产生 式A-③丨们 满足下面条件: 对任何终结符a, a和0不能同时推导出以a开始的串; a和B最多有一个可以推导出£; 若8= *e ,则a不能推导出以在FOLLOW (A)中的终结符开始的任何 串。 3、请给出下述语句的三地址码序列并指出此语句的出口。 答: while begin end; ((a0) or (b0)) do x:=x+l; if a0 then a:=a~l else b:=b+l (1) if a 0 goto (4) (2) if b 0 goto (4) (3) goto (10) (4) x=x+l (5) if a 0 goto (7) (6) goto (8) (7) a=a~l (8) b=b+l (9) goto (1) (10) return 出口: (10) 四、计算题(每小题20分,共40分) 1、某NFA的状态转换图如下表所示(0是初态,3是终态) (2) 答:(1)(3 (2) 答: 并给出D,的状态转换图。(12分)写出将该NFA确定化为DFA D的过程,并给出D的状态转换图; (5分)计算D 并给出D,的状态转换图。 (1) bb, bab, baab 确定化过程: -闭包({S0D = (

您可能关注的文档

文档评论(0)

欣然 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档