Python之父考虑重构Python解释器

Miracle
926
文章
42
评论
2019年7月29日00:05:07 评论 545字阅读1分49秒

近日,Python之父吉多·范罗苏姆发表一篇名为《PEG Parser》的文章,范罗苏姆表示,他正考虑使用PEG Parser 代替现有的类 LL(1) Parser(名为pgen),来重构Python解释器。

范罗苏姆表示,现在的 pgen 限制了Python语法的自由度,使得一些语法难以实现,也让当前的语法树不够整洁,一定程度上影响了语法树的表意,不能最好地体现设计者的意图。

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

针对上述情况,Python解释器处理不了的问题就只能让Python团队不断在代码中加入“特例”来处理这些边缘情况。范罗苏姆称,Python刚出来的时候,内存还是很贵的,LL(1) Parse使用非常合适,但是现在内存价格已经大幅降低,所以用PEG Parser重构Python更加合适。

范罗苏姆表示,用PEG Parser重构Python解释器不会造成语法上的影响,因为底层重构不会影响Python语法。

  • 版权声明: 发表于 2019年7月29日00:05:07
  • 转载注明:https://x1995.cn/5993.html
盘点世界5G大会黑科技,前瞻未来生活 IT相关

盘点世界5G大会黑科技,前瞻未来生活

首届世界5G大会在北京亦创国际会展中心正式拉开帷幕,除了嘉宾大咖们的精彩观点分享之外,此次2万平方米的5G展也成为大会的亮点之一。 在之前的节目中,我们曾带大家逛过2019 MWC、ChinaJoy以...
苹果关闭iOS 13.2.2认证通道 IT相关

苹果关闭iOS 13.2.2认证通道

苹果今天关闭了iOS 13.2.2的认证通道,意味着已经升级更新版本系统的用户无法再降级到此版本。 iOS 13.2.2和iPadOS 13.2.2于11月上旬发布,解决了杀进程在内的问题。不过似乎带...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: