.NET虚拟机是编译器还是解释器?

4
.NET的虚拟机是将CIL字节码编译后执行CPU汇编代码,还是解释器(读取以下指令并执行)?

我问了一个关于Java虚拟机的类似问题。看起来可能是其中之一,也可能是两者都有。 - umlcat
1个回答

7

.NET的虚拟机是否编译CIL字节码(然后在最低级别-CPU汇编中执行代码)?

是的,它是CLR的一个组件,称为JIT(即时编译),将中间语言代码(由编程语言的编译器发出)转换为机器代码。

与Ruby、PHP、Python等动态语言不同,.NET没有解释器。


更新:

正如@Nick Craver在评论中指出的那样,自从在.NET 4中加入DLR,就有可能在CLR中使用动态语言概念。


1
我不确定答案的第二部分,因为在 .Net 4 中添加了 DLR,我可能是错的...但我认为该语句需要一些附加说明。 - Nick Craver
.NET框架和.NET Compact框架都使用JIT编译。然而,.NET Micro框架使用解释器(http://en.wikipedia.org/wiki/.NET_Micro_Framework)。 - Steven

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接