WEB开发网
开发学院软件开发Python 可爱的 Python:Python实现内幕 阅读

可爱的 Python:Python实现内幕

 2007-03-29 12:04:17 来源:WEB开发网   
核心提示: Skaller:建造 Vyper 有两个原因:首先,我喜欢 Python,可爱的 Python:Python实现内幕(3),特别是它的简单性,但我不喜欢它缺乏范围确定性,有意思的是,下一种实现,凡事都需要做大量更改来取得进展,因此我决定在保留与 Python 兼容性的同时
Skaller:建造 Vyper 有两个原因:首先,我喜欢 Python,特别是它的简单性。但我不喜欢它缺乏范围确定性,凡事都需要做大量更改来取得进展。因此我决定在保留与 Python 兼容性的同时,通过建造高级得多的编程语言,并在其中建造函数性编程语言的某些概念来改正这些问题。

第二个原因是性能。我有一个称之为 interscript 的主要 Python 程序,一个有读写能力的编程 (LP) 工具,它不仅受到 Python 中缺乏良好结构(如上所述),而且还受性能问题的困扰。

Mertz:既然文字编程是创建 Vyper 的一个动机,您是否能简单介绍一下什么是有读写能力的编程,我想这样对读者会有所帮助。

Skaller:它的构思是不需要为程序记录文档(在编程后),而是编写 包含程序的文档。[它]由 Donald Knuth 发明。

interscript 独立于排字和编程语言,可以通过以 Python 编写的任意可执行代码 在文档中扩展。即,尽管有大量预构建的构造可以满足“日常”需要,但一个人可以随意 生成代码和文档。

但除非 LP 很快,否则它永远不能作为主流技术接纳。我花费了许多工作使它变得快一些,但结果,Python 还是无法快到执行所需要的操作:解释语言中逐个字符地处理字符串就是无法快起来。

所以想要构建一个 Python 编译器,至少它能生成可以优化这种代码的机器二进制文件。这是某些 Vyper 扩展的一个原因,从而使优化成为可能。

我从来没有编写过编译器;构思是编写一个解释器,可以在编译时装入所有程序模块,然后将产生的字典 冻结 到可执行二进制文件中。现在的 Vyper 就是这样的解释器,我在扩展语言的过程中找到了很多乐趣,但我找到了一份编写编译器的带薪工作,现在就没有时间继续这一工作了。

Mertz:Vyper 的一个特别新颖的特性是其以 Ocaml 的实现。许多读者可能认为编译器/解释器是以 C 实现的(与本质接近);或者对于已定义的机器,编译器可以以 Python 自身实现。为什么使用 Ocaml?

Skaller:Ocaml 直接生成机器代码。相对于 C 来说,它运行得相当不错,对于某些工作甚至会更快。它还带有一个无用信息收集器。Ocaml 是一种高级语言,与 C、C++、Python 或大多数其它所谓的“高级”语言不一样。

Ocaml 和 Python 一样,是混合的函数性/命令语言。Vyper 比 Python 更多地强调 Python 的函数性方面。它纠正了一些明显的设计缺陷,特别是缺少词法范围确定的问题。

在实际中,函数性编程后面有强大的理论支持,而对于命令编程则没有任何理论支持。这意味着从开发角度来说,函数性编程语言比任何命令编程语言通常要好得多,但往往缺乏与基本硬件规则体系结构相近的系统性能。

有意思的是,下一种实现,尽管来自不同角度,在某些方面要胜过 Vyper:

上一页  1 2 3 4  下一页

Tags:可爱 Python Python

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接