.net平台下對C#代碼的編譯


最近趕項目忽然想到一個問題,那就是在 .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)(由中間代碼---->>機器代碼)

 

 

     

     版權聲明:本文為博主原創文章,如需轉載,請標明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM