我在网上找不到有关W3C语言如何编译成机器代码的信息。我知道Web和处理器之间的差距一定与浏览器有关,但它是如何工作的,JavaScript被执行到处理器需要经过哪些步骤呢?
同时,科学文献链接也将不胜感激。
我在网上找不到有关W3C语言如何编译成机器代码的信息。我知道Web和处理器之间的差距一定与浏览器有关,但它是如何工作的,JavaScript被执行到处理器需要经过哪些步骤呢?
同时,科学文献链接也将不胜感激。
这取决于实现方式; 规范 是语言及其正常工作的完整描述,实现可以以任何希望的方式满足该实现。 有些实现(从外部看)似乎仅作为旧版意义上的解释器运行; 其他实现可能会编译成字节码或不编译; V8(Chrome、Chromium、Brave、Node.js 等中的 JavaScript 引擎)曾经将其编译成机器码(两次,对于应用程序中的热点),但现在开始解析成字节码并在解释器中运行它,并且只在需要时编译热点 (详情)。(还有一种 V8 模式,其中它仅解释,他们正在尝试在运行时不能编译的环境中使用,例如 iOS,因为非苹果应用程序无法分配可执行内存。)
V8团队定期发布有关如何实现V8惊人速度的描述。您可以在V8博客上找到其中的一些。Chrome的JavaScript引擎将JavaScript编译为本地平台特定的机器码(以获得最佳性能)。它还具有垃圾回收机制。