- 0
- 0
- 约3.31千字
- 约 63页
- 2021-11-26 发布于广东
- 举报
S.P;第4章 语法分析;4.1 语法分析的任务
4.2 自顶向下分析法
4.3 自底向上分析法
4.4 算符优先分析法
4.5 LR分析法
;任务:根据文法规则,从源程序单词符号串中识别出语法
成分,并进行语法检查。;+;4.2 自顶向下分析法;【例】
α=acb
G[S]:
S→aAb
A→cd|c
;3.选用A的右部符号串匹配输入串
A有两个右部,选第一个
;自顶向下分析方法分类 ;1.回溯问题;;效率低的原因;消除回溯的途径:;A→αβ1|αβ2|…|αβn;2.左递归问题;(1)消除直接左递归;【例】文法G[E]:
E→E+T| E-T|T
T→T*F| T/F|F
F→(E)|i
;【例】 条件语句→if布尔表达式 语句
| if布尔表达式 语句;else 语句 ;方法二:将左递归规则改为右递归规则;同一非终结符有多个候选式时 ;LL的含义
-自左向右扫描分析输入符号串
-从识别符号开始生成句子的最左推导
LL(1):向前看一个输入符号,便能唯一确定当前应选择的规则
LL(k):向前看k个输入符号,才能唯一确定当前应选择的规则;同一非终结符有多个候选式时 ;LL(1)文法的引入;LL(1)文法的引入;LL(1)文法的判别 ;1. FIRST集 ;(1)若α=aα′,且a∈VT ,则a∈FIRST(α);
例: FIRST(i)={i}
FIRST(+TE)={+};① 将FIRST(X1)中的一切非ε的终结符加进FIRST(α);
② 若ε∈FIRST(X1),则将FIRST(X2)中的一切非ε的终结符加进FIRST(α);
③ 若ε∈FIRST(X1)且ε∈FIRST(X2),则将FIRST(X3)中的一切非ε的终结符加进FIRST(α);
④ 依此类推,若对于一切1≤i≤n,ε∈FIRST(Xi),则将ε加进FIRST(α)。;FIRST(F)={(,i}
FIRST(Tˊ)={*,ε}
FIRST(T)=FIRST(F)-{ε}={(,i}
FIRST(Eˊ)={+,ε}
FIRST(E)= FIRST(T)-{ε}={(,i}
FIRST(TEˊ)=FIRST(T)-{ε}={(,i}
FIRST(+TEˊ)={+} FIRST(ε)={ε}
FIRST(FTˊ)= FIRST(F)-{ε}={(,i}
FIRST(*FTˊ) ={*}
FIRST((E))={(}
FIRST(i)={i};2. FOLLOW集 ;构造集合FOLLOW的算法(P67);【例】 G[E]
E→TE
E→+TE|?
T→FT
T→*FT|?
F→(E)|i;FOLLOW(S)={$};FOLLOW(A) = FOLLOW(S)∪{*} = {*, $};FOLLOW(A?)=FOLLOW(A) = {*, $},FOLLOW(B) = FIRST(A?) ∪ FOLLOW(A?) ∪ FOLLOW(A)={i, *, $};FOLLOW(B?)=FOLLOW(B)={i, *, $};;3.SELECT 集合(P67);若一个文法满足以下条件,则称该文法G???LL(1)文法:;例 文法G[S]
改写成简单产生式
1 S→ A
2 A→ BA?
3 A?→ iBA?
4 A?→ ?
5 B→ CB?
6 B?→ +CB?
7 B?→ ?
8 C → ) A*
9 C → (
因为:
select(3)∩select(4)=?
select(6)∩select(7)=?
select(8)∩select(9)=?
所以该文法是LL(1)文法;例文法G[E]
改写成简单产生式
1 E→E+T
2 E→T
3 T→T*F
4 T→F
5 F→(E)
6 F→id
消除左递归:
1 E→TE’
2 E’→+TE’
3 E’→ ?
4 T→FT’
5 T’→*FT’
6 T’→ ?
7 F→(E)
8 F→id;5.某些非LL(1)文法到LL(1)文法的等价转换 ;S→aSb|A
A→bA
A→Ac|Bc
B→aB
B→aB|?;4.2.4 递归下降分析程序及其设计;一般情况下,用非终结符表示过程的名字,过程体则按产生式右部符号串顺序编写。每匹配一个终结符,则再读入下一个符号,对于产生式右部的每一个非终结符,则调用相应的过程。当一个非终结符对应多个侯选式时,则过程体将按可选集来决定选用哪个侯选式。在递归下降法中,递归子程序数等于文法中的非终结符个数。
;递归子程序的设计方法; 框图设计 ;2021/6/30Wednesday, June 30, 2021
您可能关注的文档
- [工学]第4章 语法制导的翻译.ppt
- [工学]第4章 放大电路中的反馈.ppt
- [工学]第4章 基础特征.ppt
- [工学]第4章工程项目招标与投标.ppt
- [工学]第5章 时域离散系统的网络结构.ppt
- [工学]第5章 安全价值工程方法.ppt
- [工学]第5章 自动控制仪表.ppt
- [工学]第5章_ 相平衡热力学.ppt
- [工学]第6章 反馈放大电路.ppt
- 2026届辽宁沈阳高三上学期一模物理试卷+答案.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测生物试卷+答案.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测语文试卷+答案.doc
- 四川省绵阳南山中学实验学校2025-2026学年高三上学期1月月考数学含答案.doc
- 2026届辽宁省大连市高三上学期双基考试物理试卷+答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测化学含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测生物含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测英语含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测政治含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试化学含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试生物含答案.doc
原创力文档

文档评论(0)