五、Python 语言和语法

编译器的功能是将一种语言转换为另一种语言。你可以把编译器想象成一个翻译,你会雇一个翻译听你用英语说话,然后用中文重复你的话。

为了完成这个翻译任务,翻译家必须理解原始语言和目标语言的语法结构。

有些编译器会将原始语言翻译成系统可以直接执行的底层机器码,而另外一些编译器则会将原始语言翻译成可以被虚拟机执行的中间语言。

选择编译器的一个权衡点是要考虑系统可移植性要求。JavaNET 会将原始语言编译成一种中间语言以便编译后的代码能够在多个系统架构中平滑迁移。C/C++GOPascal 会将原始语言编译成一个可执行二进制文件,这个二进制文件是面向被编译的系统平台所构建的。

Python 应用通常以源码的形式发布,这是因为 Python 解释器的目标就是转换和执行源码能一步完成。CPython runtime 会在首次执行你的代码时进行编译,但这一步是对普通用户不可见的。

Python 代码不会被编译成机器码而是被编译成称为 bytecode 的底层中间语言。此类字节码被存放于 .pyc 文件中以便下次执行时从缓存中直接读取。如果你在没有改变源码的情况下再次运行你的 Python 应用,那么你会发现第二次的运行效率要好于第一次。产生这种情况的根本原因是第二次运行会加载已经编译过的字节码而不是每次运行都重新编译。

Last updated