首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JIT编译器是编译器还是解释器?

JIT编译器是编译器还是解释器?
EN

Stack Overflow用户
提问于 2011-02-22 12:53:37
回答 7查看 7.8K关注 0票数 14

我的问题是,将IL转换成机器语言的JIT编译器到底是编译器还是解释器。

还有一个问题: JavaScript是编译语言还是解释语言?

提前感谢

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-02-22 13:00:56

JIT (just in time)编译器是一个编译器。它可以进行优化,也可以编译成机器码。(甚至被称为编译器)

HTML、Javascript被解释,它们被web浏览器按原样读取,并以最少的错误修复和优化运行。

票数 14
EN

Stack Overflow用户

发布于 2011-02-22 15:05:10

从技术上讲,编译器将一种语言翻译成另一种语言。由于JIT编译器接收IL作为其输入并输出本机二进制文件,因此它很容易满足这一标准,因此应该称为编译器。

关于Javascript,在这里进行区分是比较困难的。如果你想成为书呆子,没有“编译语言”或“解释语言”这样的东西。我的意思是,在实践中,大多数语言确实有一种共同的运行方式,如果是解释器,它们通常被称为解释语言,但解释或编译(通常)不是语言本身的特征。Python几乎被普遍认为是解释的,但是可以编写一个编译器将其编译成本机二进制代码;它仍然值得使用“解释的”形容词吗?

现在得到实际的答案: Javascript通常由解释器运行,解释器使用JIT编译器本身。那么,这是解释的还是编译的?你说了算。

票数 7
EN

Stack Overflow用户

发布于 2011-02-22 13:58:54

来自维基的just-in-time compiler(JIT),也被称为动态翻译器,用于提高计算机程序的运行时性能。

Just-in-time compilation是在执行之前将非本机代码(例如字节码)转换为本机代码的过程。JIT compiler是编译IL代码并输出缓存的本机代码的人,作为解释器将逐行执行代码。

即,在java的情况下,类文件是解释器的输入。

有关JIT的更多信息,请单击此处:

是的,超文本标记语言、JavaScript都是解释型语言,因为它们没有编译成任何代码。这意味着脚本无需预先编译即可执行。

也是一个很好的阅读的JavaScript/超文本标记语言不是编译语言。

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

https://stackoverflow.com/questions/5074145

复制
相关文章

相似问题

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