ImageVerifierCode 换一换
格式:DOC , 页数:28 ,大小:425.50KB ,
资源ID:14375717      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14375717.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理课后习题答案Word文件下载.doc)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编译原理课后习题答案Word文件下载.doc

1、 D|NDD 0|1|2|3|4|5|6|7|8|9请给出句子123、301和75431的最右推导和最左推导。NNDN3ND3N23D23123NNDDDDD1DD12DN1ND1N01D013013DD30DN31ND31N431ND431N5431D543175431NDDDNDDDDDDDDD7DDDD75DDD754DD7543D4. 证明文法 SiSeS|iS| i是二义性文法。对于句型iiSeS存在两个不同的最左推导:SiSeSiiSesiSiiSeS所以该文法是二义性文法。5. 给出描述下面语言的上下文无关文法。(1) L1=anbnci |n=1,i=0 (2) L2=aibj

2、|j=i=1(3) L3=anbmcmdn |m,n=0(1) SABAaAb | abBcB | e(2) SASb |aba | e(3) SaSd | A | ebAc | e6. 设计一个最简的DFA M,使其能够识别所有的被3整除的无符号十进制整数。7. 设计一个DFA,使其能够接受被4整除的二进制数。8. 写出表达下列各项的正则表达式。(1)二进制数且为5的倍数。(2)=a,b,c,第一个a位于第一个b之前的字符串。(3)=a,b,c,包含偶数个a的字符串。(4)=0,1,不包含11子串的字符串。(1)可以先画出相应的有限自动机:添加新的开始状态S和终止状态T:根据以上自动机,列出

3、以下方程: S=A A=0A+1B+T B=0C+1D C=0E+1A D=0B+1C E=0D+1E解以上方程组: E=1*0D A=0*1B+0*T代入 C=01*0D+1A代入 C=01*00B+01*01C+1A C=xB+yA 其中x=(01*01)*01*00 y=(01*01)*1代入 B=0C+10B+11C B=(0|11)C+10B B=(10)*(0|11)C将C=xB+yA代入上式 B=uB+vA B=u*vA其中u=(10)*(0|11)x v=(10)*(0|11)y将B=u*vA代入 A=0*1u*vA+0*T A=(0*1u*v)*0*T将A代入 S=(0*1u

4、*v)*0*T串(0*1u*v)*0*即为所求。(2)该题目理解为:至少有一个a和一个b,且a出现在b的前面(可以有间隔),则答案为:c*a(a|c)*b(a|b|c)*(3)(b|c)*a(b|c)*a)*(b|c)*(a(b|c)*a | b | c)*(4)(0|10)*(1|e)第三章1. 词法分析器的功能是什么?读源程序的字符序列,逐个拼出单词,并构造相应的内部表示TOKEN;同时检查源程序中的词法错误。2. 试分析分隔符(空格、跳格及回车等)对词法分析的影响。空格、跳格、回车等分隔符号对词法分析不起作用,可以删除。但是回车符号可以用于错误定位,所以在删除回车符号前需要统计回车的个数

5、。3. 给出识别C语言全部实型常数的自动机。(+|-|e)(1-90-9*|0)(.0-90-9*|e) (E(+|-|e)0-90-9*)4. 写出识别C语言中所有单词的LEX程序。L=A-Z | a-zD=0-9D1=1-9%(L|_)(L|D|_)*return (1);D1D*return (2);+return (3);第四章1. 设有如下文法GS:SaABbcd | eASd | eSAh | eC | eCSf | Cg | e(1) 求每个产生式的Predict集。(2) 该文法是否为LL(1)文法?为什么?Predict(SaABbcd)=a e)=#,d,f,a,h Pre

6、dict(AASd)=a,d e)=h,a,d,b,ePredict(BSAh)=a,d,h eC)=e e)=bPredict(CSf)=a,f Cg)=a,f,g e)=g,b(2)由于Predict(AASd) Predict(A e),所以该文法不是LL(1)文法。2. 下列描述括号匹配的文法中,哪些是LL(1)文法?(1)S(SS | eS ) | e(2)S(S)S | e(3)SS(S)S | e(4)S(S | SS(S) | e(1)不是,(2)是,(3)不是,(4)不是3. 已知文法GE:EE+T | TTT*F | FFi | (E)请按递归下降法构造该文法的语法分析程序

7、。求产生式的predict集合:predict(EE+T)=i,(T)=i,(predict(TT*F)=i,(F)=i,(由于文法中非终极符号E和T对应的产生式的predict集合的交集都不为空,所以该文法不满足自顶向下分析的条件,现对文法进行等价变换得到如下文法:TEE+TE | eTFTT*FT | eFi(E)求新文法的predict集合:Predict(ETE)=(,iPredict(E+TE)=+e)=#,)Predict(TFT)=i,(Predict(T*FT)=*e)=+,),#Predict(Fi)=i(E)=(由于以上文法中任意非终极符号对应的产生式的predict集合的

8、交集都为空,所以满足自顶向下分析的条件,所以可以写出如下的递归下降语法分析伪代码:Void E() if(token(,i) T();E(); else Error();void E()+) Match(+);T(); else if(token#,) ;void T()i,() F();T();void T()*) Match(*);F();+,),#) ;void F()i) Match(i);() Match();E();Match();4. 构造一个LL(1)文法G,它能识别语言L:L=w | w为字母表S上不包括两个相邻的1的非空串,其中S=0,1。并证明你所构造的文法是LL(1)文

9、法。0E | 1FC0EB | eC | e0E)=01F)=1B)=0,1e)=#C)=0对任意非终极符号对应的产生式的predict集合的交集都为空,所以该文法是LL(1)文法。5. 已知文法GA为:AaABe | aBb | d(1) 试给出与GA等价的LL(1)文法GA。(2) 构造GA的LL(1)分析表并给出输入串aade#的分析过程。(1)所求GA为:aA(1)AABe (2)A e(3)dB(4)BbB (5)B e(6)aA)=aPredict(AABe)=ae)=#,ddB)=dPredict(BbB)=be)=e(3) 分析表如下:abde#AA(2)(3)B(4)B(5)(6)aade#的分析过程如下分析栈输入流动作A#aade#替换(1)aA #匹配A #ade#替换(2)ABe#aABe#ABe#de#替换(3)Be#替换(4)dBe#Be#e#替换成功第五章(这章答案是错的)1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1