最近趕項目忽然想到一個問題,那就是在 .Net平台下的C#代碼是怎么從源代碼到機器可以識別的電腦的(只怪自己上學不好好讀書,現在又要重補一遍了!!!)
話不多說直接上調研結果:
預習知識:
1: IL 是微軟.NET平台上衍生出的一門中間語言,.NET平台上的各種高級語言(如C#,VB,F#)的編譯器會將各自的代碼轉化為IL。
2: CLR是一個可以由多編程語言使用的運行時,CLR的核心功能:內存管理,程序集加載,安全性,異常處理,線程同步等等。可以被很多屬於微軟系列的開發語言使用。
結果:
.net framework的核心是其運行庫執行環境,成為公共語言運行庫(CLR)或.net運行庫。通常將在CLR控制下運行的代碼稱為托管代碼(managed code)。CLR執行編寫好的源代碼之前需要編譯他們。.net中編譯分為兩個階段:
(1)把源代碼編譯為Microsoft中間語言(IL).
(2)CLR把IL編譯為平台專用的代碼。
第一次編譯很慢(通過各自的編譯器)(由源代碼---->>中間代碼IL),第二次編譯很快(通過CLR)(由中間代碼---->>機器代碼)
版權聲明:本文為博主原創文章,如需轉載,請標明出處。