网站大量收购闲置独家精品文档,联系QQ:2885784924

编译原理期末A试卷..docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、填空(每空0.5分,共 10分) 1、编译程序的功能是是对(高级语言)进行翻译,使之生成目标代码。 2、编译程序的工作过程一般划分为5个阶段:(词法分析)、语法分析、语义分析与中间代码生成,(代码优化)及目标代码生成 。另外还有表格管理和(出错处理)。 3、一个上下文无关文法所含四个组成部分是??一组终结符号、一组非终结符号、一个开始符号、一组产生式??。 i ,则输入串1+2*8+6按该文法G归约,其值为(B)。 A.23 B.42 C.30 D.17 7、编译技术中描述单词符号的形成规则的常用工具有( D )。 A.正规文法 B.正规式 C.有穷自动机 D.以上都是 8、编译技术中常用( B )描述程序语言的语法。 A.正规文法 B.上下文无法文法 C.属性文法 D.上下文有关文法 9、词法分析器的输出结果是( C )。 A.单词的种别编码 B.单词在符号表中的位置 C.单词的种别编码和自身值 D.单词自身值 10、以下( B )不是DFA的组成部分。 A.有穷字母表 B.初始状态集合 C.终止状态集合 D.有限状态集合  三、简答题(每题10分,共50分) 1、有文法G[S]:S→SA|A A→a|b 写出句子aba的最左推导和最右推导。 解:句子aba的最左推导为:S=SA=SAA=AAA=aAA=abA=aba (5分) 句子aba的最右推导为:S=SA=Sa=SAa=Sba=Aba=aba (5分) 一正规表达式为:b(b|a)| a(b|a(b|a)) ,写出上述正规式对应的DFA和状态装换矩阵。 解答:正规式对应的DFA为: (5分) 状态矩阵为: (5分) 状态\字符 a B X 1 3 1 2 Y 2 Y Y 3 Y Y Y - - 3、设G[E]: ET|E+T|E-T, T-F|T*F|T/F , F-(E)|i 证明E+T**i+i 是该文法的句型 E = E+T = E+T+T = E+T*F+T = E+T*F*F+T = E+T*i*F+T = E+T*i*i+T = E+T*i*i+F = E+T*F*i+i (5分) 或E = E+T = E+F = E+i =E+T+i= E+T*F+i = E+T*i+i = E+T*F*i+i = E+T**i+i (5分) 即,E=* E+T**i+i,所以是该文法的句型。 四、解答题(共30分) 1、对于下面的程序: Program main procedure p(x,y,z) begin y:=y+1; z:=z+x; end; begin a:=2; b:=3; p(a+b,a,a); write(a); end. 请分别按照(1)传值 (call by value)(2)传地址(call by reference) (3)传名(call by name)(4)传结果(call by result)的参数传递方式给出程序执行时的输出结果。 解:(1)传名(call by name)输出结果为:2 (2分) (2)传地址(call by reference) 输出结果为:8 (2分) (3)传值 (call by value) 输出结果为:9 (2分) (4) 传结果(call by result) 输出结果为:7 (2分) 2、 (5分)对下列四元式序列生成目标代码: ()A:=B*C ()D:=E+A ()G:=B+C ()H:=G*D 其中,H在基本块出口之后是活跃变量, AX和BX是可用寄存器。 答: 目标代码序列: MOV AX, B (2分) MUL AX C (2分) MOV BX E (2分) ADD BX AX (2分) MOV AX B (2分)

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档