是否有用于JavaScript的本机机器代码编译器?

the*_*row 42 javascript native compilation native-code

是否有用于JavaScript的本机机器代码编译器?我不是在谈论VM.如果它不存在可以做到吗?
我想知道它是否可以编译为二进制,因为语言的动态性质.

Fal*_*ina 29

据我所知,JavaScript没有静态编译器.这在理论上肯定是可能的; 但是,JavaScript的静态编译需要一个非常重量级的运行时来支持它的所有功能(例如动态类型和eval).作为一小部分,当需要静态编译Python(另一种动态语言)时,PyPy开发人员最终创建了一种语言,这是Python的一个非常有限的子集(称为RPython),没有Python的一些更动态的功能,这是能够静态编译的.

如果你是为了从JavaScript代码创建一个独立的可执行文件而要求这个,我肯定必须有一个包装器,它本质上会创建一个包含你的脚本和一个嵌入式JavaScript VM的可执行文件(遗憾的是,我不知道任何副本).


Sto*_*bor 26

这绝对是可行的,虽然目前我知道如何做的唯一方法是两个步骤......

  1. 使用Mozilla Rhino JSC将javascript编译为Java .
  2. 使用类似GNU的GCJ将生成的java类文件编译为可执行文件.

但是你为什么要这么做?您期望找到什么优势?

  • 这只是出于好奇.我非常喜欢javascript. (15认同)

小智 9

Google V8引擎将JavaScript编译为本机机器代码.这个特性在我为node.js和io.js项目编写的EncloseJS编译器中使用.

  • (*Meta*)它不会也不应该是突兀的,但在正确的地方一个简单的*my*就足够了.我继续在这里编辑你的答案.请记住这一点以备将来的答案. (2认同)