码迷,mamicode.com
首页 > Windows程序 > 详细

CLR执行模型《CLR via c#》第一章

时间:2016-07-08 11:45:16      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

这是我看《CLR via c#》第四版的一些小笔记和总结,如有不对的地方,欢迎指出。

《CLR via c#》第一章CLR的执行模型讲的是如何将源代码生成为一个应用程序,或者生成为一组可重新分发的组件(文件)- 这些组件(文件)包含类型(类和结构等),解释了应用程序如何执行。

CLR(common language runtime ,公共语言运行时),顾名思义,它是一个可以支持多种语言的“运行时”。

通常我们c#程序的执行过程是

技术分享

 

CLR的JIT(即时编译器)把IL代码编译成机器指令。

NGen.exe工具将程序集的IL代码编译成本机代码,并将这些代码保存到一个磁盘中。在运行加载程序集时,CLR自动判断是否存在运行该程序集的预编译版本。使用NGen.exe工具虽然表面性能比较好,但因为它没有像JIT一样优化代码,所以在选择使用时,应该注意。

CTS(common type system ,通用类型系统)是用来描述类型的定义和行为。CTS是定义类的一种规范,它规定了一个类型可以包含零个或者多个成员,同时还指定了类型可见性规则以及类型成员的访问规则,除此之外,CTS还为类型继承,虚方法,对象生存期等定义了相应的规则。

面向CLR的语言无论是用哪种“代码的语言”最后的“代码的行为”都是一样的,因为最终都是由CLR的CTS来定义类型的行为。

CLS(common language specification,公共语言规范)详细定义了一个面向CLR语言的共有的最小功能集。一般来说,你的代码只要符合了CLS就能实现跨语言访问。

 

CLR执行模型《CLR via c#》第一章

标签:

原文地址:http://www.cnblogs.com/yzw-carrie/p/5626965.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!