高級語言虛擬機的一點理解,對比.NET和Java平臺

最近學習了一些高級語言虛擬機的知識,在此對.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