编泽原理 培法分折一自下而上分析 构造语法树 例:设文法G(S)如下,试对abbcde进行 移进一归约”分析。 (1)S→aAcBe (2)A→b (3)A→Ab (4)B→d a B d 第6页
编译原理 第6页 语法分析-自下而上分析 构造语法树 例:设文法G(S)如下,试对abbcde进行 “移进-归约”分析。 (1) S → aAcBe (2) A → b (3) A → Ab (4) B → d b b d a c e S A B A
编译原理 培法分析一自下而上分析 在栈中实现“移进一归约” e B 专 e A 文法G(S): (1)S→aAcBe (2)A→b (3)A→Ab (4)B→d 第7觉
编译原理 第7页 语法分析-自下而上分析 在栈中实现“移进-归约” a bbcde b bcde A b cde c de d abbcdee e B c A Sa B c A a e 文法G(S): (1) S → aAcBe (2) A → b (3) A → Ab (4) B → d
编泽原理 培法分折一自下而上分析 实现“移进一归约”,符号栈的变迁 步骤:123 45 67 8 9 10 动作:进a进b归(2)进b归(3)进c进d归(4)进e 归(1) e d B B b c c b A A A A A A A a a a a a a a a a 琶自下而上分析过程:边输入单词符号,边归约。 影8页
编译原理 第8页 语法分析-自下而上分析 步骤: 1 2 3 4 5 6 7 8 9 10 动作: 进a 进b 归(2) 进b 归(3) 进c 进d 归(4) 进e 归(1) e d B B b c c c c b A A A A A A A a a a a a a a a a S 自下而上分析过程:边输入单词符号,边归约。 实现“移进-归约”,符号栈的变迁
编译原理 培法分析一自下而上分析 移进归约分析中的问题 @1) 移进-归约冲突 令在分析到某一步时,既可以移进,又可以 归约 @2)归约-归约冲突 ◇存在两个可选的句柄,可对栈顶符号进行归约 @各种分析方法中处理冲突的技术不同 第9觉
编译原理 第9页 语法分析-自下而上分析 移进归约分析中的问题 1) 移进-归约冲突 在分析到某一步时,既可以移进,又可以 归约 2) 归约-归约冲突 存在两个可选的句柄,可对栈顶符号进行归约 各种分析方法中处理冲突的技术不同
编泽原理 培法分析-自下而上分析 ©关键问题:精确定义“可归约串”。 ©主要分析方法 ◇算符优先分析法:按照算符的优先关系和结合性 质进行语法分析。适合分析表达式。 令LR分析法:规范归约 @核心问题:识别可归约串。 第0
编译原理 第10页 语法分析-自下而上分析 主要分析方法 算符优先分析法:按照算符的优先关系和结合性 质进行语法分析。适合分析表达式。 LR分析法:规范归约 关键问题:精确定义“可归约串”。 核心问题:识别可归约串