执行模型变体——未来的可能性?

未匹配的标注

最后,注意到这里简述的运行时执行模型其实只是 Python 当前实现的人造产物(实现细节)而非语言本身。比如,一个完全的,传统的用于翻译 Python 源码为机器码的编译器可能会在本书的流行期内出现(虽然事实上在过去二十年没有一本书有过这样的情况,所以这种可能似乎不太可能!)

新字节码格式和实现变体也可以在未来被采用。比如:

  • 正在进行中的 Parrot 项目旨在为各种编程语言(包括 Python)提供一个通用的字节码,虚拟机和优化技术。Python 自己的 PVM 运行 Python 代码的效率要高于 Parrot(如在一个软件会议上,被一个 Pie 挑战展示得众所周知——在网上搜索来获取细节),但不清楚关于 Python,Parrot 会如何的演化。参见其官网或整个网络获取细节。

  • 之前的 Unladen Swallow 项目——一个被 Google 工程师开发的开源项目——努力寻求让标准 Python 变快至少 5 倍,且快到足以在许多情况下代替 C 语言。这是 CPython(特别是 Python2.6)的一个优化分支,通过添加一个 JIT 到标准 Python,旨在兼容却更快。在我在 2012 年写下这些文字时,这个项目似乎已经快终结了(从它在 Python PEP 中被撤销(的情况)看,它即将死亡)。然而,它得到的经验教训可以以其他形式被利用起来;在网上搜索突破性进展。

虽然未来实现的方案可能在一定程度上更改 Python 的运行时结构,但字节码编译器看起来很可能将在未来一段时间继续成为标准。字节码的可移植性和运行时灵活性是许多 Python 系统的重要特性。而且,添加类型约束声明来支持静态编译很可能会破坏许多灵活性、简洁性、简单性和 Python 编程的整体原则。由于 Python 的高度动态特性,任何未来实现将很可能保留当前 PVM 的许多实现和设计(注:因为当前的 PVM 处理这种高度动态特性是如此优秀,如果随便修改,很可能还达不到现有效果)。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 查看所有版本


暂无话题~