最近趕項目忽然想到一個問題,那就是在 .Net平臺下的C#代碼是怎麼從源代碼到機器可以識別的電腦的(只怪自己上學不好好讀書,現在又要重補一遍了!!!) 話不多說直接上調研結果: 預習知識: 1: IL 是微軟.NET平臺上衍生出的一門中間語言,.NET平臺上的各種高級語言(如C#,VB,F#)的編譯 ...
最近趕項目忽然想到一個問題,那就是在 .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)(由中間代碼---->>機器代碼)
版權聲明:本文為博主原創文章,如需轉載,請標明出處。