官术网_书友最值得收藏!

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+。

主站蜘蛛池模板: 梁平县| 东安县| 土默特左旗| 左权县| 马关县| 竹溪县| 嘉黎县| 新巴尔虎右旗| 科尔| 祁东县| 佛学| 漯河市| 阿图什市| 定远县| 富顺县| 洛浦县| 乌拉特前旗| 揭东县| 南川市| 沿河| 河曲县| 鞍山市| 靖西县| 勐海县| 永昌县| 富平县| 稻城县| 柘城县| 梁山县| 沅陵县| 宁城县| 津南区| 马龙县| 海阳市| 常熟市| 新巴尔虎右旗| 民县| 苏尼特右旗| 恩施市| 休宁县| 咸阳市|