我的问题是,将IL转换成机器语言的JIT编译器到底是编译器还是解释器。
还有一个问题: JavaScript是编译语言还是解释语言?
提前感谢
发布于 2011-02-22 13:00:56
JIT (just in time)编译器是一个编译器。它可以进行优化,也可以编译成机器码。(甚至被称为编译器)
HTML、Javascript被解释,它们被web浏览器按原样读取,并以最少的错误修复和优化运行。
发布于 2011-02-22 15:05:10
从技术上讲,编译器将一种语言翻译成另一种语言。由于JIT编译器接收IL作为其输入并输出本机二进制文件,因此它很容易满足这一标准,因此应该称为编译器。
关于Javascript,在这里进行区分是比较困难的。如果你想成为书呆子,没有“编译语言”或“解释语言”这样的东西。我的意思是,在实践中,大多数语言确实有一种共同的运行方式,如果是解释器,它们通常被称为解释语言,但解释或编译(通常)不是语言本身的特征。Python几乎被普遍认为是解释的,但是可以编写一个编译器将其编译成本机二进制代码;它仍然值得使用“解释的”形容词吗?
现在得到实际的答案: Javascript通常由解释器运行,解释器使用JIT编译器本身。那么,这是解释的还是编译的?你说了算。
发布于 2011-02-22 13:58:54
来自维基的just-in-time compiler(JIT),也被称为动态翻译器,用于提高计算机程序的运行时性能。
Just-in-time compilation是在执行之前将非本机代码(例如字节码)转换为本机代码的过程。JIT compiler是编译IL代码并输出缓存的本机代码的人,作为解释器将逐行执行代码。
即,在java的情况下,类文件是解释器的输入。
有关JIT的更多信息,请单击此处:
是的,超文本标记语言、JavaScript都是解释型语言,因为它们没有编译成任何代码。这意味着脚本无需预先编译即可执行。
也是一个很好的阅读的JavaScript/超文本标记语言不是编译语言。
https://stackoverflow.com/questions/5074145
复制相似问题