我想知道是否有可能编写一个javascript程序并将其编译并链接到可执行文件中?
如果是这样,是否可以创建一个libjs,它相当于c / c ++世界的libc?不会创建这样的东西使javascript成为一种完整的语言,然后可以直接在目标硬件上编译和运行?
如果你有一个javascript编译器,你不能用javascript写一个新的编译器吗?
答案 0 :(得分:3)
是的,你可以写一个js编译器。不确定它会有多受欢迎:
这几天js引擎非常快,所以你的速度并不快。
这将是特定于平台的,或者您必须支持多个平台。不愉快。
它有什么用处?解释语言的优点在于它不需要编译。它缩短了开发周期和构建时间(曾经坐在C程序前面,不得不更改整个项目依赖的文件,必须运行并重新运行make
,这需要花费几分钟来编译所有内容?)。< / p>
关于你的最后一点,你是对的。如果你有这些编译器之一,你确实可以在javascript中编写另一个编译器。
答案 1 :(得分:1)
答案 2 :(得分:0)
是的你有一些名为Google Closure Compiler
的东西,但它不是传统意义上的编译器,它不会将javascript转换为机器代码,而是将javascript转换为javascript但高度优化的javascript。它实际上是一个优化编译器。编译器运行一些测试来检测像拼写错误这样的错误,就像工具JSLint
一样。但谷歌建议在Closure
库中编写的javascript上使用这个编译器。有关Closure Compiler的更多信息,请参阅this。
但我不认为将客户端javascript编译为机器代码是一个好主意,因为机器代码是依赖于机器的,因此在您向客户端发送javascript之前,您必须检测其操作系统及其处理器体系结构。所以这将变成像linux上的firefox javascipt,windows上的firefox的javascipt,x86上的firefox的javascipt等等