找到以下语法的 FIRST & FOLLOW。S → A → A | B b B A → b B B → ε

解决方案

FIRST 的计算

  • A → B B

∴ FIRST(A)= {b}

  • 乙→ε

∴ FIRST(B)= {ε}

  • S → A a A

FIRST 规则 (4) 的应用

即,比较 S → A a A 与 X → Y 1 Y 2 Y 3

∴第一 (S) = 第一 (A a A) = 第一 (A) = {b}

∴ FIRST(S)= {b}

  • S → B b B

∵ FIRST (B) 包含 ε 或 B 导出 ε ∴ 应用规则 (4c)

∴第一(S)=第一(B到B)

∴ FIRST (S) = FIRST (B) − {ε} ∪ FIRST(bB)

∴ FIRST (S) = FIRST (B) − {ε} ∪ {b} = {ε} − {ε} ∪ {b} = {b}

∴第一个 (A) = {b}

第一 (B) = {ε}

第一 (S) = {b}

FOLLOW的计算

应用规则 (1) FOLLOW FOLLOW (S) ={$} .....(1)

  • S → A a A

应用规则 (2) 遵循

比较 S → A a A 与 A → α B β

S →εA一种A
A →ΑBβ

∵ 第一 (β) = 第一 (aA) = {a}

不包含ε

∴FOLLOW规则2(a)

FOLLOW(A) = {FIRST (a A)} = {a}

∴ FOLLOW(A)= {a} ……………。(2)

应用 FOLLOW 规则 (3)

比较 S → A a A 与 A → α B β

S →一种a一种
A →Α

∴ FOLLOW(A)= { FOLLOW(S)} ……………………… (3)

  • S → B b B

应用规则 (2) 遵循

比较 S → B b B 与 A → α B β

S →BB
A →ΑBβ

A = S,

α = ε

乙 = 乙

β = bB

∵ 第一 (β) = 第一 (bB) = {b}

不包含ε

∴FOLLOW规则2(a)

FOLLOW(B) = {第一(b B)}

∴ FOLLOW(B)= {b} ……………。(4)

应用 FOLLOW 规则 (3)

比较 S → B a B 与 A → α B

S →a
A →Α

∴ FOLLOW(B)= { FOLLOW(S)} ……………………… (5)

  • A → bB

规则 (2) 不能适用。因为我们不能将 A → b B 与 A → α B β 匹配

如果我们比较 α = b, B = B, β = ε。

在这里,β 将变为 ε,这是不可能的

应用 FOLLOW 规则 (3)

比较 A → b B 与 A → α B

A →B
A →α

∴ FOLLOW(B)= { FOLLOW(A)} ……………………… (6)

从陈述 (1) 到 (6)

FOLLOW(S) = {$} (1)

FOLLOW(A) = {a} (2)

FOLLOW(A) = {关注(S)}(3)

FOLLOW(B) = {b} (4)

FOLLOW(B)= { FOLLOW(S)} (5)

FOLLOW(B) = {跟随 (A)} (6)

∴ FOLLOW(S)= {$}

从 (1), (2), (3)

FOLLOW(A) = {$, a}

从 (4), (5), (6)

FOLLOW(B) = {$, a, b}

以上是 找到以下语法的 FIRST & FOLLOW。S → A → A | B b B A → b B B → ε 的全部内容, 来源链接: utcz.com/z/327387.html

回到顶部