编译原理compiler4.pptVIP

  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文档。上传文档
查看更多
本章目的 描述程序语言的语法结构,需借助于上下文无关文法。文法是描述程序语言的依据,也是编译的依据。识别上下文无关文法所生成的语言的方法是语法分析的关键。本章的目的是研究这些方法。 三、消除左递归 产生式 其中b不以A为前缀。这是直接左递归形式,它产生的符号串为ba*结构。引进非终结符A’,令 它同样产生ba*形符号串,所以与(4.3)等价,但是它不是左递归的。 更一般些对 的等价文法为 消除左递归后,为 消除间接左递归的算法 (1) 将文法G的所有非终结符按一给定的顺序排序; (2) for(i=1;i=n;i++) for(j=1;j=i-1;j++) { 4.1消除下列文法 S-(L)|a L-L,S|S 中左递归,构造递归下降分析器;写出句子(a,(a,a))的分析过程;它是不是LL(1)文法?请构造预测分析表。 (1).消除左递归后产生式为: S-(L)|a L-SL’ L’-,SL’|ε (2).构造递归下降分析器如下: void match(token t) { if (lookahead == t ) { lookahead = nexttoken; } else { error(); } } 2.void L’() { if ( lookahead == ‘,’ ) { match(‘,’); S(); L’(); } } 3. void S() { if ( lookahead == ‘(‘ ) { match(‘(‘); L(); If (lookahead == ‘)’ ) {match( ‘)‘};} else{error();} } elseif ( lookahead == ‘a‘ ) {match(‘a’);} else { error(); }; } 4. void L() { S(); L’(); } (3).句子(a,(a,a))的分析过程如下: S( )中匹配字符 ‘(‘ 成功。 调用L( ) L( )中调用S( ) S( )中匹配a成功,然后读入下一个字符’,’。 这一步我不知道如何描述了,因为我用C语言写的递归下降分析器根本不可能调用L’()函数,却只是在S()与L()之间来回调用。请老师告诉我如何修改递归下降分析器,使它可以分析句子(a,(a,a)),谢谢。 (4).它是LL(1)文法。 (5).构造预测分析表 a(),$SS-aS-(L)LL-SL’L-SL’L’L’-εL’-,SL’ [例4.7] 如果输入串为i+i*i,按图4.4的分析表,分析过程如图4.7所列。 注意到有限集可用成员表来表示的事实,如全集E={a,b,c,d},集合A={a,c,d},集合B={b,c},则可用下表来表示集合A,B: 如果例4.8的FIRST集和FOLLOW集也用成员表来表示(当然,FIRST集的全集为VT∪{ε},FOLLOW集的全集为VT∪{$},其中VT为终结符集),则按算法求取相应集合的过程,可分别用图4.8之(a)、(b)表来表示: 其中,数字x分别表示引用相应求取FIRST集、FOLLOW集算法的第x规则。鉴于求FOLLOW集的规则2依赖于FIRST集,因此将二张表用一张表表示,可能会更方便些。这时,表中用√表示FIRST集的成员,○表示FOLLOW集的成员,于是有图4.9,当然它忽略了过程,只表示了结果。 三、LL(1)文法 上下文无关文法G,任一非终结符A的产生式设为 (1) ,当 时,i,j=1,2,…,n; (2) 若 ,则 ,j=1,…n, 且 。 则称G是LL(1)文法。 四、预测分析表的构造 对文法的每个产生式 (1) 对每个 ,将 记入M[A, a]中; (2) 若 ,则对任何 ,把 记入M[A, b] (3) 凡无定义的M[A,

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档