📜  门| GATE-CS-2017(套装2)|第 40 题

📅  最后修改于: 2021-09-25 04:59:42             🧑  作者: 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
(乙)
(C)
(四)答案: (C)
解释:我们知道左递归:A -> Aα/β
去掉左递归后可以写成

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

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

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

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