一、学习内容
本章我们主要学习以自下而上的方法进行语法分析,首先需要了解移进和规约的基本思想,即用一个寄存符号的先进后出栈,把输入符号一个一个地移进到栈里,当栈顶形成某个产生式的候选式时,即把栈顶的这一部分替换成(归约为)该产生式的左部符号。规范规约是假定a是文法G的一个句子,我们称序列an,an-1,¼ ,a0是a的一个规范归约,实际上规范归约相当于最右推导的逆过程,由规范推导推出的句型称为规范句型。然后我们学习了用符号栈进行自下而上的语法分析,在分析开始时,将“#”预先进栈,作为栈底符号,同时将“#”作为输入串的结束符,自左向右对输入串ω不断向栈中进行移进——归约。再往下我们了解到算符优先分析法,定义算符之间优先关系,借助这种关系来寻找“可归约串”和进行归约,此时就需要定义两个终结符‘a’与‘b’的优先关系:a =.b表示a的优先性等于b;a .>b表示a的优先性大于b;a <.b表示a的优先性小于b ,需要注意的是这里的“=.”“.>”“<.”不同于数学上的 “=”“>”“<”,a =.b不一定对应着b =.a。引出算符文法,是指一个文法,如果它的任一产生式的右部都不含两个相继(并列)的非终结符,即不含…QR…形式的产生式右部,则我们称该文法为算符文法,也称OG文法。根据算符文法,引出算符优先文法以及算符优先关系表,具体的构造方法在知识运用中提及。随后我们学到了优先函数,把每个终结符q与两个自然数f(q)与g(q)相对应,使得若q1 <. q2,则f(q1) < g(q2);若q1 =. q2,则f(q1) =