JavaScript 有开源解释器吗?

6

JavaScript是一种开源编程语言吗?我想知道一些对象和方法是如何工作的。

我的意思是,JavaScript的编译器、解释器或分析器是否是开源的?


你可以查看规范 http://www.ecma-international.org/publications/standards/Ecma-262.htm - Felix Kling
3
有没有闭源编程语言? - ypercubeᵀᴹ
5
学习区分“语言”和“实现”的差异。Python是一种语言,有多个实现(例如CPython、pypy、Jython、IronPython)。JavaScript也是一种语言,有多个实现(例如V8、SpiderMonkey等)。 - Chris Morgan
1
你的问题应该是,“JavaScript 的编译器/解释器/分析器是否开源?” - Tarun
3个回答

9

有许多开源JavaScript引擎(比如V8, RhinoSpiderMonkey),还有一些闭源实现(我猜Opera和微软使用的不是开源的)。

该语言基于ECMAScript规范,该规范可以免费获取。


2

什么是开源语言?

JavaScript是由浏览器解释的,取决于供应商和开发者使用的引擎。一些流行的引擎列在 ECMAScript引擎列表中。


0
除了上面给出的答案之外,还有一个开源的.NET实现JavaScript可用:它的名字是Jurassic,可以在CodePlex上找到。

http://jurassic.codeplex.com/

示例:

  1. 执行表达式:

    var engine = new Jurassic.ScriptEngine();

    Console.WriteLine(engine.Evaluate<int>("1.5 + 2.4"));

  2. 执行脚本:

    var engine = new Jurassic.ScriptEngine();

    engine.ExecuteFile(@"c:\test.js");

版本2.2的功能(来自网站):

  • 支持所有ECMAScript 3和ECMAScript 5功能,包括ES5严格模式
  • 简单而强大的API
  • 将JavaScript编译为.NET字节码(CIL);不是解释器
  • 部署为单个.NET程序集(无本机代码)
  • 在Visual Studio中具有基本的集成调试支持
  • 使用轻量级代码生成,因此生成的代码完全进行垃圾回收
  • 已在.NET 3.5、.NET 4和Silverlight上进行测试

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接