首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript是如何翻译成字节码的?

Javascript是如何翻译成字节码的?
EN

Stack Overflow用户
提问于 2012-01-11 21:11:57
回答 5查看 17.5K关注 0票数 26

我在网上找不到W3C语言如何编译成机器码的信息。我知道web和处理器之间的鸿沟一定是浏览器,但它是如何工作的,在处理器中执行Javascript之前有哪些步骤?

链接到科学文献也将受到极大的赞赏。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-01-11 21:16:33

这取决于实现;the specification是对语言及其工作原理的完整描述,实现可以自由地以任何他们喜欢的方式满足实现。一些实现(从外部看)似乎纯粹是一个旧意义上的解释器;其他的可能编译成字节码,也可能不编译成字节码;V8 ( Chrome、Chromium、Brave、Node.js和其他浏览器中的JavaScript引擎)过去编译成机器码(twice,用于应用程序中的热点),但现在开始解析字节码并在解释器中运行它,并且只在必要时编译热点(details)。(还有一种V8模式,它只进行解释,他们正在为不能在运行时编译的环境进行试验,比如iOS,在这种环境中,非苹果应用程序不允许分配可执行内存。)

V8团队(V8是Chromium和Chrome中的JavaScript引擎)定期发布描述,描述他们是如何从V8中获得惊人的速度的。你可以在V8 blog上找到其中的一些。

当然,您也可以绕过任何开源实现的代码。据我所知,V8和SpiderMonkey (Mozilla的引擎)是两个主要的开源软件。

票数 28
EN

Stack Overflow用户

发布于 2012-01-11 21:15:38

这可能会有所帮助:http://www.ecma-international.org/publications/standards/Ecma-262.htm

没有关于如何转换为字节码的规范(这取决于浏览器开发人员),但是有关于语言应该如何行为的规范

票数 4
EN

Stack Overflow用户

发布于 2014-10-11 15:45:03

对于Firefox,它的字节码有一些规范:

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Bytecodes https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Internals/Bytecode

对于V8,它被直接编译成本机代码:

http://jayconrod.com/posts/51/a-tour-of-v8-full-compiler

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8819846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档