【问题标题】:Is Python 3.5's grammar LL(1)?Python 3.5 的语法是 LL(1) 吗?
【发布时间】:2015-07-26 13:21:35
【问题描述】:

我看到 http://matt.might.net/teaching/compilers/spring-2015/ 说 Python 3.4 是 LL(1)

Python 3.5 的语法仍然是 LL(1),所以可以编写递归下降解析器吗?

【问题讨论】:

    标签: python parsing compiler-construction grammar


    【解决方案1】:

    是的。这是一个经过深思熟虑的语言功能,而不仅仅是碰巧出现的情况。 PEP 3099 明确拒绝对 Python 2 -> 3 过渡的任何更改(比任何 3.x -> 3.y 都明显更大的过渡):

    • 解析器不会比 LL(1) 复杂。

      简单胜于复杂。这个想法延伸到解析器。将 Python 的语法限制为 LL(1) 解析器是一种祝福,而不是 诅咒。它给我们戴上手铐,防止我们过火 并以时髦的语法规则结束,就像其他一些动态的 不会被命名的语言,例如 Perl。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多