VIR via C#第一章:CLR的执行模型

  1. 什么是CLR:

         CLR是微软为.net的虚拟机取得名字。它定义可一个代码运行的环境(就相当于基于window上的小型的操作系统)

         CLS:支持CLR的各种语言之间,有各种不同的特性和语法。为了支持各种语言之间的互操作性。

         CLR是基于类型的,一个类型将功能提供给一个应用程序或者另一个类型来使用。通过类型,用一种编程语言写的代码能与用另一种语言写的代码沟通。由于类型是CLR的根本,微软专门为如何定义、使用和管理类型定义了一个正式的规范-- 通用类型系统(Common Type System),即CTS

         有关IL汇编语言介绍的文章:https://blog.csdn.net/qq446569365/article/details/60138620

2.CLR是如何工作的:

 不同的语言首先由各自的编译器汇编成中间代码(IL),也就是托管代码(托管模块实际上是标准的Microsoft windows 可移植执行体,只是需要CLR才能执行)。(CLR只会认识IL,它是面向IL的),之后CLR根据当前的系统,将IL汇编成本地代码(native code),(cpu面向本地代码)

比较好的讲解托管代码和非托管代码的文章:https://blog.csdn.net/hi_dzj/article/details/7100700

JIT:即时编译器:编译中间语言,在CLR中将中间语言编译成本地代码的编译器,即时编译的解释:当第一次运行某类型的方法时,会在内存上开辟一块空间,用于存放数据,之后再次运行该方法时,会直接在内存上取数据,大大的降低的时间。

参考文章:https://www.cnblogs.com/Gamain/p/3452891.html

3.托管模块和程序集之间的关系

程序集是一个或者多个模块/资源文件的逻辑性分组,在CLR眼中,程序集就相当于一个组件。也就是说CLR是和程序集译器工作的。

参考文章:https://www.cnblogs.com/hachun/p/4026071.html

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值