3

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

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

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

与在汇编中编码相比,使用 C++ 编码时我们可以拥有的任何其他优势将是其他优势。

我实际上打算自己尝试编写这种高级语言,但它的工作量太大,我想知道是否有人实际上已经做过类似的事情。

4

4 回答 4

4

咖啡脚本

CoffeeScripts 的目标不是将已经存在的高级语言编译成 JavaScript,而是创建一种新语言作为“比 JavaScript 更好的 JavaScript”。

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

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

于 2011-05-13T14:43:18.103 回答
3

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

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

于 2011-05-13T10:56:21.160 回答
2

Google Web Toolkit (GWT) Java 代码将 JavaScript 作为更广泛范围的一部分。这是来自相邻链接的片段:

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

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

另请查看Scott Mitchell关于脚本的博客文章#

但是,正如@Andy E 所说 - 没有任何东西声称适用于 ECMAScript5

于 2011-05-13T10:56:27.663 回答
1

您应该考虑将LLVMemscripten结合使用。它将允许您将大量语言(包括 C 和 C++)编译成 LLVM 位码,然后编译成 JavaScript。这是来自他们的项目页面

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

使用这种技术的一个特别令人惊奇的端口是box2d.js项目,它采用了很棒的box2d库并将其变成了这个惊人的演示

于 2012-10-18T14:33:51.527 回答