在.NET框架的哪个阶段生成Bytecode? p>
我是否认为用户使用他们选择的语言(可能是C#)编写源代码的说法是正确的,当编译此源时,它会转换为字节代码? (然后使用这个字节代码?)
答案 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和您的代码源之间。