最近學習了一些高級語言虛擬機的知識,在此對.NET平臺和java平臺做一個簡單的比較。對java平臺已經很熟了,所以此處只介紹.NET平臺下的一些概念。
一、CLI
通用語言基礎架構(Common Language Infrastructure,簡稱CLI)是一個開放的技術規範。
通用語言基礎架構定義了構成.NET Framework基礎結構的可執行碼以及代碼的運行時環境的規範,它定義了一個語言無關的跨體系結構的運行環境,這使得開發者可以用規範內定義的各種高級語言來開發軟件,並且無需修正即可將軟件運行在不同的計算機體系結構上。
通用語言運行庫(CLR)則是微軟對此標準(CLI)的實現。
二、對CLI的實現
Microsoft .NET Framework - 微軟提供的面向Windows系統的實現,提供了各種各樣的程序庫,工具等。
Microsoft Silverlight - 微軟提供的一個跨平臺實現,能同時在Windows和Macintosh操作系統上運行。
.NET Compact Framework - 微軟提供的面向便攜式系統的商用實現。
Microsoft XNA - 微軟提供給遊戲開發人員使用的一個CLI,面向的是XBOX和Windows Vista。
Rotor - Microsoft Shared Source CLI(Rotor)微軟開發出來的一個在Window,Mac OS X和FreeBSD上運行的一個CLI實現,但微軟並沒有授權用Rotor開發商業程序,只是一個學習工具。
Mono - 由Novell贊助開發的開源實現,它能夠應用於Linux,Mac OS等多種操作系統。
dotGNU - dotGNU項目也是一個開源並且自由的實現。
三、CLR
通用語言運行平臺(Common Language Runtime,簡稱CLR)是微軟為他們的.NET的虛擬機所選用的名稱。它是微軟對通用語言架構(CLI)的實現版本,它定義了一個代碼運行的環境。CLR運行一種稱為通用中間語言的字節碼,這個是微軟的通用中間語言實現版本。
四、.NET Framework vs. CLI vs. CLR
CLI是標準。
.NET Framework是對CLI標準的實現。
CLR只是.NET Framework裡面的虛擬機的名字。類似jvm。
附上.NET平臺與JAVA平臺的比較:(圖片來源)
原文:https://www.cnblogs.com/tsiangleo/p/5021589.html
閱讀更多 全民學編程 的文章