任何写出javascript的高级语言?

时间:2011-05-13 10:52:35

标签: javascript ecmascript-5

我正在寻找一种写出javascript的高级语言。换句话说,这种语言与javascript的关系类似于C ++与汇编代码的关系。

这种更高级语言的要求是类型安全,易于重构,能够有类,继承等(像java / C#/ vb.net一样)。

优点是我可以使用这种更高级别的语言进行编码,而无需依赖“hacks”将继承带到javascript。此外,我不必进行任何运行时类型/鸭子检查,因为更高级别的语言将强加类型安全限制,生成的javascript将“完成工作”。

与使用汇编编码相比,使用C ++进行编码时,我们可以获得的任何优势都将带来额外的优势。

我实际上会尝试自己编写这种更高级别的语言,但是它的工作太多了,我想知道是否有人确实已经做过类似的事情。

4 个答案:

答案 0 :(得分:4)

CoffeeScript

CoffeeScripts的目标不是将现有的高级语言编译成JavaScript,而是将新语言创建为“比JavaScript更好的JavaScript”。

这类似于使用C ++作为“比C更好的C”。

当然,由于它更接近JavaScript,它完全支持所有 JavaScript功能。编译器也是用CoffeeScript(JavaScript)本身编写的。

答案 1 :(得分:3)

Script#,它将C#代码编译成JavaScript。但不确定它可能有任何限制。还有jsc,它通过反编译将.NET程序集转换为JavaScript。

AFK没有编译以利用ECMAScript第5版中的新功能。

答案 2 :(得分:2)

Google Web Toolkit (GWT) Java代码作为更广泛范围的合作伙伴。以下是相邻链接的摘录:

  

GWT SDK提供了一组核心   Java API和小部件。这些允许你   用Java编写AJAX应用程序   然后将源代码编译为高度   经过优化的 JavaScript   所有浏览器,包括移动版   适用于Android和iPhone的浏览器。

您当然可以使用Google Closure Compiler从JavaScript本身编译JavaScript。

另请查看Scott Mitchell's blog article关于Script#

的{{3}}

但是,正如@Andy E所说 - 没有任何声称可以为ECMAScript5工作

答案 3 :(得分:1)

您应该考虑结合LLVM查看emscripten。它允许您将大量语言(包括C和C ++)编译为LLVM bitcode,然后编译为JavaScript。这来自their projects page

  

Emscripten将LLVM bitcode编译成JavaScript,这样就可以将C和C ++源代码编译为JavaScript(首先使用Clang将其编译为LLVM bitcode),这可以在Web上运行。 Emscripten已被用于移植大型现有的C和C ++代码库,例如Python(标准CPython实现),Bullet物理引擎和eSpeak语音合成器等等。

使用这种技术的一个特别神奇的端口是box2d.js项目,该项目采用了很棒的box2d库并将其转换为this amazing demo