📜  门| GATE-CS-2017(Set 2)|第40章

📅  最后修改于: 2021-06-29 01:30:56             🧑  作者: Mango

考虑以下表达语法G。

E -> E - T | T
T -> T + F | F
F -> (E) | id

以下哪个语法不是递归的,而是等同于G的。

A)
E -> E - T | T
T -> T + F | F
F -> (E) | id

B)
E -> TE'
E' -> -TE' | ε
T -> T + F | F
F -> (E) | id

C)
E -> TX
X -> -TX | ε
T -> FY
Y -> +FY | ε
F -> (E) | id

D)
E -> TX | (TX)
X -> -TX | +TX | ε
T -> id

(A) A
(B) B
(C) C
(D) D答案: (C)
说明:我们知道左递归:A->Aα/β
删除左递归后,可以写成

A->βA’
A’->αA’/ε

因此对于:E-> E- T / T
α= -T,β= T。从而消除左递归后的新产品
是E-> TE’和E’->-TE’/ε

T-> FT’和T’-> + FT’/ε

F->(E)/ id。
这个问题的测验