2000 https://www.docin.com/p-49445805.html 2009~2010 https://www.doc88.com/p-3147137767954.html?r=1

课后答案 https://www.doc88.com/p-1127198788108.html

基本技能

消除左递归

题型

LL (1) 语法分析

有如下文法 $G [S]$:

$$ \begin{align} E & \to E + T \mid T \\ T & \to (E) \mid a \end{align} $$

(1) 判断该文法是否为 LL (1) 文法,说明原因。若不是, 做 (2), 若是, 做 (3)。 (2) 是否可以将其改造为 LL(1)文法? 如果可以,给出改造过程和结果,继续做(3); 如果不可以,说明理由。 (3) 构造文法中非终结符号的 FIRST 和 FOLLOW 集合。 (4) 构造文法的 LL (1) 分析表。

(1)不是,因为有左递归 $E \to E + T$

考虑文法 $G [S]$:

$$ \begin{align} S &\to baA\mid \varepsilon \\ A &\to Sbb\mid a \end{align} $$

(1)证明其不是 LL (1) 文法。 (2)变换为等价 LL (1) 文法 $G'$。 (3)计算 First、Follow Set。 (4)构造 LL (1) 分析表。

有如下文法 $G [E]$:

$$ \begin{align} E&\to (L) \mid a \\ L&\to L,E \mid E \end{align} $$

(1) 给出该文法的拓广文法; (2) 构造其 LR (1) 项目集规范族及识别其所有活前缀的 DFA; (3)构造该文法的 LR (1) 分析表; (4)判断该文法是否为 LALR (1) 文法,说明理由。