能够转译成Javascript的语言有哪些?

10

另一篇文章质疑将语言编译为Javascript的实用性。除了实用性之外,哪些解释器将某种语言X翻译成Javascript并在Javascript中实现?我特别关注那些X不是针对Javascript而设计的情况。即使解释器没有完全完成,我也想听听它们的情况。

你可能会好奇这个问题的动机。Javascript当然不能像汇编语言那样发挥太多的能力,但代码分发和执行的灵活性有时可能超过了这个代价。

这些解释器的一个用例是作为教学和学习编程语言的模型。考虑到在互动书Eloquent Javascript中拥有Javascript解释器的有用性。当然,与本地编译相比,可能会有性能损失,但在某些情况下,这种代价肯定是值得的。是的,我知道依靠服务器来编译或解释代码始终是一个选择,但我特别关注客户端方法。


更新: 很多回复中提到的编译器并没有在Javascript中实现。我只想强调,解释器本身应该在Javascript中实现,这样它和源语言代码都可以在您祖父母的计算机上的浏览器上运行。


+1 高阶语言 -> 高阶语言编译总是很有趣。 - Orbling
关于您的更新:编译器不必在JavaScript中实现,只需在可以在JavaScript中运行的语言中实现。例如,CoffeeScript编译器是用CoffeeScript编写的。但由于CoffeeScript编译器将CoffeeScript编译为JavaScript,因此它可以将自身编译为JavaScript并在浏览器中运行。同样的道理适用于任何用C编写的编译器(因为有一个将C编译为JavaScript的编译器),Java,任何编译为CIL的.NET语言,任何编译为JVML的JVM语言,任何编译为LLVM Bitcode或LLVM IR的语言,... - Jörg W Mittag
7个回答

6

CoffeeScript是一种编程语言,它可以编译成JavaScript。


4

社区百科,让我们来搞定它 :-)

jsc - 从CIL重新编译(CIL由VB.NET、C#等编译而来)。

Script# - 从C#(源代码)编译。

GWT:Google Web Toolkit - 从Java编译。

Emscripten - 从LLVM编译。应该可以处理(语言X)-> LLVM-> JavaScript的问题,其中语言X拥有一个LLVM编译器。


@RA,我从您的链接中添加了Emscripten,可以从LLVM编译:-)如有需要,请添加更多信息。 - user166390

4

2

1

j2js将Java字节码编译为Javascript(例如Java、Scala等)。


很遗憾,不再支持。请参见 https://github.com/decatur/j2js-compiler/ 了解原因。 - Wolfgang Kuehn


0

Pyjamas 可以将 Python 编译成 JavaScript。这是一种服务器类型的翻译;Pyjamas 还没有被用来编译自身,因此没有 JavaScript Python 解释器。


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