电子科技大学编译原理复习笔记(七):自下而上语法分析

目录

前言

重点一览

引言

自下而上分析

分析方法

规范规约(最左规约,对应最右推导) 

算符优先分析法

算符优先文法

最左素短语

举个例子

优先关系表的构造 

规范规约与算符优先分析

LR分析法

概述

LR(0)项目集规范族

项目与分类 

状态转换图 

项目的有效性

有效项目集

LR(0)项目集规范族的构造

SLR(1)分析表的构造

本章小结


前言

本复习笔记基于张老师的课堂PPT,供自己期末复习与学弟学妹参考用。


重点一览

电子科技大学编译原理复习笔记(七):自下而上语法分析_第1张图片

LR与SLR 


引言

自下而上分析

输入串出发,寻找归约序列,逐步进行归约,直至开始符号S

方法:采用栈,移进--归约,在移进的过程中,观察栈顶是否形成某个产生式的一个候选。

         1)采用栈,将输入符号移进栈中

         2)如果栈顶(一个或多个符号)形成某个非终结符号的候选式

         3)则进行归约:

                ◼ 将候选式出桟

                ◼ 归约后的非终结符号移进栈

         4)重复进行上述过程,直到输入串扫描结束。

         5)如果栈内只剩下开始符号S,则输入串是文法合法的句子。

电子科技大学编译原理复习笔记(七):自下而上语法分析_第2张图片

语法分析过程可以用分析树形成过程来表示

电子科技大学编译原理复习笔记(七):自下而上语法分析_第3张图片

语法分析过程也可以用语法树修剪过程来表示 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第4张图片

两种冲突:

        ◼ 移进与归约的冲突

        ◼ 归约与归约的冲突

可归约串的不同的定义,形成不同的语法

分析方法

算符优先分析法最左素短语

LR分析法:句柄

规范规约(最左规约,对应最右推导) 

α是文法G的一个句子序列αn,αn-1,…,α0 满足下述条件时称为 规范归约 :
(1)αn = α
(2)α0为文法的开始符, 即α0=S
(3)对 i, 0 n,将 i 句柄 归约 得αi-1
例子:
电子科技大学编译原理复习笔记(七):自下而上语法分析_第5张图片

电子科技大学编译原理复习笔记(七):自下而上语法分析_第6张图片 

注意:按 最左素短语 归约是 结构归约
处于栈顶待归约的最左素短语与对应的产生
式在 结构上一致
即长度一致, 对应的终结符一致
非终结符 可以 不一致

最左素短语归约 的优缺点
优点:
        ◼ 按照最左素短语进行的归约 省略了 A →α的产生式的使用。
        ◼ 其中:α∈V N + (非终结符号串)
缺点:
        ◼ 并不是任何文法都可以按照最左素短语进行归约。
        ◼ 例如:S →AB; A →a; B →b
部分文法可以进行算符优先分析;
所有文法可以进行LR分析。

算符优先分析法

  • 基于终结符号之间的归约顺序进行语法分析
  • 其关键在于比较两个相继出现的终结符的优先级而决定采用的动作。
  • 在算术表达式中,有运算符号的优先级和结合性的规定
  • 算符优先分析法的实质就是仿效表达式的计算过程而设计的

算符优先文法

定义:上下文无关文法G,如果没有形如P→ε 或P→. . .QR. . .的产生式,则称G为算符文法

相邻的2个终结符 之间的优先关系:
(1) a=b
G有P→…ab… 或 P→…aQb…
(2) a
G有P→ …aQ… 且Q=> +b… 或 Q=>+Rb …
(3) a>b
G有P→ …Qb… 且Q=>+ …a 或 Q=>+…aR

说人话:大小写挨着的,大写字母能推出来的小写字母优先级高

算符优先文法:

电子科技大学编译原理复习笔记(七):自下而上语法分析_第7张图片

电子科技大学编译原理复习笔记(七):自下而上语法分析_第8张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第9张图片 

若算符文法G的任何终结符a、b之间的优先关系 至多只有 = 、>、<中的 一个
或者终结符a、b之间没有优先关系
则G称为 算符优先文法
注意
(1)相同终结符的优先关系未必是=
(2)有aa
(3)a、b之间未必一定有优先关系
故= 、<、>不同于关系运算符“等于”、“小于”、“大于”
电子科技大学编译原理复习笔记(七):自下而上语法分析_第10张图片

 

