一.我的定義與功能
C /CLI是一門由微軟公司發起的由通過ECMA(Standard ECMA-372)標準化的接合ISO C 擴展出來(主要在ISO C 在操作.net方面的擴展)的一門面向對象的計算機語言。最新的開發環境是Visual Studio 2008,其中express版是免費的。
二.ISO C 和CLI的無縫連線
C /CLI支持對本地ISO C 編程和.NET託管編程的無縫集成,而且可以實現類型class級和ISO C 和.NET類庫的相互使用,更強的是能夠實現類型的混合。為了實現無縫連線,絕大多數的以前的ISO C 代碼編譯後將得到託管代碼,部分不能編譯為託管IL的採用P/Invoke調用實現。在混合編程中,原來ISO C 中本地堆內的數據仍位於本地堆中,調用的託管類型在託管中運行,由.net負責分配記憶體和回不需要手動回收(有些資源除外比如說打開的檔案,網路連線等)。
三.ISO C 語言
C 是一門ISO的面向對象的語言,對於這門語言我們也從以下三個方面來看,也正是這三個主要方面決定了他被廣泛的使用。
第一,C 是一個功能強大的語言。比如C 語言本身提供的基於C語言的內嵌類型,數組,結構體和指針等,C 比C新加入的面向對象的Class,繼承,多態和模板等,還有C 標準模板庫(STL)提供的實際開發當中常用的數據結構和算法的實現;
第二,大量的開源和第三方庫,如果在windows上使用C 開發,首先我們可以藉助microsoft對C 提供的強有力的支持,比如說VS編譯器,還有UI庫MFC,還有ATL等;除此之外我們還可以看到其他的許多非microsoft的開源的和第三方的支持,比如說Boost很大程度的擴充了STL,提供了更多更高級的功能,還有Loki把C 與設計模式結合起來,還有很多的第三方的UI庫,比如QT,wxWindows,WTL,GTK等,第三方的網路通信庫,比如ACE,StreamModule等,第三方的XML庫,比如Xerces,CMarkup,tinyxml等,第三方的科學計算庫,比如Blitz ,MTL等,第三方的遊戲開發庫,比如 OGRE,KlayGE等,第三方的執行緒庫,比如C Threads,ZThreads等,還有其他的很多;
第三,C 的高性能。C 的這一特性也是毋庸質疑的,我們知道的大部分的作業系統,嵌入式開發,遊戲,圖像軟體離不開C ,這都是跟C 的高性能有很大的關係。
四.CLI CLI(Common Language Infrastructure,通用語言框架)
提供了一套可執行代碼和它所運行需要的虛擬執行環境的規範。更通俗的我們可以說它是一個虛擬平台,是作業系統和應用程式間的一層抽象。
微軟的.NET的基礎CLR(Common Language Runtime,通用語言運行時)就是CLI的一個實例。CLI主要的組成部分有:CTS,Metadata,CLS和VES。
1.CTS(Common Type System,通用類型系統)是CLI的基礎,它是一個類型規範,定義了所有CLI平台上可以定義的類型的集合,所有基於CLI的語言類型都是CTS的一個子集,目前C /CLI是對CTS描述支持最好的高級語言。 2.Metadata(元數據):用來描述和引用CTS定義的類型,元數據以一種獨立於任何語言的形式存儲,正是元數據賦予了組建自描述的能力。
3.CLS(Common Language Specification,通用語言規範),是用以確保所有CLI語言能夠互操作的一組規則,它定義了所有CLI語言都必須支持的一個最小功能集(一個 CTS的子集)。各CLI語言可以選擇自己對CTS的一部分的映射,但是為了確保不同語言的互動,至少應該支持CTS所定義的最小功能集。
4..VES(Virtual Execution System,虛擬執行系統),為CLI程式提供了一個在各種可能的平台上載入和執行託管代碼的虛擬機環境,只是一個規範,比如微軟和mono項目就各有自己的實現(mono項目前只有C#的編譯器)。.NET的CLR的JIT和GC應該屬於此範圍。 .NET Framework是微軟對CLI的一個實現,當然也是目前最好的實現,.NET Framework主要包含CLR和BCL,CLR是核心也即CLI的實現,BCL是一套通用的代碼庫,可以被所有的.NET語言(C#, VB.NET, C /CLI)程式所使用。
五.總結
其實就是在ISO C 的基礎上擴展了.net環境下。
相關詞條
-
CLI
CLI(command-line interface,命令行界面)是指可在用戶提示符下鍵入可執行指令的界面,它通常不支持滑鼠,用戶通過鍵盤輸入指令,計算...
簡介 其它相關 彙編指令 -
《C 高級編程》
本書首先探討了C#的基礎知識,包括基本語法、數據類型和面向對象的特性。接著闡述了如何把該語言套用於各種使用相關技術的應用程式,例如資料庫訪問和高級繪圖技...
基本信息 內容簡介 作者簡介 媒體推薦 編輯推薦 -
VisualC++2008入門經典
類的成員函式 構造函式 類的析構函式
基本信息 內容簡介 編輯推薦 目錄 序言 -
Csharp
C#簡介 C#簡介C#(讀做 "C SHARP",中文譯音暫時沒有.專業人士一般讀"C sharp",現在很多非專業一般讀"C井"。C...程式設計語言。並定於在微軟職業開發者論壇(PDC)上登台亮相。C...
C#簡介 C#從java繼承而來的特點 C#從C和C++繼承的特點 C#獨有的特點 -
C#
C#(讀做C sharp)是微軟公司發布的一種面向對象的於.NETFramework之上的高級程式設計語言,並定於在微軟職業開發者論壇(PDC)上登台亮...
基本概述 歷史發展 正式發布 訪問計算 程式的執行 -
組合子邏輯
;#93; 出於方便,我們用 (a b c d ... z) 來簡寫 (...(((a b) c) d) ... z)。(就是說,套用是左結合...
數學中的組合子邏輯 計算中的組合子邏輯 lambda 演算概要 組合子演算 -
Linux嵌入式設計
事件處理;基於Web的用戶界面;命令行界面(CLI);前端面板界面;幀快取...;創建命令行界面;創建以紅外控制為輸入的幀快取界面:命令行界面(CLI...CLI 1249.1.1 安全性 1259.1.2 實用性 1259.1.3...
內容簡介 編輯推薦 目錄 -
C#本質論
本書作者通過豐富的示例和詳盡的講解,向讀者全面展示了C#語言的語法基礎、核心知識和高級主題。從泛型、委託和Lambda表達式,到集合、標準運算符和疊代器...
內容簡介 作者簡介 編輯推薦 目錄 內容簡介