欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    编译原理第一章练习和答案.doc

    • 资源ID:27110858       资源大小:1.06MB        全文页数:20页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    编译原理第一章练习和答案.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date编译原理第一章练习和答案语言和文法例1设有文法GS:Sa|(T)|eTT,S|S(1) 试给出句子(a,a,a)的最左推导。(2) 试给出句子(a,a,a)的分析树(3) 试给出句子(a,a,a)的最右推导和最右推导的逆过程(即最左规约)的每一步的句柄。 【解】(1) (a,a,a)的最左推导S=>(T) =>(T,S) =>( T,S,S) =>( S,S,S) =>(a,S,S) =>(a,a,S) =>(a,a,a)(2)(a,a,a)的分析树 (3) (a,a,a)最右推导 最左规约每一步的句柄S=>(T) 句柄为:(T) =>(T,S) 句柄为:T,S=>(T,a) 句柄为:a=>(T,S,a) 句柄为:T,S =>(T,a,a) 句柄为:第一个a=>(S,a,a) 句柄为:S=>(a,a,a) 句柄为:第一个a 例2已知文法GZ:Z0U|1VU1Z|1V0Z|0(1) 请写出此文法描述的只含有个符号的全部句子。(2) GZ产生的语言是什么? (3) 该文法在Chomsky文法分类中属于几型文法?【解】(1)0101,0110,1010, 1001(2)分析GZ所推导出的句子的特点:由Z开始的推导不外乎图1所示的四种情形。由Z推导出10或01后就终止或进入递归,而Z的每次递归将推导出相同的符号串:10或01。所以GZ产生的语言L(GZ)=x|x(10|01)+ (3)该文法属于3型文法。例3 已知文法G=(A,B,C,a,b,c,P,A), P由以下产生式组成: AabcAaBbcBbbBBcCbccbCCbaCaaBaCaa此文法所表示的语言是什么?【解】分析文法的规则:每使用一次BcCbcc,b、c的个数各增加一个;每使用一次aCaaB或aCaa, a的个数就增加一个;产生式BbbB、 bCCb起连接转换作用。由于A是开始符号,由产生式Aabc推导得到终结符号串abc;由产生式AaBbc推导得到B后,每当使用产生式BbbB、BcCbcc、bCCb、aCaaB就会递归调用B一次,所产生的a、b、c的个数分别增加一个,因此推导所得的终结符号串为abc、aabbcc、aaabbbccc、所以文法描述的语言为 anbncn|n>0.例4 构造描述语言L(GS)=(n)n|n0 的文法。【解】(1)找出语言的一些典型句子:n=0 n=1 ( ) n=2 ()所以, L(GS)= 、( ) ()、()、 (2)分析句子的特点:只含有(和),(和)的个数相同且对称, 句子中所含的符号数可无限, 句子的个数可无限。(3)凑规则:由 S|() 得到|(),由 A (S) 得到 (),() 是在()的两边再加上一对()得到,()是在()的两边再加上一对()得到,所以将上述产生式合并为S(S) |。(4)得到文法 GS: S(S) |(5)检验:语言所有的句子均可由文法GS推导出来, 文法GS推导出来的所有终结符号串均为语言的句子.例5 构造描述语言L(GS)=am bn |n>m>0 的文法。【解】找出语言的一些典型句子:abb、abbb、aabbb、aabbbb、,语言的句子的特点是仅含有a、b, a在b的左边,b的个数大于a的个数,a的个数至少是1。单独生成ck, k>1 可用产生式 Cc |Cc句子中要求b的个数大于a的个数,所以得到文法:GS: SAb |SbAaAb |ab检验:语言所有的句子均可由文法GS推导出来, 文法GS推导出来的所有终结符号串均为语言L(GS)的句子.例6设有文法GS:SS*S|S+S|(S)|i该文法是否为二义文法?【解】该文法是二义文法,因为该文法存在句子i*i+i,该句子有两棵不同的语法树如图2所示.。图2句子i*i+i的语法树例7写一个文法,使其语言是奇数集,且每个奇数不以0开头。【解】解题思路首先分析题意,本题是希望构造一个文法,由它产生的句子是奇数,并且不以0开头,也就是说它的每个句子都是以1、3、5、7、9中的某个数结尾。如果数字只有一位,则1、3、5、7、9就满足要求,如果有多位,则要求第1位不能是0,而中间有多少位,每位是什么数字(必须是数字)则没什么要求,因此,我们可以把这个文法分3部分来完成。分别用3个非终结符来产生句子的第1位、中间部分和最后一位。引入几个非终结符,其中,一个用作产生句子的开头,可以是19之间的数,不包括0,一个用来产生句子的结尾,为奇数,另一个则用来产生以非0整数开头后面跟任意多个数字的数字串,进行分解之后,这个文法就很好写了。解答:G(S):SCDDCCBABA0A2468DD13579例8写一个上下文无关文法CFG,使其语言是能被5整除且不以0开头的无符号整数的集合。(如5,10,15,.)【解】解答:能被5整除的数从形式上看,是以0,5结尾的数字串。题目要求的不以0开头,并要注意0不是该语言的句子。所求文法为:G(S):SMF5F50MMDNDN0N123456789例9证明下面的文法是二义的:SSSS【解】解题思路:根据文法的二义性的定义,如果要证明该文法是二义的,必须找到一个句子,使得该句子具有两个不同的最右推导或两个不同的语法树。我们首先分析这个文法,根据我们对程序语言的了解,不难发现,这个文法应该是用来表示if.else.结构的(用“i”代表“if”或语句集,“e”代表“else”)。因此我们就要到if.else结构中去找二义性。我们知道,程序语言一般都规定else部分是和它前面离它最近的没有被匹配的的if语句进行匹配。而上面的这个文法体现不出这种限制,因此我们可以找这样一个句子,在else前面有两个if(如句子iiiei),else和不同的if进行匹配时就会产生不同的语义。解答:考虑句子iiiei,存在如下两个最右推导:S => iSeS => iSei => iiSei => iiieiS => iS => iiSeS => iiSei => iiiei例10某程序设计语言的表达式由运算符1、2、3、标识符、(、)组成,其中1和2的优先级相同,3的优先级低于1、2的优先级,优先级相同的运算符从右往左计算,可以用括号改变运算的顺序,则下述四种文法中哪一个可以描述上述的表达式文法?设E为识别符号,终结符号集=1、2、3、(、)、I,非终结符号集=E、T、F。a.ET|E1T|E2TTF|T3FF(E)|Ib. ET|T1E|T2ETF|F3TF(E)|Ic. ET|E3T TF|T1F|T2FF(E)|Id. ET|T3 ETF|F1T|F2TF(E)|I【解】对于一个包含运算符的语言,运算符的结合顺序、运算符的优先级在文法中反映为递归的方向和推导(或规约)的先后,左递归表明左边的运算先处理,对应的运算符左结合;右递归表明右边的运算先处理,对应的运算符右结合。两个运算符连续出现,后推导出(或先被规约)的,表明其运算先被处理,因此优先级高;反之,先推导出(或后被规约)的,表明其运算后被处理,因此优先级低。题意要求:1和2的优先级相同,3的优先级低于1、2的优先级,因此3比1、2先推导出来,即应为图3所示的四种情形。 图3可能的文法推导顺序因此a和b不成立。又因为优先级相同的运算符从右往左计算,应采用右递归,即应为图4所示的情形。 图4可能的文法递归结构故c不成立,应为d。-

    注意事项

    本文(编译原理第一章练习和答案.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开