1. 程式人生 > >VIR via C#第一章:CLR的執行模型

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

  1. 什麼是CLR:

         CLR是微軟為.net的虛擬機器取得名字。它定義可一個程式碼執行的環境(就相當於基於window上的小型的作業系統)

         CLS:支援CLR的各種語言之間,有各種不同的特性和語法。為了支援各種語言之間的互操作性。

         CLR是基於型別的,一個型別將功能提供給一個應用程式或者另一個型別來使用。通過型別,用一種程式語言寫的程式碼能與用另一種語言寫的程式碼溝通。由於型別是CLR的根本,微軟專門為如何定義、使用和管理型別定義了一個正式的規範-- 通用型別系統(Common Type System),即CTS

2.CLR是如何工作的:

 不同的語言首先由各自的編譯器彙編成中間程式碼(IL),也就是託管程式碼(託管模組實際上是標準的Microsoft windows 可移植執行體,只是需要CLR才能執行)。(CLR只會認識IL,它是面向IL的),之後CLR根據當前的系統,將IL彙編成原生代碼(native code),(cpu面向原生代碼)

JIT:即時編譯器:編譯中間語言,在CLR中將中間語言編譯成原生代碼的編譯器,即時編譯的解釋:當第一次執行某型別的方法時,會在記憶體上開闢一塊空間,用於存放資料,之後再次執行該方法時,會直接在記憶體上取資料,大大的降低的時間。

3.託管模組和程式集之間的關係

程式集是一個或者多個模組/資原始檔的邏輯性分組,在CLR眼中,程式集就相當於一個元件。也就是說CLR是和程式集譯器工作的。