现有的 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 下使用
网站:
- The WebKit Open Source Project
- Trac
- 提供代码 (Subversion), Bugzilla
KDE 提供了 kjsembed 库,也是基于 KJS 的,但依赖 Qt (和 KDE)。
SEE
是 Simple ECMAScript Engine 的缩写,提供了 ECMAScript 的解析器和运行时环境。提供到 JavaScript 1.5 (ECMAScript 第 3 版) 的兼容性。
特点:
- 不直接提供 DOM,但 API 设计时是考虑到了支持 DOM 绑定的
- 关注正确性与可移植性
网站:
- SEE
- 提供代码的 snapshot, Subversion, 邮件列表和 Bugzilla
文档:
DMDScript
Digital Mars 的 ECMAScript 实现,作者是 D 语言的发明者。
特点:
- 声称要比其他实现都快
- 有 D 语言实现也有 C++ 语言实现
- 混合 License (开源软件可以使用 GPL)
- 加上了 Microsoft Jscript 扩展
网站:
SpiderMonkey
Mozilla 的 JavaScript 参考实现,支持到 JavaScript 1.7。
特点:
- 使用者数量众多,对 JavaScript 和语言扩展支持最快
- 专门为单独 (standalone) 编译考虑,不需要依赖任何其他的 mozilla 软件/库
- 要保证线程安全则需要 NSPR 库
- 向 Adobe 贡献的 tamarin 引擎转移的步骤进行很慢
网站:
- SpiderMonkey
- 代码提供压缩包 (从 FTP) 和 CVS。有 Bugzilla。有新闻组。
No Comments Yet