📜  门| GATE CS Mock 2018年|套装2 |第40章

📅  最后修改于: 2021-06-28 21:45:44             🧑  作者: 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)都是正确的。
这个问题的测验