第4章自底向上语法分析20090422.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文档。上传文档
查看更多
算符优先分析算法实现 算符优先分析器是由三个部分构成: 分析表、分析栈、算法 不断向分析栈内移符号,不断比较栈顶符号和输入 符号的优先关系: 1)当栈顶符号的优先级<或=输入符号,则移进 2)当栈顶符号的优先级>输入符号,则停下,向上 寻找<,则<和>之间的符号串为可规约串,可 进行规约 例4.12:算术表达式文法G[E]: E→ E + T? T T→ T * F? F F→ (E) ? I 分析句子i+i$ 求每个非终结符的FIRSTVT集和LASTVT集 FIRSTVT(E) + ∈ FIRSTVT(E) FIRSTVT(T)∈ FIRSTVT(E) FIRSTVT(T) * ∈ FIRSTVT(T) FIRSTVT(F)∈ FIRSTVT(T) FIRSTVT(F) ( ∈ FIRSTVT(F) i ∈ FIRSTVT(F) 得出FIRSTVT集 LASTVT(E) + ∈ FIRSTVT(E) LASTVT(T)∈ LASTVT(E) LASTVT(T) * ∈ LASTVT (T) LASTVT (F)∈ LASTVT (T) LASTVT(F) )∈ LASTVT (F) i∈ LASTVT (F) 得出LASTVT集 ②寻找终结符在右边,非终结符在左边的串 E+ LASTVT(E) + 即 { * ,+,),i } + T* LASTVT(T) * 即 { * ,),i } * E) LASTVT(E) ) 即 { * ,+,),i } ) ③文法“=”关系 F→ (E) ( = ) ④对于$,有$ = $, $ FIRSTVT(E), 即 $ { * ,+,(,i} LASTVT(E)$ , 即 { * ,+,),i } $ 句子i+i$的分析过程 算符优先分析法的局限性 由于算符优先分析法跳过了所有单非产生式(产生式的右部只含有单个非终结符)之间的规约,这样导致算符优先分析比规范规约要快的多,但是可能导致不是句子的输入串误认为是文法的句子。 例4.13:算术表达式文法G[A]: A→ A;D? D D→ D(A)? F F→ a ? (A) E→ E+A? A 算符优先分析表如下: 分析句型(a+a)$ 栈   优先关系    最左子串 动作 1 $ $( (a+a)$ 移入 $( $(a a+a)$ 移入 $(a $(a) +a)$ 规约 $(E $(+ +a)$ 移入 $(E+ $(+a a)$ 移入 $(E+a $(+a) )$ 规约 $(E+A $(+) )$ 规约 $(E $(=) )$ 移入 $(E) $(=)$ $ 规约 $A $=$ $ 结束 但是(a+a)不是该文法合法句型,因为无法由开始符号导出。 练习1:算术表达式文法G[S]: S→ (A)? a A→ A+S? S 1)试构造该文法的算符优先关系表 2)实

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档