【发布时间】: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
我看到 http://matt.might.net/teaching/compilers/spring-2015/ 说 Python 3.4 是 LL(1)
Python 3.5 的语法仍然是 LL(1),所以可以编写递归下降解析器吗?
【问题讨论】:
标签: python parsing compiler-construction grammar
是的。这是一个经过深思熟虑的语言功能,而不仅仅是碰巧出现的情况。 PEP 3099 明确拒绝对 Python 2 -> 3 过渡的任何更改(比任何 3.x -> 3.y 都明显更大的过渡):
解析器不会比 LL(1) 复杂。
简单胜于复杂。这个想法延伸到解析器。将 Python 的语法限制为 LL(1) 解析器是一种祝福,而不是 诅咒。它给我们戴上手铐,防止我们过火 并以时髦的语法规则结束,就像其他一些动态的 不会被命名的语言,例如 Perl。
【讨论】: