【发布时间】:2010-12-11 00:54:47
【问题描述】:
Another post 质疑将语言编译成 Javascript 的实用性。抛开实用性不谈,哪些解释器从某种语言 X 翻译成 Javascript 并用 Javascript 实现?我对 X 的设计目的不是针对 Javascript 的情况特别感兴趣。即使口译员还没有完全完成,我也想听听。
您可能对这个问题的动机感到好奇。 Javascript 肯定不能像汇编程序那样利用强大的功能,但代码分发和执行的灵活性有时可能超过这一成本。
这些解释器的一个用例是用于教授和学习编程语言的模型。考虑一下在交互式书籍Eloquent Javascript 中拥有一个 Javascript 解释器是多么有用。当然,在本地编译它可能会影响性能,但在某些情况下,成本肯定是值得的。是的,我意识到依赖服务器编译或解释代码始终是一种选择,但我对客户端方法特别感兴趣。
更新:许多响应包括对未在 Javascript 中实现的编译器的引用。我只想强调解释器本身应该用 Javascript 实现,这样它和源语言代码都可以在你祖父母计算机上的浏览器上运行。
【问题讨论】:
-
+1 高阶语言 -> 高阶语言编译总是很有趣。
-
回复:您的更新:编译器不必在 JavaScript 中实现,只需在可以在 JavaScript 中运行的语言中实现。例如,CoffeeScript 编译器是用 CoffeeScript 编写的。但是由于 CoffeeScript 编译器将 CoffeeScript 编译为 JavaScript,它可以将 自身 编译为 JavaScript,从而在浏览器中运行。这同样适用于任何用 C 编写的编译器(因为有一个编译器可以将 C 编译为 JavaScript)、Java、任何编译为 CIL 的 .NET 语言、任何编译为 JVML 的 JVM 语言、任何编译为 LLVM Bitcode 或 LLVM 的语言红外,...
标签: javascript programming-languages client interpreter