Python之父打算重构Python解释器​​​​​​​ 让Python语法更自由

发布时间:2019-07-26 09:44 编辑:wenxiang 来源:系统族
7 月 22 日,Python 之父 Guido 在 Medium 上发表了他的第一篇博文《PEG Parser》。在该文中,Guido 说他正在考虑使用 PEG Parser 代替现有的类 LL(1) Parser(名为pgen),来重构 Python 解释器。原因是现在的 pgen 限制了 Python 语法的自由度,使得一些语法难以实现,也让当前的语法树不够整洁,一定程度上影响了语法树的表意,不能最好地体现设计者的意图。


那 PEG Parser 和现有的 LL(1) Parser 有什么区别呢?可以这样简单地理解,PEG 语法解释器在解析语法的时候,会一次性加载全部代码,所以解释器可以根据任意位置的符号来判断语法的语义。而目前的 LL(1) Parse 解析语法的时候只会向前检测一个符号,来猜测语义,导致部分语法有二义性的表现,进而限制了Python语言的语法定义方式。当然,一次性加载全部代码,也意味着 PEG Parser 需要更大的内存来运行。


说当前解释器限制了 Python 的语法实现,很多同学可能没有明显的感受,所以 Guido 又举了一个例子:在 Python3.8 之前,下面这段代码都是可以正常运行的,而不像大家直观感受的第二行代码应该报错。



 

这就是 Python 解释器处理不了带来的后遗症。这也导致 Python 团队不得不在代码里增加一些不受欢迎的“特例”来处理这些边缘情况。
 

Guido 说,Python 刚出现的时候,内存还很贵,使用 LL(1) Parser 是非常合理的。不过在现在这个内存以 G 为单位的时代,解释器多增加几百k甚至上兆的内存消耗,已经根本不算什么了。所以是时候使用更理想的 PEG Parser 来重构 Python 解释器了。


最后,也是大家最关心的问题,这个重构会对 Python 语言的开发者造成什么影响呢?Guido 说,应该是没有影响的,底层重构不会影响 Python 的语法。


看来,不管是多么成功的项目,也存在着因为时代的限制而遗留的一些令人不快的问题,完美的设计和实现,从来不是一蹴而就的呀~


相关阅读 更多+
相关专题 更多+
  • 女孩子最爱玩的游戏大全
  • 有什么适合女孩子喜欢玩的游戏
  • 好玩的守护游戏有哪些
女孩子最爱玩的游戏大全
女孩子最爱玩的游戏大全

有什么适合女孩子喜欢玩的游戏推荐?必玩的女孩游戏盘点越来越多可爱的女生也投入到了游戏的怀抱中呢。最近,有一位精灵少女向小编发问,说要找一款适合女性玩家的游戏,今天,小编就要为你们推荐一些女孩子最爱玩的游戏大全,快来一起探索吧。

有什么适合女孩子喜欢玩的游戏
有什么适合女孩子喜欢玩的游戏

有什么适合女孩子喜欢玩的游戏?女孩子最爱玩的游戏到底有哪一些呢,在说到游戏时,人们总会觉得这些应该都是男孩子的最爱,喜欢玩游戏的女孩子并不是很多。可是这些年来也会有很多不一样的游戏,其中有一部分游戏就可以满足女孩子的需求,小编给大家整理了女生比较爱玩的游戏推荐。

好玩的守护游戏有哪些
好玩的守护游戏有哪些

好玩的守护游戏有哪些?一些守护类游戏中,玩家可以自由选择想要成为的角色,面对敌人的袭击,玩家需要不断的提升自身的能力,这样才可以成功消灭,守护我们的家园或者我们珍贵的事物,下面小编给大家整理了热门的守护游戏大全,大家一起来下载体验吧。

软件推荐 更多+