第4章自上而下语法分析方法.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章自上而下语法分析方法资料

1、FIRST集及其计算方法 (2)FIRST集的计算方法 对G中的文法符号X,X∈VT∪VN,则FIRST(X)的计算方法为: ①若X∈VT,则 FIRST(X) ={ X }; ②若X∈VN,则 规则一:若有产生式 X→a…,其中a∈VT,则a∈FIRST(X); 规则二:若有产生式X→?,则 ?∈FIRST(X); 规则三:若有产生式 X→Y… ,其中 Y∈VN,则把FIRST(Y)中的所有非ε元素都加入到FIRST(X)中; 1、FIRST集及其计算方法 (2)FIRST集的计算方法 更一般的情形,若有产生式X→Y1Y2…Yn,其中 Y1,Y2,…Yi-1∈VN (1i≤n),则: 将FIRST(Y1)中的所有非ε元素都加入到FIRST(X)中;若对任意 j(1≤j≤i-1),均有ε∈FIRST(Yj)(即 ),则将FIRST(Yi)中的所有非ε元素都加入到FIRST(X)中;若所有FIRST(Yj)均含有ε(j=1,2,…,n),即 ,则把ε加入到FIRST(X)中。 ③反复使用以上规则,直至每个非终结符的FIRST集不再增大为止。 1、FIRST集及其计算方法 【例4.7】 文法G[E]如下所示,求该文法所有非终结符的FIRST集。    A FIRST(A) E E′ T T′ F (,i (,i (,i +,? *,? 1、FIRST集及其计算方法 现在,我们能够对文法G的任何符号串α=X1X2…Xn,构造集合FIRST(α)。其方法如下:   ①置 ;   ②当 ,若对任何 ,有 ,则将 中所有元素加入到 中;   ③若对所有的 ,均有 ,则 。 特别地,当α=?时,FIRST(α)={?}。 1、FIRST集及其计算方法 【例4.8】 接着例4.7的题,求文法G[E]的所有候选式的FIRST集。    E E′ T T′ F FIRST (,i +,? (,i *,? (,i 返回 2、FOLLOW集及其计算方法 (1)FOLLOW集的定义 给定文法 ,对于G中任意非终结符A,我们定义A的 FOLLOW集 为: 特别地,若 ,则规定 # FOLLOW(A) 。 FOLLOW(A)的直观意义 FOLLOW(A)是所有句型中出现在紧接A之后的终结符或‘#’。 2、FOLLOW集及其计算方法 (2)FOLLOW集的计算方法 对于文法G的每个非终结符A,FOLLOW(A)的计算方法如下: 规则一:对于文法的开始符号S,置#于FOLLOW(S)中; 规则二:若有产生式 ,其中 ,则将 加至FOLLOW(B)中; 规则三:若有产生式 或 ( ,即 ),则把FOLLOW(A)加至FOLLOW(B)中; 规则四:反复使用规则②和③,直至每个非终结符的FOLLOW集不再增大为止。 2、FOLLOW集及其计算方法 【例4.9】 如同例4.7中的文法G[E],求其所有非终结符的FOLLOW集。    A FIRST(A) FOLLOW(A) E (,i E′ +,? T (,i T′ *,? F (,i #,) +,#,) *,+,#,) #,) +,#,) 返回 3、LL(1)文法及LL(1)判定条件 (1)LL(1)文法 LL(1)文法是一种满足构造不带回溯的自上而下分析的文法。这里,LL(1)中的第一个L表示从左至右扫描输入串,第二个L表示最左推导,1表示分析时每一步只需向前查看一个符号。 类似地, 可有LL(k)文法, 即向前查看k个符号才能确定选用哪个产生式

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档