谁能解释一下.net平台的语言无关性和语言继承性
分享| 2015-06-19 13:48 挀儿 | 浏览 59 次
编程语言
2015-06-23 15:40 #2016年高质量新标准全面升级!# 提问者采纳
.net 平台支持很多语言,常见有:C#、VB、C++、F#、J#(Java)等
但是实际上经过编译之后,统一生成了中间语言“IL”,类似汇编,就因为这样,才可以在以上所有的语言中相互引用dll,因为实际是都是一种语言“IL”
在执行的时候,实际上.net会把IL先给编译成机器码,也就是二进制,这才是真正的可执行代码。
以上纯手打,以下是网上摘录的,属于纯理论:
.net framework的核心是其运行库的执行环境,叫做公共语言运行库,简称CLR,将在CLR的控制下运行的代码称为托管代码,在CLR执行代码之前,需要编译,分为2个阶段:
1: 把源代码编译为Microsoft中间语言(MSIL);
2: CLR把MSIL编译为平台专用的机器代码;
也就是说,不管你用什么语言来编写源代码,它都会通过它自己的编译器编译成MISL,从而转换成机器码,都能被机器识别!语言的集成性我想主要是说它的公共语言规范(CLS)公共语言规范和通用类型系统一起确保了语言的相互操作性,CLS是一个最低标准集,所有面向.net的编译器都必须支持它.每个语言都符合这个规范,从而满足了语言的互相调用和互操作
CLR common language runtime 就是运行时相当于一个运行环境(相当于JVM)
IL intermidiate language中间语言,C#先编译成中间语言再在CLR上面执行