对于动态语言而言,我们通常不会使用传统意义上的“编译器”,因为动态语言往往是在运行时解释执行的,或者被转换为中间形式(如字节码),再由虚拟机执行。不过,为了性能考虑,现代动态语言的实现常常会包含即时编译器(Just-In-Time Compiler,简称 JIT),用于将频繁执行的代码片段编译成本地机器码。
下面列出了一些动态语言及其相关的开源编译器或解释器:
-
Python
- CPython:这是 Python 的官方参考实现,它使用解释器加部分 JIT 功能。CPython 是用 C 语言写的,其源代码是完全开放的。
- Nuitka:Nuitka 是一个将 Python 程序编译成 C 或 C++ 代码的工具,最终可以生成可执行文件。
- PyPy:PyPy 是一个 Python 解释器和 JIT 编译器,它使用 RPython 作为元语言来构建。PyPy 的主要目标是提高 Python 代码的运行速度。
-
JavaScript
- V8:这是 Google Chrome 和 Node.js 使用的 JavaScript 引擎,它包含一个高性能的即时编译器。V8 是用 C++ 写的,开源并广泛使用。
- SpiderMonkey:这是 Mozilla Firefox 浏览器内置的 JavaScript 引擎,同样包含 JIT 编译功能。
-
Ruby
- YARV (Yet Another Ruby VM):这是 Ruby 1.9 版本开始引入的新虚拟机,旨在提高 Ruby 的性能。YARV 包含了即时编译器。
- <

最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



