分析:在.NET框架中,公共语言基础结构使用公共语言规范来绑定不同的语言。 公共类型系统(CTS)包含在公共语言规范中的部分要求不同的语言均需要实现,因此公共语言基础结构允许不同的语言使用.NET框架。 在.NET框架中,所有的语言(C#,VB.NET,Effil.NET等)最后都被转换为了一种通用语言,即微软中间语言(MSIL)。 看一段简单的示例代码,以及第一次编译后生成的MSIL语言的情况。代码如下所示。 static void Main(string[] args) //主程序{Console.WriteLine("这是一个MSIL测试程序,Hello Kitty"); //输出一个测试信息 Console.Read();}这段代码相当简单,编译它所生成的MSIL代码如下: //将上面C#代码编译成MSIL代码 .method private hidebysig static void Main(string[] args) cil managed //主程序{ .entrypoint .maxstack 8 L_0000: nop L_0001: ldstr "\u8fd9\u662f\u4e00\u4e2aMSIL\u6d4b\u8bd5\u7a0b\u5e8f\uff0cHello Kitty" L_0006: call void [mscorlib]System.Console::WriteLine(string) L_000b: nop L_000c: call int32 [mscorlib]System.Console::Read() L_0011: pop L_0012: ret}从理论上来说,IL将消除多年以来业界中不同语言之间的纷争。 注意:MSIL通常简称IL。 总结:MSIL是将.NET代码转化为机器语言的一个中间过程,它是一种介于高级语言和基于Intel的汇编语言之间的伪汇编语言。 当用户编译一个.NET程序时,编译器将源代码翻译成一组可以有效地转换为本机代码且独立于CPU的指令。 当执行这些指令时,实时(JIT)编译器将它们转化为CPU特定的代码。
相关文章
- C#语言支持的特性,.NET却不支持,那么C#不被.NET支持的部分又是如何在.NET上运行的呢?
- C#与.NET程序员面试宝典 2.2.1 面试题8:IL语言如何在.NET下运行
- IL语言如何在.NET下运行?
- 当在firefox下运行asp.net应用程序时,如何在visual studio中调试javascript?
- 如何在不需要.net框架的情况下创建c++程序(如ccleaner和utorrent)
- c语言中如何在不影响程序运行的情况下实现背景音乐循环
- c# winform 程序如何在非.net framework下运行?
- MSDN中文网络广播预告:公共语言运行库(CLR)开发系列课程(6):.NET中间语言(IL)入门 (Level 200)
- 类似 java -Djavax.net.debug=SSL,handshake,data,trustmanager MyApp 如何在Eclipse下运行
- linux下C语言如何在运行时得到调用我的函数的文件名和行号