寫這個純粹是自己的一點學習總結,其實就學習的筆記整理,相當於對自己的一點督促,如有看到不正確的歡迎指出
一般我們寫**都是使用的高階語言,但是在clr中執行的**並不是我們直接寫的**,而是通過我們選擇對應語言的編輯器生產的中間語言執行,所以一開始會介紹,在clr執行之前,到底做了什麼?
所有面向clr的語言都可以在clr中執行並編譯,例如c#、f#,在**在clr執行之前,則先會選擇對應的編譯器進行編譯,並生產中間語言(il),所以實際執行的是中間語言,之所以clr能實現多種語言相容也是因為如此。 注:c++很特殊,可以同時編寫託管**和非託管**
託管模組: 在進行對應的語言編譯之後,對生成乙個叫託管模組的乙個檔案,說白了就是電腦上的乙個特殊的檔案而已,但是因為有了clr頭,所以能被clr識別到,il則是託管模組重要的組成元素之一,程式集大致由四個部分組成:
1、pe頭:windows檔案的標準
2、clr頭:標記為可以clr識別的託管檔案
3、元資料:對於**中定義類和引用類的描述
4、il(中間語言):用於clr中執行的重要**
其中元資料是其中重要部分組成,為clr效能以及編寫時都有幫助:
1、避免重複編譯
2、編寫**時的只能感應
3、型別安全的檢查
4、序列化傳輸
5、gc的幫助
程式集: 介紹完託管模組後就必須要介紹一下大家比較熟悉的程式集了,程式集是由乙個或多個託管模組和若干個資源檔案組成,但是多出了乙個新的檔案:清單,清單則是對於託管模組和資源的乙個描述的檔案,如果乙個程式集只有乙個託管模組則他就是託管模組本身。
至此,在介紹clr執行**前重要的幾個檔案就介紹完畢了,在**clr要低如何執行**之前,下一節我們先看一下clr是如何啟動的。
《UNIX環境高階程式設計》知識點整理(第一章)
1.4檔案和目錄 unix檔案系統是目錄和檔案的一種層次結構,所有東西的起點是根的目錄 1.6程式和程序 程式的執行例項被稱為程序,每個程序都有乙個唯一的非負數id,稱為程序id。呼叫fork建立乙個新程序,被建立的程序稱為子程序。fork對父程序返回新的子程序的程序id 乙個非負整數 對子程序返回...
第一章HTML知識點
html5為什麼只需要寫?html5不基於sgml,因此不需要對dtd進行引用,但是需要doctype來規範瀏覽器的行為 讓瀏覽器按照他們應該的方式來執行 而html4.01基於sgml,所以需要對dtd進行引用,才能告知瀏覽器文件所使用的文件型別。doctype的作用是什麼?嚴格模式與混雜模式如何...
第一章 預備知識
1.c 融合了3中不同的程式設計傳統 c語言代表的過程性語言傳統,c 在c語言基礎上新增的類代表的物件導向語言的傳統以及c 模板支援的通用程式設計傳統。2.計算機要處理兩個概念 資料和演算法。資料是程式使用和處理的資訊,而演算法是程式使用的方法。過程性語言強調程式設計的演算法方面。而oop強調的是資...