Byte代码在什么时候生成?

时间:2011-01-10 15:13:48

标签: .net programming-languages

在.NET框架的哪个阶段生成Bytecode?

我是否认为用户使用他们选择的语言(可能是C#)编写源代码的说法是正确的,当编译此源时,它会转换为字节代码? (然后使用这个字节代码?)

3 个答案:

答案 0 :(得分:3)

维基百科的定义:

  

字节码是一个已被使用的术语   表示各种形式的教学   为高效执行而设计的集合   由软件解释器以及   适合进一步编译   进入机器代码。

虽然字节码是通用术语,但它更多地用于java世界。在.net中间语言(IL或MSIL)可以作为字节码引用。它由每个.net语言编译器生成。后来它由CLR(java世界中JVM的模拟)执行。在CLR执行代码之前,它由Just-In-Time编译器(CLR的一部分)编译。它被编译为本机机器语言,然后由处理器直接执行。 (托管二进制文件也可以预编译)

答案 1 :(得分:0)

任何针对.NET Framework的源代码都编译为MSIL(MS中间语言),可由CLR解释和执行。在应用程序运行期间,JIL(即时编译器)在本机代码中编译MSIL代码。

答案 2 :(得分:0)

字节码是大多数VM基本语言的通用术语。

编译器有字节码和VM。

编译器将您的代码转换为字节码。

然后VM解释字节码。

VM可以有一个名为Jit的特殊模块进行转换 将字节码转换为本机程序集。然后这个本地程序集 不再需要VM来执行。但显然 需要VM来调用它

字节码只是网站的中间语言 VM和您的代码源之间。