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 的语法。


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


新游上线
相关专题 更多+
  • 海量素材的手机美颜软件合集
  • 稳定可靠的金融理财软件合集
  • 热门的生活购物软件合集
海量素材的手机美颜软件合集
海量素材的手机美颜软件合集

每个手机美颜软件的特点都是不同的,有的是滤镜效果比较多,有的是操作便捷一键生成,而今天小编给大家推荐的是有着海量素材的手机美颜软件,用户拍照完搭配起来就会非常的时尚好看,而且可以随你选择。喜欢的小伙伴抓紧时间前来下载试试吧。

稳定可靠的金融理财软件合集
稳定可靠的金融理财软件合集

大家在选择金融理财软件的时候都十分谨慎,不可能直接就进行投注,要观摩几天,看看它的行情是怎么样的,不然就有可能花费时间又亏损金钱,今天小编呢,给大家带来的就是稳定可靠的金融理财软件,让你随时随地掌握证券行情、了解财经资讯、进行各种证券交易等等,还有诸多惊喜,有兴趣的朋友快来下载吧。

热门的生活购物软件合集
热门的生活购物软件合集

经济水平的提高,让人们的生活方式发生了翻天覆地的变化,想要买东西的话,只需要一个软件即可了,我们称这种方式为网购。网购方式的流行衍生出了许多生活购物软件,那么时下最热门的生活购物软件有哪些?快跟着小编一起来看看吧。

猜你喜欢