有没有用于JavaScript的本机机器代码编译器? [关闭
-
12-09-2019 - |
题
有没有用于JavaScript的本机机器代码编译器?我不是在说VM。如果不存在,可以做到吗?
我想知道由于语言的动态性质,是否可以将其编译为二元。
解决方案
据我所知,没有用于JavaScript的静态编译器。从理论上讲,这肯定是可能的;但是,JavaScript的静态汇编将需要非常重量的运行时来支持其所有功能(例如动态键入和评估)。一边 pypy 开发人员最终创建了一种语言,该语言是Python(称为Rpython)的一个非常有限的子集,该语言没有Python更具动态的功能,该功能能够被静态编译。
如果您要问此目的是为了创建JavaScript代码可执行执行的目的,我相信必须有包装器本质上可以创建包含您的脚本的可执行文件和嵌入式JavaScript VM(可悲的是,我不知道任何副手)。
其他提示
这绝对是可行的,尽管我唯一知道该怎么做的唯一方法是两步的过程...
- 使用JavaScript编译为Java Mozilla Rhino JSC.
- 使用诸如 GNU的GCJ.
不过,你为什么要?您希望找到什么优势?
Google V8 Engine将JavaScript编译到本机机器代码中。此功能在 enclosejs 我为node.js和io.js项目编写的编译器。
请注意,所有这些解决方案都是 DOM
少,所以没有图书馆喜欢 angular.js
或者 jquery
, , 只要 underscore.js
/lodash
跟进 法兰纳的答案,pypy 确实有 一个dist JavaScript
还, Appcelerator钛 有个 js
> JavaBit
> android
从理论上讲是可能的,但是涉及很多运行时支持行李(甚至是完整的JavaScript编译器或解释器来支持 eval
).
您是在寻找实际的本机代码编译器,还是正在寻找可以将JavaScript代码以及运行时捆绑到单个可执行文件的内容?
我确定Microsoft有一个可下载的JScript(“ Microsoft的JavaScript”)编译器
如果您有Windows:如果编写JavaScript文本文件,则可以通过:使用CD打开命令提示符以获取文本文件目录(如果您有Windows)类型:C: Windows Microsoft.net Framework framework v2.0.50727 jsc.exe textfile.js
否则:下载JScript编译器类型JScript编译器的目录,然后下载JavaScript文本文件的名称
如果您不想将整个目录名称输入编译器,则可以添加环境变量。
这个家伙更好地解释了:http://www.phpied.com/make-your-javascript-a-windows-exe/
我个人认为这真的很酷。我只希望有更多的文档。
我很确定这就是您想要的,但是我有点新。
tracemonkey 在ff3.5中,对JavaScript代码的某些部分执行此操作。您也许可以从那里获得一些路线!
Adobe Air的iOS iOS AOT编译器静态编译了一个名为ActionScript 3.0的JavaScript的超集,以下是ABC字节码,然后通过LLVM机器代码。如果您要编写无课程的AS3代码,并且没有类型注释,则本质上是JavaScript,然后编译器会愉快地将其编译为机器代码。可悲的是,这不是开源软件,您无法访问任何DOM(许多人在想到JavaScript时会想到的),因为它在基本上是Flash Player实例。