syntactic analysis (lec 4, 5)
语法分析_2
- 在语法分析处理中,FIRST集合、FOLLOW集合均是终结符集
- $G[S]: S\rightarrow eT|RT$
$T\rightarrow DR|\varepsilon$
$R\rightarrow dR|\varepsilon$
$D\rightarrow a|bd$
$FIRST(S)={e,d,a,b,\varepsilon }$ - SELECT集中不可以含有$\varepsilon$
语法分析_3
- 一个句型中的最左直接短语成为该举行的句柄
- 在自顶向下的语法分析方法中,分析的关键是选择候选式
- 若B为非终结符,则$A\rightarrow \alpha \cdot B\beta$为待约项目
- 若B为非终结符,则$A\rightarrow \alpha \cdot$为归约项目
- 设有文法$G[T]:$
$T\rightarrow TF|F$
$F\rightarrow F\uparrow P|P$
$P\rightarrow (T)|a$
该文法句型$TP\uparrow(T*F)$的句柄是$P$ - LR分析表中的动作表(ACTION)是以**终结符和结束符$为例标题的。
- 设有文法$G[T]:$
$T\rightarrow TF|F$
$F\rightarrow F\uparrow P|P$
$P\rightarrow (T)|a$
该文法句型$TF\uparrow (TF)$的句柄是$TF$ - $L\rightarrow \cdot$是可归约项目
语法分析_4
- LR(1)文法合并同心集后若不是LALR(1)文法,则可能存在归约/归约冲突
- 若状态k含有项目”$A\rightarrow \alpha \cdot$”, 且仅当输入符号$a\in FOLLOW(A)$时,才用归约”$A\rightarrow \alpha$”归约的语法分析方法是SLR(1)分析法
- LR(1)文法都是无二义性但可能是左递归的
- 同心集合并可能会产生新的归约/归约冲突
- 在LR(0)的ACTION表中,如果某行中存在标记为”$r_j$”的栏,则该行必定填满”$r_j$”
- 若状态k含有项目”$A\rightarrow \alpha \cdot$”, 对任意非终结符a,都用规则”$A\rightarrow \alpha$”归约的语法分析方法是LR(0)分析法
- 在SLR(1)的ACTION表中,如果某行中存在标记为”$r_j$”的栏,则该行未必填满”$r_j$”
- 编译程序的语法分析器必须输出的信息是语法错误信息
第4讲测验
-
如果文法G是无二义的,则它的任何句子$\alpha$最左推到和最右推导对应的语法树必定相同
-
采用自上而下分析,不必消除右递归
-
识别上下文无关语言的自动机是下推自动机
-
含有公共左因子的文法不是LL(1)的。而2型文法、右递归文法、递归文法是
LL(1)
的。 -
在自上而下的语法分析中,应从文法开始符号开始分析
-
LL
(1
)分析 -
test
LL(1)