计算机科学

首页 > 计算机科学

通用中间语言

2018-09-05 18:20:45     所属分类:程序设计语言

通用中间语言Common Intermediate Language,简称CIL,发音为"sill"或"kill")是一种属于通用语言架构和.NET框架的低阶(lowest-level)的人类可读的编程语言。目标为.NET框架的语言被编译成CIL,然后汇编成字节码。CIL类似一个面向对象的组合语言,并且它是完全基于堆栈的。它运行在虚拟机上,其主要的语言有C#、Visual Basic .NET(VB.NET)、C++/CLI以及J#。

在.NET语言的测试版中,CIL原本叫做微软中间语言,即Microsoft Intermediate Language,简称MSIL。由于C#和通用语言架构的标准化,在.Net开发平台下,所有语言(C#、VB.NET、J#、C++/CLI)都会被编译为MSIL,再由CLR负责运行,字节码现在已经官方地成为了CIL。因此MSIL有时仍会与CIL混用,特别是那些.NET语言的老用户。更详细的信息可以参看微软的说明。

目录

  • 1 概述
  • 2 即时编译(JIT)
  • 3 NGEN(本机映像生成器)编译
  • 4 元数据
  • 5 执行CIL
  • 6 参见
  • 7 参考文献
  • 8 外部链接

概述

在编译.NET编程语言时,源代码被翻译成CIL码,而不是基于特定平台或处理器的目标代码。CIL是一种独立于具体CPU和平台的指令集,它可以在任何支持.NET framework的环境下运行。CIL码在运行时被检查并提供比二进制代码更好的安全性和可靠性。

即时编译(JIT)

即时编译是指字节码在CPU执行时被立即转换成机器码。转换是在程序执行的过程中逐渐进行的。即时编译技术提供了特定环境下的最佳化、运行时类型安全以及汇编验证。为此,即时编译器检查程序集元数据中是否有非法访问和句柄的冲突。

NGEN(本机映像生成器)编译

本机映像生成器(Ngen.exe)是一个提高托管应用程序性能的工具。Ngen.exe创建本机映像(包含经编译的特定于处理器的机器代码的文件),并将它们安装到本地计算机上的本机映像缓存中。运行库可从缓存中使用本机映像,而不是使用实时编译器编译原始程序集。

元数据

执行CIL

参见

  • PyPy,可将Python编译成CIL的一套编译器
  • Phalanger(PHP into CIL compiler)

参考文献

外部链接

  • Hello world program in CIL
  • Kenny Kerr's intro to CIL (called MSIL in the tutorial)
  • Common Language Infrastructure (CLI ) - Partition III - CIL Instruction Set
  • Tutorial including CIL (called MSIL in the tutorial) by Aleksey Nudelman
  • Common Language Infrastructure (Standard ECMA-335)
  • Speed: NGen Revs Up Your Performance With Powerful New Features -- MSDN Magazine, April 2005
  • C# and Common Language Infrastructure Standards”on MSDN
版权声明:本文由北城百科网创作,转载请联系管理获取授权,未经容许转载必究。https://www.beichengjiu.com/computerscience/340627.html

显示全文

取消

感谢您的支持,我会继续努力的!

扫码支持
支付宝扫一扫赏金或者微信支付5毛钱,阅读全文

打开微信扫一扫,即可进行阅读全文哦


上一篇:助记符
下一篇:功能区块图
相关推荐