理论:JIT编译器可以用来先解析整个程序,然后再执行吗?

时间:2010-12-22 02:48:15

标签: optimization compiler-construction theory interpreter jit

通常,JIT编译器通过读取字节代码,将其转换为机器代码并执行它来工作。这是我理解的,但理论上,是否可以让JIT编译器先解析整个程序,然后再将程序作为机器代码执行?我不知道JIT Compiler在技术上和技术上是如何工作的,所以在这种情况下我不知道任何可行性。但从理论上讲,这可能吗?或者我做错了吗?

3 个答案:

答案 0 :(得分:4)

正如Mehrdad所说,它不再是JIT编译器,但是,您可以提前编译。在.NET中,他们有一个名为ngen.exe的工具就是这样做的。

答案 1 :(得分:1)

是的,这是可能的,但它通常不再被称为JIT编译。它基本上是提前(AOT)编译。

答案 2 :(得分:1)

不,这是不可能的,原因很简单,“JIT”意味着“准时”,如果你不“及时”,那么它就不是“Just-In”时间“编译器。

这就像问是否有可能购买一辆红色汽车,但是用蓝色。

您要求的是一个Ahead-Of-Time编译器,它通常被称为编译器。