北方工业大学编译原理第4章习题.docVIP

  • 106
  • 0
  • 约3.32千字
  • 约 14页
  • 2020-06-08 发布于江苏
  • 举报
第四章 语法分析 自上而下分析 4.1 语法分析器的功能 4.2 自上而下分析面临的问题 4.3 LL(1)分析法 4.4 递归下降分析程序构造 4.5 预测分析程序 4.1 考虑下面文法G[S] S→Aa A→BB B→Sb︱c 请消除该文法的左递归。 解:非终结符排序为S,A,B,S和A的产生式都不含直接左递归。 将S代入到B的候选后,B的产生式为: B→Aab︱c 把A代入到B的候选后,B的产生式为: B→BBab︱c 消除B的直接左递归,B的产生式为: B→cB? B?→BabB?︱ε 消除左递归后的文法为: S→Aa S→Aa A→BB 或者 A→BB B→cB? B→cB? B?→BabB?︱ε B?→cB?abB?︱ε 4.2 试消除下面文法G[A] 中的左递归,并提取公共左因子, 判断改写后的文法是否为LL(1)文法? A→aABe∣a B→Bb∣d 解: (1)首先消除左递归 A→aABe∣a B →dB? B? →bB? | ε (2)提取公共左因子 A → aA? A? → ABe | ε B → dB? B? →bB? | ε (3)该文法不含左递归,而且每一个 非终结符的各个产生式的候选首符集两 两不相交。 FIRST(A)= {a} FOLLOW(A)={d, #} FIRST (A?) = { ε, a} FOLLOW(A?)={d,

文档评论(0)

1亿VIP精品文档

相关文档