C#是如何編譯的?


C#是如何編譯的?
 
.NET的程序是由多種語言編譯的,如C#、VB、C++、J#等,但是最后都會由各自的編譯器編譯為一致的中間語言(IL)。最后由【CLR提供運行環境】,將中間語言編譯為【機器碼】,供CPU執行。
 
為了盡量減少中間代碼編譯為機器代碼的性能損失,中間語言采用【即使編譯】,也被稱為【JIT編譯】。這種編譯方式只編譯調用的代碼部分,而並非全部編譯程序中的所有代碼,編譯過的部分會存儲在內存中,下次執行時不需要重復編譯,當退出程序時,已編譯的部分代碼才會被清除。這種策略極大的降低了中間代碼的性能損失,使程序靈活性和性能相權衡的較佳方案。
.NET Framework的核心是CLR【公共語言運行庫】,CLR是.NET程序的運行庫。中間語言需要在CLR中運行並轉碼為機器碼,所以.NET程序必須依賴.NET Framework。
 
.NET Framework由【公共語言】運行時(CLR)和基類庫(BCL)組成,前者提供運行庫環境,而后者提供豐富的類庫,適合全部.NET編程語言調用。基類庫不僅封裝了各種類型,而且還支持很多服務
 
.NET程序的中間語言(IL)也被稱為托管代碼,優點:
 
1. 平台無關性。
 
2. JIT性能優化。
 
3. 語言互操作性。支持多種語言編寫程序,並編譯為中間語言。
 
 


免責聲明!

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



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