淺談 C# CLR 執行模組

來源:互聯網
上載者:User

標籤:via   ide   ges   time   開發語言   依賴   一個   部分   模組   

前言:  買了這本 CLR via C# 已有些日子了,但是一直沒有認真翻過這本書,以前學的知識點都忘光了。  趁著現在下著雨的周末,大體記錄一下今天瞭解的筆記,也好彌補一下 C# 知識上的一些盲點。 編譯/執行過程:  C# 發展史、藉助於誰誰誰,廢話都跳過,看圖:  

  // 註明:為了節省時間,此圖非 書中原圖;

 

  名詞註解:  CLR:通用語言執行平台(Common Language Runtime),是多種語言使用的“運行時”,只運行(解釋)託管模組(IL)    // .NET 下受託管的 dll、exe 檔案需要依賴於 CLR 才能解釋運行;(也是所謂的 C# 虛擬機器 解釋型語言)  IL:中繼語言(Intermediate Language);編譯器編譯原始碼時產生的程式碼。在運行時,CLR 將它編輯成本機 CPU 指令;    // C#、VB 等編譯器,編譯出的檔案(程式集)IL,又稱“託管模組”(包含中繼語言和中繼資料)    託管模組組成部分:      託管頭標識(PE32、PE32+)理解成 x32、x64;      CLR 頭,包含要求的 CLR 版本等一些標識資訊;      中繼資料:描述原始碼中定義類和成員、以及代碼引用的類和成員;      // Visual Studio IDE 的智能感知提示,就是通過它。  JIT:CLR 編譯器,負責將 IL 編譯成本機機器代碼(CPU 指令);    // JITCompiler 時會將機器碼進行最佳化後再度丟給 CPU 執行;      // C# 編譯器已經最佳化的非常不錯了,一個開發語言的好壞多半都取決於他們的編譯器做的好壞。     // 感興趣的用 IL_DASM 反編譯出來看看,也可以看看國外一些專門做編譯器的公司,此文不對編譯過程做解釋;

淺談 C# CLR 執行模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.