CLR Via讀書筆記第一章(1)

寫這個純粹是自己的一點學習總結,其實就學習的筆記整理,相當於對自己的一點督促,如有看到不正確的歡迎指出
一般我們寫代碼都是使用的高級語言,但是在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是如何啓動的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章