编译原理 第五篇自底向上优先分析法.docVIP

  • 6
  • 0
  • 约 11页
  • 2017-06-15 发布于北京
  • 举报

编译原理 第五篇自底向上优先分析法.doc

第五章 自底向上优先分析法 自底向上优先分析法,其基本思想是采用自左向右扫描,向下而上分析。该类分析方法是从输入符号串开始,查找句柄,并使用规则把它归约成相应的非终结符号。任何自底向上分析的关键,就是要找出这种句柄。本章首先介绍自底向上分析一般过程,然后介绍算符优先分析法。 本章重点:句柄、算符优先分析法 第一节 自底向上分析一般过程。 先举例说明 例1 有一文法G[S] S→aAcBe A→b A→Ab B→d 对输入串abbcde#进行分析,检查该符号串是否是G[S]的句子。它的最右推导是: S?aAcBe?aAcde?aAbcde?abbcde 由此我们可以构造它的逆过程即归约过程。 先设一个先进后出符号栈,并且把句子左括号“#”号放入栈底,其分析过程如下所示 上述归约过程,是从输入符号串开始,自底向上地通过归约当前句型的句柄来建立语法树的。我们不难画出上述分析过程的语法树,下图。在图中,我们仅画出与生成语法树有关的几步。从所建立的语法树,可以清楚看出,上述每一步确实都是归约当前句型的句柄。且句柄出现在符号栈栈顶,不会在栈中间,其实上述分析过程并未真正解决句柄的识别问题。例如,对于上面的例子,分析进行到第(5)步,当时栈内符号串为aAb。根据该符号串,我们有规则A→Ab。和规则A→b。那么,符号串Ab和b都是某条规则的右部,故都有可能被判别是句型的句柄。

文档评论(0)

1亿VIP精品文档

相关文档