G(E): E→TIE+T T→FIT*F F→(E)1i 步骤 符号栈 输入串 动作 9 #E+ i3# 进 10 #E+3 # 进 11 #E+F # 归,用Fi 12 #E+T # 归,用TF 13 #E # 归,用E→E+T 14 #E # 接受 国防科技大学计算机系602教研室
国防科技大学计算机系602教研室 步骤 符号栈 输入串 动作 9 #E+ i3# 进 10 #E+i3 # 进 11 #E+F # 归,用F→i 12 #E+T # 归,用T→F 13 #E # 归,用E→E+T 14 #E # 接受 ◼ G(E): E → T | E+T T → F | T*F F → (E) | i
5.2 算符优先分析 ■四则运算的优先规则: 先乘除后加减,同级从左到右 ■考虑二义文法文法GE): GE):Ei E+EE-EE*EE/EE) ■它的句子有几种不同的规范规约。 ■归约即计算表达式的值。归约顺序不同, 则计算的顺序也不同,结果也不一样。 ■如果规定算符的优先次序,并按这种规定 进行归约,则归约过程是唯一的。 国防科技大学计算机系602教研室
国防科技大学计算机系602教研室 5.2 算符优先分析 ◼ 四则运算的优先规则: 先乘除后加减,同级从左到右 ◼ 考虑二义文法文法G(E): G(E): E → i| E+E|E-E|E*E|E/E|(E) ◼ 它的句子有几种不同的规范规约。 ◼ 归约即计算表达式的值。归约顺序不同, 则计算的顺序也不同,结果也不一样。 ◼ 如果规定算符的优先次序,并按这种规定 进行归约,则归约过程是唯一的
例如:句子i+i-i*(i+i) E E E E + E E 米 E i i i E E E i 国防科技大学计算机系602教研室
国防科技大学计算机系602教研室 例如:句子i+i-i*(i+i) E i ( ) i * E i E E + E E E - i i + E E E
E E 米 E E E E E i E + E i i i i 返回 国防科技大学计算机系602教研室
国防科技大学计算机系602教研室 E i ( ) i * E i E E + E E E - i i + E E E 返回
句子i+i-i*(i+i)的归约过程是: (1) i+i-i*(i+i) (2) E+i-i*(i+i) (3) E+E-i*(i+i) (4) E-i*(i+i) (5) E-E*(i+i) (6) E-E*(E+i) (7) E-E*(E+E) (8) E-E*(E) (9) E-E*E (10) E-E (11) E 国防科技大学计算机系602教研室
国防科技大学计算机系602教研室 句子i+i-i*(i+i)的归约过程是: (1) i+i-i*(i+i) (2) E+i-i*(i+i) (3) E+E-i*(i+i) (4) E-i*(i+i) (5) E-E*(i+i) (6) E-E*(E+i) (7) E-E*(E+E) (8) E-E*(E) (9) E-E*E (10) E-E (11) E