快速理解:编程语言 il clr 机器码 操作系统之间的关系,用饮料作比喻
2010-10-19 10:37
417 查看
编程语言:c# vb.net F#
IL:Intermediate Language(中间语言)
CLR:Common Language Runtime(公共语言运行时)
机器码:机器能读懂的代码(二进制码)
操作系统:windows linux
个人比喻如下(心血来潮所作,欢迎改进):
编程语言:就像水果(苹果,橙子,葡萄)
IL:就像水果汁
CLR:装瓶包装的过程(可以是中文的包装,也可以是英文的包装)
机器码:就像饮料
操作系统:就像国家(中国,美国)
水果经过榨汁(编译)就变成了水果汁,
如果在中国销售:水果汁经过装瓶包装就变成了中文包装的饮料
如果在美国销售:水果汁经过装瓶包装就变成了英文包装的饮料
下面是专业的解释:引用自http://blog.sina.com.cn/s/blog_49947b280100gtde.html
CLR,.NET提供了一个运行时环境,叫做公用语言运行时(Common Language Runtime),是一种多语言执行环境,支持众多的数据类型和语言特性。他管理着代码的执行,并使开发过程变得更加简单。这是一种可操控的执行环境,其功能通过编译器与其他工具共同展现。
它的主要功能是负责将代码转换成为机器代码,简单的说就是在不同的平台上安装了它,就能运行同样的程序,并且程序不用修改。
而不同的程序在.NET环境下编译完毕之后,都变成了IL,也就是.NET框架中中间语言(Intermediate Language)的缩写 使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不是CPU能直接执行的机器代码,而是一种中间语言IL(Intermedate Language)的代码。
IL的特征是低级语言、语法简单(数字代码),能快速转变成机器代码,所以具备平台无关性的基础。
而程序被编译之后,就只是变成了IL,当需要运行时,在CLR的基础上,才变为机器代码,在不同的平台上运行。
IL:Intermediate Language(中间语言)
CLR:Common Language Runtime(公共语言运行时)
机器码:机器能读懂的代码(二进制码)
操作系统:windows linux
个人比喻如下(心血来潮所作,欢迎改进):
编程语言:就像水果(苹果,橙子,葡萄)
IL:就像水果汁
CLR:装瓶包装的过程(可以是中文的包装,也可以是英文的包装)
机器码:就像饮料
操作系统:就像国家(中国,美国)
水果经过榨汁(编译)就变成了水果汁,
如果在中国销售:水果汁经过装瓶包装就变成了中文包装的饮料
如果在美国销售:水果汁经过装瓶包装就变成了英文包装的饮料
下面是专业的解释:引用自http://blog.sina.com.cn/s/blog_49947b280100gtde.html
CLR,.NET提供了一个运行时环境,叫做公用语言运行时(Common Language Runtime),是一种多语言执行环境,支持众多的数据类型和语言特性。他管理着代码的执行,并使开发过程变得更加简单。这是一种可操控的执行环境,其功能通过编译器与其他工具共同展现。
它的主要功能是负责将代码转换成为机器代码,简单的说就是在不同的平台上安装了它,就能运行同样的程序,并且程序不用修改。
而不同的程序在.NET环境下编译完毕之后,都变成了IL,也就是.NET框架中中间语言(Intermediate Language)的缩写 使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不是CPU能直接执行的机器代码,而是一种中间语言IL(Intermedate Language)的代码。
IL的特征是低级语言、语法简单(数字代码),能快速转变成机器代码,所以具备平台无关性的基础。
而程序被编译之后,就只是变成了IL,当需要运行时,在CLR的基础上,才变为机器代码,在不同的平台上运行。
相关文章推荐
- Android快速理解Activity、View及Window&WindowManager之间关系
- 女人、操作系统和编程语言之间的关系
- Android快速理解Activity、View及Window&WindowManager之间关系
- 操作系统从硬件到应用程序之间的关系
- HTTP TCP/IP SOCKET的理解和它们之间的关系
- 连续傅里叶变换,拉普拉斯变换之间的关系以及理解
- 如何理解 TCP/IP,SPDY,WebSocket 三者之间的关系
- 深入理解Oracle表(4): 表(Table)和段(Segment)之间是什么关系
- 深入理解子类和父类之间关系
- 简单理解java的File,InputStream,InputStreamReader,BufferedReader之间的关系
- OR1200各模块之间的连接关系图,使用VISIO绘制,理解源代码必备
- Effective C# Item9:理解几个相等判断之间的关系
- Android 理解Handler、Message、Looper之间的关系
- 类之间关系理解:组合>聚合>关联>依赖;实现,继承
- 64位CPU,64位操作系统,和64位应用程序三者之间的关系
- 终于理解了unicode、utf-8、gb2312这些编码集之间的关系了
- 理解Nginx, WSGI, Flask之间的关系
- Uml 理解Rational Rose软件中四种视图和Uml 9类图之间的关系
- 操作系统与应用程序的关系 操作系统主要可以分为两大部分:内核和内核之外的一些程序。内核就是直接控制最底层的硬件,而我们日常所用到的软件,大都是通过内核之外一些程序与内核之间的接口完成的,例如WINDO
- 库、系统调用、操作系统和硬件之间的关系, linux 课下总结