最左素短语

电子科技大学编译原理复习笔记(七):自下而上语法分析_第11张图片 

举个例子

电子科技大学编译原理复习笔记(七):自下而上语法分析_第12张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第13张图片 

优先关系表的构造 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第14张图片

FIRSTVT集求法

电子科技大学编译原理复习笔记(七):自下而上语法分析_第15张图片 

LASTVT集求法

电子科技大学编译原理复习笔记(七):自下而上语法分析_第16张图片 

矩阵规则(了解就行)

电子科技大学编译原理复习笔记(七):自下而上语法分析_第17张图片 

(说白了就是集合里有就打上1) 

规范规约与算符优先分析

1)规范归约
严格按照句柄进行归约, 终结符和非终结符一起考虑
只要栈顶形成句柄,不管句柄内是否包含终结符都要进行归约。
2)算符优先分析
仅研究终结符之间的优先关系,而 不考虑非终结符之间的优先关系
但句柄是由终结符和非终结符一起构成的,所以算符优先分析相对来说是非规范的分析。


LR分析法

概述

LR分析法 从左向右 扫描输入串,分析 栈中符号 向前搜索 K个输入符号以确定是否已在栈顶形成 句柄, 从而决定应采取的动作。一般只考虑K≦1的情况。
“L”是指从左至右扫描输入符号串
“R”是指构造一个最右推导的逆过程
“k”是指为了作出分析决定而向前看的输入符号的个数
 
有action表和goto表
(1)action[s,a]
在状态 s 下, 当前输入符号为 a
应采取的分析动作:  移进, 归约,接收, 出错
a. 移进 s 例如 s3
b. 归约 r 例如 r3
c. 接受 acc
d. 出错 error
(2) goto[s,A]表
状态及非终结符的二维矩阵
在状态 s 下, 针对归约后的符号 A 入栈状态

例子:

电子科技大学编译原理复习笔记(七):自下而上语法分析_第18张图片

电子科技大学编译原理复习笔记(七):自下而上语法分析_第19张图片

LR(0)项目集规范族

活前缀的概念: 规范句型 中的不含句柄之后任何符号的一个 前缀
电子科技大学编译原理复习笔记(七):自下而上语法分析_第20张图片

活前缀与句柄的三种关系 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第21张图片 

例子:

电子科技大学编译原理复习笔记(七):自下而上语法分析_第22张图片 

项目与分类 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第23张图片

电子科技大学编译原理复习笔记(七):自下而上语法分析_第24张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第25张图片 

状态转换图 

项目就是把所有的产生式右边挨个加圆点

电子科技大学编译原理复习笔记(七):自下而上语法分析_第26张图片

电子科技大学编译原理复习笔记(七):自下而上语法分析_第27张图片 

项目的有效性

电子科技大学编译原理复习笔记(七):自下而上语法分析_第28张图片

电子科技大学编译原理复习笔记(七):自下而上语法分析_第29张图片 

有效项目集

电子科技大学编译原理复习笔记(七):自下而上语法分析_第30张图片 

闭包函数closure(I)

电子科技大学编译原理复习笔记(七):自下而上语法分析_第31张图片 

转换函数goto(I, X) 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第32张图片

电子科技大学编译原理复习笔记(七):自下而上语法分析_第33张图片 

LR(0)项目集规范族的构造

电子科技大学编译原理复习笔记(七):自下而上语法分析_第34张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第35张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第36张图片

举个例子:

电子科技大学编译原理复习笔记(七):自下而上语法分析_第37张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第38张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第39张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第40张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第41张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第42张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第43张图片

⭐如果有移进规约冲突,则此文法既不是LR文法也不是SLR文法

SLR(1)分析表的构造

电子科技大学编译原理复习笔记(七):自下而上语法分析_第44张图片

电子科技大学编译原理复习笔记(七):自下而上语法分析_第45张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第46张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第47张图片 

举个例子:

电子科技大学编译原理复习笔记(七):自下而上语法分析_第48张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第49张图片 

SLR分析表构造步骤 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第50张图片

电子科技大学编译原理复习笔记(七):自下而上语法分析_第51张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第52张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第53张图片电子科技大学编译原理复习笔记(七):自下而上语法分析_第54张图片 

电子科技大学编译原理复习笔记(七):自下而上语法分析_第55张图片 


本章小结

重点掌握算符优先分析法、LR与SLR分析法

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