通用中間語言

通用中間語言

通用中間語言(Common Intermediate Language,簡稱CIL)(曾經被稱為微軟中間語言或MSIL)是一種屬於通用語言架構和.NET框架的低階(lowest-level)的人類可讀的編程語言。目標為.NET框架的語言被編譯成CIL,然後彙編成位元組碼。CIL類似一個面向對象的彙編語言,並且它是完全基於堆棧的。它運行在虛擬機上,其主要的語言有C#、Visual Basic.NET、C++/CLI以及J#。

在.NET語言的測試版中,CIL原本叫做微軟中間語言(MSIL)。由於C#和通用語言架構的標準化,位元組碼已經官方地成為了CIL。因此,CIL仍舊經常與MSIL相提並論,特別是那些.NET語言的老用戶。

概述


CIL概述

在編譯.NET編程語言時,源代碼被翻譯成CIL碼,而不是基於特定平台或處理器的目標代碼。CIL是一種獨立於具體CPU和平台的指令集,它可以在任何支持.NET framework的環境下運行。CIL碼在運行時被檢查並提供比二進位代碼更好的安全性和可靠性。

即時編譯(JIT)

是指位元組碼在CPU執行時被立即轉換成機器碼。轉換是在程序執行的過程中逐漸進行的。即時編譯技術提供了特定環境下的優化、運行時類型安全以及彙編驗證。為此,即時編譯器檢查程序集元數據中是否有非法訪問和句柄的衝突。

NGEN

編譯本機映像生成器(Ngen.exe)是一個提高託管應用程序性能的工具。Ngen.exe創建本機映像(包含經編譯的特定於處理器的機器代碼的文件),並將它們安裝到本地計算機上的本機映像緩存中。運行庫可從緩存中使用本機映像,而不是使用實時編譯器編譯原始程序集。