证明以下文法是 LR(1) 的\nS → A a |b A c |B c | b B a\nA → d\nB → d
解决方案
步骤1 - 构造扩充文法
(0) S′ → S
(1) S → A a
(2) S → b A c
(3) S → B c
(4) S → b B a
(5) A → d
(6) B → d
步骤2 - 查找闭包和 goto。构造 LR(1) 项目集。这里所有框都表示新状态。

LR(1) 分析表

因此,LR(1) 分析表没有多个条目。文法是 LR(1) 的。
LR(1) 或规范 LR 分析表的构造
输入 - 扩充文法 G’。
输出 - 规范 LR(1) 分析表
方法
填充“移进”条目 (s) - 应用 CLR 分析表构造的规则 (2a)。
考虑 I3 = goto(I0, c)
∴ Action[0, c] = shift 3
∴ 在第 0 行和第 c 列前面写入 s3。
类似地,考虑另一个条目。
即,I7 = goto(I2, d)
∴ Action[2, d] = shift 7
∴ 在第 2 行和第 d 列前面写入 s7。类似地,移进的其他条目填充到 Action 表中。
填充“归约”条目 (r)
应用 CLR 分析表构造的规则 (2b)。考虑形如 A → α ∙ , a 的产生式
例如,考虑
I4 = goto(I0, d)
C → d ∙, c | d
这里,C → d ∙, c | d 具有 A → α ∙ , a 的形式。因此,将 Action[4, c] 和 Action[4, d] 设置为 r3。
因为 C → d 是给定问题中第 3 个产生式。
∴ 在第 4 行和第 c 列和 d 列前面写入 r3。
因为 c、d 在产生式 C → d ∙ , c | d 中是前瞻符号。
考虑另一个例子
I9 = goto(I9, C)
C → c C ∙, $
因为 C → c C 是给定问题中的产生式 (2)。
∴ 在第 9 行和第 $ 列前面写入 r2,因为 $ 是附加到产生式的先行符号。
∴ Action[9, $] = r2
类似地,将所有归约条目填充到分析表中。
goto 条目的填充
在 goto 中,只有非终结符以列的形式出现。
例如
I8 = goto(I3, C)
∴ Action[3, C] = 8
即,在第 3 行和第 C 列前面写入 8。
“接受”条目的填充
应用 CLR 分析表的规则 (2c)
查找包含形如 S′ → S ∙, $ 的产生式的状态
∴ 它是状态 I1
∴ 在第 1 行和第 $ 列前面写入 accept。

- 相关文章
- 找出以下文法的 FIRST 和 FOLLOW。\nS → A a A | B b B\nA → b B\nB → ε
- $\triangle A B C$ 是一个等腰三角形,使得 $A B=A C$,$A D \perp B C$a) 证明 $\triangle A B D \cong \triangle A C D$b) 证明 $\angle B=\angle C$c) D 是 BC 的中点吗?\n
- 为以下文法构造 SLR(1) 分析表\nS → x A y |x B y |x A z\nA → q s | q\nB → q
- 在 \( \triangle A B C, A D \perp B C \) 和 \( A D^{2}=B D . C D \) 中。证明 \( \angle B A C=90^o \)。"\n
- 在四边形 \( A B C D, \angle B=90^{\circ}, A D^{2}=A B^{2}+B C^{2}+C D^{2}, \) 中,证明 $\angle A C D=90^o$。
- 证明\( \frac{a+b+c}{a^{-1} b^{-1}+b^{-1} c^{-1}+c^{-1} a^{-1}}=a b c \)
- ABCD 是一个四边形,其中 \( A D=B C \) 和 \( \angle D A B=\angle C B A \)。证明。(i) \( \triangle A B D \cong \triangle B A C \)(ii) \( B D=A C \)(iii) $\angle ABD=\angle BAC$ "\n
- 顶点为 \( (a, b+c),(b, c+a) \) 和 \( (c, a+b) \) 的三角形的面积是(A) \( (a+b+c)^{2} \)(B) 0(C) \( a+b+c \)(D) \( a b c \)
- 验证对于以下每个 $a$、$b$ 和 $c$ 的值,$a ÷ (b+c) ≠ (a ÷ b) + (a ÷ c)$。(a) $a=12$、$b=- 4$、$c=2$(b) $a=(-10)$、$b = 1$、$c = 1$
- 证明:\( \left(x^{a-b}\right)^{a+b}\left(x^{b-c}\right)^{b+c}\left(x^{c-a}\right)^{c+a}=1 \)
- 如果 \( a b c=1 \),证明 \( \frac{1}{1+a+b^{-1}}+\frac{1}{1+b+c^{-1}}+\frac{1}{1+c+a^{-1}}=1 \)
- \( A B \) 是直径,\( A C \) 是以 \( O \) 为圆心的圆的弦,使得 \( \angle B A C=30^{\circ} \)。在 \( C \) 处的切线与 \( A B \) 相交于一点 \( D \)。证明 \( B C=B D \)。
- 以下哪些是接触力?A. 摩擦力 B. 万有引力C. 磁力D. 肌肉力$(a)$. A 和 B$(b)$. B 和 C $(c)$. A 和 D$(d)$. B 和 D
- 计算以下各式的和:$a-b+a b, b-c+b c, c-a+a c$
- 钠的化学符号是(a) So(b) Sd(c) NA(d) Na
开启你的 职业生涯
通过完成课程获得认证
立即开始