個(gè)人網(wǎng)站建設(shè)詳細(xì)教程百度seo關(guān)鍵詞優(yōu)化方案
C#等高級(jí)語(yǔ)言運(yùn)行流程:
假設(shè)您編寫(xiě)了一個(gè) C# 程序并將其保存在一個(gè)稱(chēng)為源代碼的文件中。
特定于語(yǔ)言的編譯器將源代碼編譯成 MSIL(Microsoft 中間語(yǔ)言),也稱(chēng)為 CIL(通用中間語(yǔ)言)或 IL(中間語(yǔ)言)及其元數(shù)據(jù)。元數(shù)據(jù)包括程序的每個(gè)功能的所有類(lèi)型、實(shí)際實(shí)現(xiàn)。MSIL 是與機(jī)器無(wú)關(guān)的代碼。
現(xiàn)在,CLR應(yīng)運(yùn)而生。CLR 為 MSIL 代碼提供服務(wù)和運(yùn)行時(shí)環(huán)境。在內(nèi)部,CLR包括JIT(即時(shí))編譯器,它將MSIL代碼轉(zhuǎn)換為由CPU進(jìn)一步執(zhí)行的機(jī)器代碼。CLR 還使用 .NET Framework 類(lèi)庫(kù)。元數(shù)據(jù)向 CLR 提供有關(guān)編程語(yǔ)言、環(huán)境、版本和類(lèi)庫(kù)的信息,CLR 通過(guò)該信息處理 MSIL 代碼。由于 CLR 很常見(jiàn),因此它允許用不同語(yǔ)言編寫(xiě)的類(lèi)的實(shí)例調(diào)用用另一種語(yǔ)言編寫(xiě)的類(lèi)的方法。

CLR(Common Language Runtime)是一個(gè)可由多種編程語(yǔ)言使用的“運(yùn)行時(shí)”,是 .NET Framework 的基本虛擬機(jī)組件。它是 .NET Framework 中的運(yùn)行時(shí)環(huán)境,它運(yùn)行代碼并通過(guò)提供各種服務(wù)幫助簡(jiǎn)化開(kāi)發(fā)過(guò)程?;旧?#xff0c;它負(fù)責(zé)管理 .NET 程序的執(zhí)行,而不管任何 .NET 編程語(yǔ)言。在內(nèi)部,CLR 實(shí)現(xiàn)了 VES(虛擬執(zhí)行系統(tǒng)),它在 Microsoft 的 CLI(公共語(yǔ)言基礎(chǔ)結(jié)構(gòu))實(shí)現(xiàn)中定義。

公共語(yǔ)言規(guī)范 (CLS):
它負(fù)責(zé)將不同的 .NET 編程語(yǔ)言語(yǔ)法規(guī)則和法規(guī)轉(zhuǎn)換為 CLR 可理解的格式?;旧?#xff0c;它提供了語(yǔ)言互操作性。語(yǔ)言互操作性意味著在 .NET 框架中也為其他編程語(yǔ)言提供執(zhí)行支持。
語(yǔ)言互操作性可以通過(guò)兩種方式實(shí)現(xiàn):
托管代碼:由 CLR 管理的 MSIL 代碼稱(chēng)為托管代碼。對(duì)于托管代碼。
非托管代碼:在 .NET 開(kāi)發(fā)之前,like.COM Components 和 Win32 API 的編程語(yǔ)言不會(huì)生成 MSIL 代碼。因此,這些不是由 CLR 管理,而是由操作系統(tǒng)管理。
IL:中間語(yǔ)言(中間代碼)是一種面向語(yǔ)法,易于翻譯成目標(biāo)程序的源程序的等效內(nèi)部表示代碼,IL是基于棧的,微軟提供ilasm.exe的il匯編器和一個(gè)名為ildasm.exe的il反匯編器。
通用類(lèi)型系統(tǒng) (CTS):
每種編程語(yǔ)言都有自己的數(shù)據(jù)類(lèi)型系統(tǒng),因此CTS負(fù)責(zé)了解.NET編程語(yǔ)言的所有數(shù)據(jù)類(lèi)型系統(tǒng),并將它們轉(zhuǎn)換為CLR可理解的格式,這將是一種通用格式。
每種 .NET 編程語(yǔ)言都有 2 種類(lèi)型的 CTS:
值類(lèi)型:值類(lèi)型將值直接存儲(chǔ)到內(nèi)存位置。這些類(lèi)型僅適用于堆棧機(jī)制。CLR 在編譯時(shí)允許這些內(nèi)存。
引用類(lèi)型:引用類(lèi)型將包含值的內(nèi)存地址,因?yàn)橐妙?lèi)型不會(huì)將變量值直接存儲(chǔ)在內(nèi)存中。這些類(lèi)型與堆機(jī)制一起使用。CLR 在運(yùn)行時(shí)為這些分配內(nèi)存。
垃圾收集器:它用于提供自動(dòng)內(nèi)存管理功能。如果沒(méi)有垃圾收集器,程序員將不得不編寫(xiě)內(nèi)存管理代碼,這對(duì)程序員來(lái)說(shuō)是一種開(kāi)銷(xiāo)。
JIT(即時(shí)編譯器):它負(fù)責(zé)使用公共語(yǔ)言運(yùn)行時(shí)環(huán)境將 CIL(公共中間語(yǔ)言)轉(zhuǎn)換為機(jī)器代碼或本機(jī)代碼。
Windows機(jī)制:Windows 是一個(gè)事件驅(qū)動(dòng)的操作系統(tǒng)。事件驅(qū)動(dòng)圍繞著消息的產(chǎn)生與處
理展開(kāi),事件驅(qū)動(dòng)消息會(huì)進(jìn)入系統(tǒng)消息隊(duì)列中并靠消息循環(huán)機(jī)制來(lái)處理和實(shí)現(xiàn)。
的通知,消息是Windows 操作系統(tǒng)的靈魂。

參考:
https://mp.weixin.qq.com/s?__biz=MzI0MTU0ODQwMQ==&mid=2247485894&idx=1&sn=8ee1e0d049f6c00f9523e14397e36a40&chksm=e908a4d8de7f2dcedcda1aa8f7ace43c471fca195ffcc44a97e6d60ce4b1a8c398de56857e4d&scene=27
https://www.cnblogs.com/jimcsharp/p/4369141.html