公共语言运行时CLR(第二课)

公共语言运行时
          CLR叫做公共语言运行时(Common Language Runtime)。它是所有.NET应用程序运行时环境,是所有.NET应用程序都使用的编程基础,它如同一个支持.NET Framework,运行一个.NET程序也必须安装。CLR也可以看作一个在执行时管理代码的代理,管理代码是CLR的基本原则,能够被管理的代码称为 托管代码,反之称为 非托管代码。CLR包含两个组成部分, CLS(公共语言规范)CTS(通用类型系统)。下面我们通过理解.NET的编程技术来具体了解这两个组件的功能。

 1. CTS   

C#和VB.NET都是公共语言运行时的托管代码,它们的语法和数据类型各不相同。CLR是如何对这两种不同的语言进行托管的呢?通用类型系统(Common Type System)用于解决不同语言的数据类型不同的问题,如C#中的整型是int,而VB.NET中是Integer,通过CTS我们把它们两个编译成通用的类型Int32。所有的.NET语言共享这一类型系统,在它们之间实现无缝互操作。  


 2. CLS   

编程语言的区别不仅仅在于类型,语法或者说语言规范也都有很大的区别。因此.NET通过定义公共语言规范(Common Language Specification),限制了由这些不同点引发的互操作性问题。CLS是一种最低的语言的标准,制定了一种以.NET平台为目标的语言所必须支持的最小特征,以及该语言与其他.NET语言之间实现互操作性所需要的完备特征。凡是遵守这个标准的语言在.NET框架下都可以实现互相调用。例如,在C#中命名是区分大小写的,而VB.NET不区分大小写,这样CLS就规定,编译后的中间代码必须除了大小写之外有其他的不同之处。 


 3. .NET编译技术   

为了实现跨语言开发和跨平台的战略目标,.NET所有编写的应用都不是编译为本地代码,而是编译成微软中间代码MSIL(Microsoft Intermediate Language)。它将由JIT(Just In Time)编译器转换成机器代码。C#和VB.NET代码通过它们各自的编译器编译成MSIL,MSIL遵守通用的语法,CPU不需要了解它,再通过JIT编译器编译成相应的平台专用代码,这里所说的平台是指我们的操作系统。这种编译方式实现了代码托管,还能够提高程序的运行效率。

在.net中编译分为两个阶段:

1.把源代码编译为Microsoft中间语言(IL)。

2..CLR把IL编译为平台专用代码。

对于代码来说,这种精心设计的通用语法很重要的优点:平台无关性提高性能语言的互操作性

总结:简单地说,公共语言运行时,就是一个托管所,托管的是各种基于.NET框架的语言,要托管各种不同的语言就必须要制定一个能满足各种语言最低要求的公共规矩(就是公共语言规范),规矩制定了,就要提供一套托管方法(通用类型系统)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值