《编译原理》复习纲要河南工业大学.pptVIP

《编译原理》复习纲要河南工业大学.ppt

  1. 1、本文档共50页,可阅读全部内容。
  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文档。上传文档
查看更多
练习:判断文法是否LL(1)文法,写出原因 SELECT(F→(E))={( } SELECT(E→TE’)={(,i} SELECT(E’→+TE’)={+} SELECT(E’→ε)={),#} SELECT(T→FT’)={ (,i} SELECT(T’→*FT’)={*} SELECT(T’→ε)={+,),#} SELECT(F→i)={i} i + * ( ) # E E’ T T’ F →ε →+TE →TE →TE →ε →ε →ε →ε →FT →FT →*FT →(E) →i 因为上面的分析表中每一项没有冲突,所以,该文法是LL(1)文法。 * X∈VN ‘#’‘S’进栈,当前输入符送a 上托栈顶符号放入X 若产生式为 X?X1X2…Xn按逆序即Xn…X2X1 入栈 出错 X=‘#’ X∈VT X=a M[X,a]是 产生式吗 出错 X=a 读入下一个符号 结束 是 是 是 是 否 否 否 否 否 是 3.LL(1)分析程序的控制程序 初始格局: (#S,输入串#) 终止格局:(#,#) 图中符号说明如下: “#”句子括号即输入串的括号 “S”文法的开始符号 “X”存放当前栈顶符号的工作单元 a存放当前输入符号a的工作单元 1 #E 2 3 T’F 4 E→TE’ T→FT’ i F→i i匹配 5 T’→ε 6 #E’ 7 8 E’T+ E’→+TE’ +匹配 #E’T 9 T’F T→FT’ F→i 10 #E’T’ i匹配 11 i 12 #E’ T’→*FT’ *匹配 13 14 15 16 #E’T’F F→i #E’T’ i匹配 #E’ #E’T’ T’→ε E’→ε 17 # 接受 对输入串i+i*i#进行分析 # E’T i+i*i# i+i*i# i+i*i# i+i*i# +i*i# +i*i# +i*i# i*i# i*i# i*i# *i# * i# i# i# # # # #E’ #E’T’ #E’T’ # #E’ #E’T’ T’F* i →ε →+TE →TE →TE →ε →ε →ε →ε →FT →FT →*FT →(E) →i →ε →+TE →TE →TE →ε →ε →ε →ε →FT →FT →*FT →(E) →i 注意:红色部分为易出错部分 练习 以作业题为主,练习完整的过程 1、能推出ε的非终结符集。 2、求非终结符的FIRST、FOLLOW集。 3、构造分析表。 4、判断是否LL(1)文法。 5、若是LL(1)文法,则写出句子的分析过程。 VN 推出ε? FIRST FOLLOW VN a b … … 步骤 分析栈 剩余输入串 推导所用产生式或匹配 VN 推出ε? FIRST FOLLOW VN 步骤 分析栈 剩余输入串 推导所用产生式或匹配 第六章 算符优先文法 1、会写表达式的逆波兰式 练习:求下述表达式的逆波兰式: (a+b/d)*e , a b d / + e * 注 根据逆波兰式特点: ⑴ 运算对象顺序不变; ⑵ 运算符紧跟运算对象之后。 ※ 可直接写出: 练习以下公式的逆波兰式 a+(b-c)*d+e/f a*b/c↑e*d a+(-b) * FIRSTVT计算如下:P111 ①初值:若有产生式A?a…或A?Ba… 则a?FIRSTVT(A) ②迭代:若a?FIRSTVT(B)且有产生式A?B… 则a?FIRSTVT(A) LASTVT计算如下:P111 ①初值:若有产生式A?…a或A?…aB 则a?LASTVT(A) ②迭代:若a?LASTVT(B)且有产生式A?…B 则a?LASTVT(A) 根据定义直观计算FIRSTVT集、LASTVT集 2. 会构造算符优先分析表 * 例如:求下面文法的每个非终结符的FIRSTVT和LASTVT。 准备工作:增加E’?#E# E’?#E# E?E+T E?T T?T*F T?F F?P?F F?P P?(E) P?i FIRSTVT LASTVT E’ { } { } E { } { } T {

文档评论(0)

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

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

1亿VIP精品文档

相关文档