我的问题是把中间语言转换为机器语言的JIT编译器到底是一个编译器还是一个解释器。
另外一个问题: HTML、JavaScript是编译型语言还是解释型语言?
提前致谢。
我的问题是把中间语言转换为机器语言的JIT编译器到底是一个编译器还是一个解释器。
另外一个问题: HTML、JavaScript是编译型语言还是解释型语言?
提前致谢。
JIT(即时编译器)是一种编译器。它可以进行优化并编译成机器代码(有时也称为编译器)。
HTML和Javascript是解释型语言,它们被Web浏览器按原样读取,并经过最少的错误修复和优化来运行。
来自维基百科,即时编译器(JIT)
,也称为动态翻译器,用于提高计算机程序的运行时性能。
即时编译
是将非本机代码(例如字节码)转换为本机代码,就在执行之前。JIT编译器
是编译IL代码并输出缓存的本机代码的编译器,而解释器将逐行执行代码,例如在Java中,类文件是解释器的输入。
更多有关JIT的信息:
是的,HTML和JavaScript是解释型语言,因为它们没有被编译成任何代码。这意味着脚本在没有预先编译的情况下执行。
此外,这里有一篇很好的文章,介绍了JavaScript/HTML不是编译型语言。
CLI(.Net字节码)具有本地CPU中找不到的功能,因此JIT绝对是编译器。与一些人在这里写的相反,大多数优化已经完成。
HTML不是编程语言,因此很难说它是否被编译或解释...就“编译结果是否被重用”的意义而言,任何浏览器都不会将HTML编译(每次页面呈现时都会解析)。
旧版浏览器中的JavaScript是解释执行的(预处理为中间表示形式,但不是机器代码)。最新版本的浏览器具有JavaScript JIT编译器-因此现在要定义它是解释还是编译语言变得更加困难。
JIT(即时)编译器是仅编译而不是解释器,因为JIT编译器在运行时将某些字节码转换成本地机器代码以实现高性能,但不执行指令。
相反,解释器在运行时读取并执行指令。
HTML和Javascript被解释,它们直接由浏览器执行,无需编译。