编译原理复习笔记-自下而上的语法分析

基本概念

  • 短语:以非终结符为根的子树中所有从左到右的叶子。
  • 直接短语:短语+父子关系的树。
  • 句柄:最左直接短语(唯一)
  • 句子:只包含终结符。
  • 句型:包含非终结符和终结符。

自下而上的语法分析采用移进-归约的方式分析句子,用一个栈记住将要规约句柄的前缀,形成前移进,形成后规约。

需要使用符号栈和输入缓冲区,#标记栈底或者输入串的右端。

使用格局(栈,剩余输入,改变格局的动作)表示一个状态。动作包括移进,规约,接受,报错。

最左规约是最右推导的逆过程,都是规范推导

活前缀,句柄在栈顶形成。

用分析树表示就是剪句柄。

LR分析

核心:移进规约分析器+驱动器。

特点:无回溯的移进规约方法,可分析LL文法的真超集,能及时发现错误,分析表较复杂。

重点:分析表的组成,分析,构成方法。

分析表组成

  • 动作表(action[s,a]),与输入有关,改变格局的动作。si(移进),rj(替换,与goto共同完成规约),acc(接受),blank(报错)
  • 转移表(goto[s,A]),非终结符的转移。

LR(K)分析器,L表示从左到右扫描,R表示逆序的最右推导,k为确定下一动作向前看的终结符个数,通常K<=1。k==1时简称LR。k>1构造很复杂,我们只构造SLR(1)分析器。

重点:构造SLR(1)分析器

思路:识别文法所有活前缀的DFA + 向前看信息。

你可能感兴趣的:(编译原理复习笔记-自下而上的语法分析)