📜  门| GATE CS Mock 2018 |设置 2 |第 40 题

📅  最后修改于: 2021-09-25 06:45:56             🧑  作者: Mango

分别考虑以下语法 G1 和 G2。

语法 – G1:

A1 → A2A3
A2 → A3A1 | b
A3 → A1A1 | a

语法 – G2:

S → AA | 0
A → SS | 1

考虑以下关于上述语法的陈述:

(I): 这个文法不是左递归的,等价于文法——G1:

A1 → A2A3
A2 →  A3A1 | b
A3 → a | bA3A1 | aK | bA3A1K 
k → A1A3A1 | A1A3A1K

(II):这个文法不是左递归的,等价于文法——G2:

S → A A | 0
A → 0S | 1 | 0SK | 1K
K → AS | ASK

(A)只有陈述 (I) 是正确的
(B)只有陈述 (II) 是正确的
(C)陈述 (I) 和 (II) 都正确
(D)陈述 (I) 和 (II) 都不正确答案: (C)
说明:语法 – G1:

A1 → A2A3
A2 → A3A1 | b
A3 → A1A1 | a

将 A3 → A1 A1 替换为 A3 → A2A3A1,然后将其替换为 A3 → A3A1A3A1 和 A3 → bA3A1。

消除上面的直接左递归,给出:

A3 → a | bA3A1 | aK | b A3A1K 
k → A1 A3 A1 | A1 A3 A1K

产生的语法是:

A1 → A2A3
A2 →  A3A1 | b
A3 → a | bA3A1 | aK | bA3A1K 
k → A1A3A1 | A1A3A1K

语法 – G2:

S → AA | 0
A → SS | 1

考虑排序 S,A,我们得到:

S → AA | 0
A → AAS | 0S | 1

并去除直接左递归,我们得到

S → A A | 0
A → 0S | 1 | 0SK | 1K
K → AS | ASK

因此,陈述(I)和(II)都是正确的。
这个问题的测验