青岛理工大学计算机工程学院编译原理课件 第4章(1).pptVIP

  • 5
  • 0
  • 约8.49千字
  • 约 68页
  • 2019-05-13 发布于广东
  • 举报

青岛理工大学计算机工程学院编译原理课件 第4章(1).ppt

例2 设有文法G[S]: S→ ad | Ae A→ aS | bA 将A的两条规则代入非终结符S的规则中 A→ aS | bA S→ ad | aSe | bAe 4.2.3 某些非LL(1)文法到LL(1)文法的改写方法 对S提取公共左因子得 S→ bAe | aS 改写后的文法是LL(1)文法。 S → d | Se A→ aS | bA A→ aS | bA S→ ad | aSe | bAe 4.2.3 某些非LL(1)文法到LL(1)文法的改写方法 应当指出的是并非一切非LL(1)文法都能改写为LL(1)文法。 例如,对于文法 S→ Ae | Bd A → aAe | b B→ aBd | b ∴ 该文法不为LL(1)文法 ∵ SELECT(S→Ae)∩SELECT(S→Bd) ={ a, b }∩{ a, b }≠Φ 4.2.3 某些非LL(1)文法到LL(1)文法的改写方法 对S提取公共左因子后,得 对于S的两条规则, 可先将非终结符A、B用相应规则右部进行替换,我们得到 S→ aAee | be | aBdd | bd A → aAe | b B→ aBd | b 4.2.3 某些非LL(1)文法到LL(1)文法的改写方法 显然,它仍不是一个LL(1)文法,且不难看出无论将上述步骤重复多少次, 都无法将它改写为LL(1)文法。 S→ aS

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档