- C#可視化程序設計案例教程(第5版)
- 劉培林 史熒中 劉貴鋒主編
- 600字
- 2023-11-09 18:57:06
1.1.3 公共語言運行庫
.NET Framework的核心是運行庫的執行環境,稱為公共語言運行庫(CLR)或.NET運行庫。通常將在CLR的控制下運行的代碼稱為托管代碼(Managed Code)。
但是,在CLR運行開發的源代碼之前,需要編譯它們(C#或其他語言)。在.NET中編譯分為兩個階段。
1)把源代碼編譯為MSIL。
2)CLR把MSIL編譯為平臺專用的代碼。
這兩個階段的編譯過程非常重要,正是將代碼編譯為中間語言才使得.NET具有了許多優點。
微軟中間語言與Java字節代碼共享同一種理念:它們都是一種低級語言,語法很簡單(使用數字代碼,而不是文本代碼),可以快速地轉換為內部機器碼。對于代碼來說,這種精心設計的通用語法具有以下優點。
1)平臺無關性。這意味著包含字節代碼指令的同一文件可以放在任一平臺中,編譯過程的最后階段可以很容易地完成,這樣代碼就可以運行在特定的平臺上。換言之,編譯為中間語言就可以獲得.NET平臺無關性,這與編譯為Java字節代碼就會得到Java平臺無關性是一樣的。
2)提高了性能。前面把MSIL和Java字節代碼做了比較,實際上,MSIL比Java字節代碼的作用還要大。MSIL總是即時編譯的(稱為JIT編譯),而Java字節代碼常常是解釋性的,其缺點是在運行應用程序時,把Java字節代碼轉換為內部可執行代碼的過程會導致性能的損失。
3)語言的互操作性。使用MSIL不僅支持平臺無關性,還支持語言的互操作性。簡言之,就是能將任何一種語言編譯為中間代碼,編譯好的代碼可以與從其他語言編譯過來的代碼進行交互操作,如Visual Basic、Visual C++、Visual J#、腳本語言、COM和COM+。