现有的 JavaScript 实现概览

严格来说,JavaScript 其实指的是 Netscape/Mozilla 对 ECMAScript 标准的实现,但考虑到习惯因素,这里就不咬文嚼字了。

目前仍然在开发中的 JavaScript (ECMAScript) 开放源代码的实现包括:

JavaScriptCore

Apple 开发的 JavaScript 引擎,以 Mac OS X Framework 的形式提供,与 WebCore 一同结合而成 WebKit Framework。JavaScript 是基于 KDE 计划的 KJS 库和 PCRE 正则表达式库开发的。

特点:

  • 强大的垃圾回收器
  • 使用 C++ 开发
  • 基于标准 C/C++ 库和 ICU (IBM 的 Unicode 库)
  • Mac OS X 程序调用它比较方便
  • 采用创建语法树并执行的形式,而不是生成 bytecode 再执行
  • 提供 C, Java (JNI), Objective-C, Qt 的 binding
  • 跨平台,可在 win32 下使用

网站:

KDE 提供了 kjsembed 库,也是基于 KJS 的,但依赖 Qt (和 KDE)。

SEE

是 Simple ECMAScript Engine 的缩写,提供了 ECMAScript 的解析器和运行时环境。提供到 JavaScript 1.5 (ECMAScript 第 3 版) 的兼容性。

特点:

  • 不直接提供 DOM,但 API 设计时是考虑到了支持 DOM 绑定的
  • 关注正确性与可移植性

网站:

  • SEE
  • 提供代码的 snapshot, Subversion, 邮件列表和 Bugzilla

文档:

Using SEE

DMDScript

Digital Mars 的 ECMAScript 实现,作者是 D 语言的发明者。

特点:

  • 声称要比其他实现都快
  • 有 D 语言实现也有 C++ 语言实现
  • 混合 License (开源软件可以使用 GPL)
  • 加上了 Microsoft Jscript 扩展

网站:

SpiderMonkey

Mozilla 的 JavaScript 参考实现,支持到 JavaScript 1.7。

特点:

  • 使用者数量众多,对 JavaScript 和语言扩展支持最快
  • 专门为单独 (standalone) 编译考虑,不需要依赖任何其他的 mozilla 软件/库
  • 要保证线程安全则需要 NSPR 库
  • 向 Adobe 贡献的 tamarin 引擎转移的步骤进行很慢

网站:

Author: jjgod

A software engineer from China, working on text rendering for a fruit company. Interested in typography and science fiction.

Leave a Reply

Your email address will not be published. Required fields are marked *