浅谈CLR CTS CLS。。。

So  The First Is CLR

CLR的全程是Common Language Runtime 公共语言运行时  

可以把他理解为包含运行.net程序的引擎 和 一堆符合公共语言基础(CLI)的类库的集合.它是一个规范的实现,我们开发的大多数.net程序都是基于CLR的类库实现 并运行在CLR的运行引擎之上。通常所说的.NET框架 就是CLR

CLI (Common Language Infrastructure) 公共语言基础

 是Microsoft想ECMA提交的一份语言和数据格式规范。CLR是目前为止 唯一一个CLI的实现版本

CTS (Common Type System) 通用类型系统

 Microsoft提交的CLI规范中,包括了CTS CIL(公共中间语言) 底部文件格式  元数据格式等。CTS定义了一个能够在CLR上运行的语言规范。

Tips:元数据

  元数据是一种二进制信息,用以对存储在公共语言运行库的可执行文件(PE)或存储在内存中的程序进行描述。存储程序集的说明 类型的说明以及属性

CLS (Common Language Specification)公共语言规范

CLS是CTS的一个子集,定义了希望编写能够在.net平台上运行的程序的语言所需符合的最小规范。正是因为.net允许由不同语言编写的程序一起执行,所以有了CLS来避免不同语言特性带来的错误。它是CLI的一部分内容,目的是保证各种语言与.NET Framework的兼容性

CLR是.NET Framework的核心,而CTS和CLS是CLR的核心。任何编程语言,如果想要在.NET CLR上执行,就必需提供一个编译器,将此语言的程序编译成.NET CLR所认识的metadata以及IL,符合CTS的规定。并非所有的语言都能和C#一样符合CTS的规范,毕竟许多语言出现在先,CTS出现在后,所以有一些旧的语言未能符合CTS的规定。

CLR是CLI的实现,包含了.NET运行引擎和符合CLI的类库

CTS包含在CLI规范中,定义了一个可以在CLR上运行的类型规范

CLS是CTS的子集,定义了所有面向.NET的程序所需符合的最小规范集。

tips:

   FCL  Framework Class Library (基类库)

   BCL  Base Class Library  (框架类库)

 

转载于:https://www.cnblogs.com/ZyCoder/p/7494130.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值