欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C#執(zhí)行原理是什么-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)C#執(zhí)行原理是什么,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),雅安服務(wù)器托管、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,香港機(jī)房服務(wù)器托管,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國大陸、港澳臺(tái)以及歐美等多個(gè)國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。

從編譯原理說起

一句話介紹編譯器:編譯器是將用某種程式語言寫成的源代碼(源語言),轉(zhuǎn)換成另一種程式語言(目標(biāo)語言)等價(jià)形式的程序。通常我們是將某種高級(jí)語言(如C、C++、C# 、Java)轉(zhuǎn)換成低級(jí)語言(匯編語言、機(jī)器語言)。

編譯器以流水線的形式進(jìn)行工作,分為幾個(gè)階段:源代碼 → 詞法分析 → 語法分析 → 語義分析 → 目標(biāo)代碼 → 鏈接 → 可執(zhí)行文件?,F(xiàn)代編譯器還會(huì)更復(fù)雜,中間會(huì)增加更多的處理過程,比如預(yù)處理器,中間代碼生成,代碼優(yōu)化等。

C#執(zhí)行原理是什么

虛擬機(jī)是什么

虛擬機(jī)(VM),簡單理解,就是可以執(zhí)行特定指令的一種程序。為了執(zhí)行指令,還需要一些配套的設(shè)施,如寄存器、棧等。虛擬機(jī)可以很復(fù)雜,復(fù)雜到模擬真正的計(jì)算機(jī)硬件,也可以很簡單,簡單到只能做加減乘除。

在編譯器領(lǐng)域,虛擬機(jī)通常執(zhí)行一種叫中間代碼的語言,中間代碼由高級(jí)語言轉(zhuǎn)換而成,以 Java 為例,Java 編譯后產(chǎn)生的并不是一個(gè)可執(zhí)行的文件,而是一個(gè) ByteCode (字節(jié)碼)文件,里面包含了從 Java 源代碼轉(zhuǎn)換成等價(jià)的字節(jié)碼形式的代碼。Java 虛擬機(jī)(JVM)負(fù)責(zé)執(zhí)行這個(gè)文件。

虛擬機(jī)執(zhí)行中間代碼的方式分為 2 種:解釋執(zhí)行和 JIT(即時(shí)編譯)。解釋執(zhí)行即逐條執(zhí)行每條指令,JIT 則是先將中間代碼在開始運(yùn)行的時(shí)候編譯成機(jī)器碼,然后執(zhí)行機(jī)器碼。由于執(zhí)行的是中間代碼,所以,在不同的平臺(tái)實(shí)現(xiàn)不同的虛擬機(jī),都可以執(zhí)行同樣的中間代碼,也就實(shí)現(xiàn)了跨平臺(tái)。

int run(context* ctx, code* c) {
    for (cmd in c->cmds) {
        switch (cmd.type) {
            case ADD:
            // todo add
            break;
            case SUB:
            // todo subtract
            break;
            // ...
        }
    }
    return 0;
}

總結(jié)一下,虛擬機(jī)本身并不跨平臺(tái),而是語言是跨平臺(tái)的,對(duì)于開發(fā)人員來說,只需要關(guān)心開發(fā)語言即可,不需要關(guān)心虛擬機(jī)是怎么實(shí)現(xiàn)的,這也是 Java 可以跨平臺(tái)的原因,C# 也是同樣的。推而廣之,理論上任何語言都可以跨平臺(tái),只要在相應(yīng)平臺(tái)實(shí)現(xiàn)了編譯器或者虛擬機(jī)等配套設(shè)施。

C# 是什么,IL 又是什么

C# 是微軟推出的一種基于 .NET 框架的、面向?qū)ο蟮母呒?jí)編程語言。微軟在 2000 年發(fā)布了這種語言,希望借助這種語言來取代Java,更多詳細(xì)的介紹可以參看  C# Wiki。

C# 是一個(gè)語言,微軟給它定制了一份語言規(guī)范,提供了從開發(fā)、編譯、部署、執(zhí)行的完整的一條龍的服務(wù),每隔一段時(shí)間會(huì)發(fā)布一份最新的規(guī)范,添加一些新的語言特性。從語法層面來說,C# 是一個(gè)很完善,寫起來非常舒服的語言。

C# 和 Java 類似,C# 會(huì)編譯成一個(gè)中間語言(CIL,Common Intermediate Language,也叫 MSIL),CIL 也是一個(gè)高級(jí)語言,而運(yùn)行 CIL 的虛擬機(jī)叫 CLR(Common Language Runtime)。通常我們把 C#、CIL、CLR,再加上微軟提供的一套基礎(chǔ)類庫稱為 .Net Framework。

C#執(zhí)行原理是什么

C# 天生就是為征服宇宙設(shè)計(jì)的,不過非常遺憾,由于微軟的封閉,這個(gè)目標(biāo)并沒有實(shí)現(xiàn)。當(dāng)然 C# 現(xiàn)在還過得很好,因?yàn)橛螒蚨鵁òl(fā)了新的活力,因?yàn)?Unity3D,因?yàn)?Mono。

.Net Framework vs Mono

Mono 是跨平臺(tái)的 .Net Framework 的實(shí)現(xiàn)。Mono 做了一件很了不起的事情,將 CLR 在所有支持的平臺(tái)上重新實(shí)現(xiàn)了一遍,將 .Net Framework 提供的基礎(chǔ)類庫也重新實(shí)現(xiàn)了一遍。

C#執(zhí)行原理是什么

以上,Compile Time 的工作實(shí)際上可以直接用微軟已有的成果,只要將 Runtime 的 CLR 在其他平臺(tái)實(shí)現(xiàn),這個(gè)工作量不僅大,而且需要保證兼容,非常浩大的一個(gè)工程,Mono 做到了,致敬!

Unity3D 中的 C

Unity3D 內(nèi)嵌了一個(gè) Mono 虛擬機(jī),從上文可以知道,當(dāng)實(shí)現(xiàn)了某個(gè)平臺(tái)的虛擬機(jī),那語言就可以在該平臺(tái)運(yùn)行,所以,嚴(yán)格的講,Unity3D 是通過 Mono 虛擬機(jī),運(yùn)行 C# 通過編譯器編譯后生成的 IL 代碼。

Unity3D 默認(rèn)使用 C# 作為開發(fā)語言,除此之外,還支持 JS 和 BOO,因?yàn)?Unity3D 開發(fā)了相應(yīng)的編譯器,將 JS 和 BOO 編譯成了 IL。

小結(jié)

C# 在 Windows 下,是通過微軟的 C# 編譯器,生成了 IL 代碼,運(yùn)行在 CLR 中。

C# 在除 Windows 外的平臺(tái)下,是通過 Mono 的編譯器,生成了 IL 代碼,運(yùn)行在 Mono 虛擬機(jī)中,也可以直接運(yùn)行將已經(jīng)編譯好的 IL 代碼(通過任意平臺(tái)編譯)。

理論上,你創(chuàng)造了一門語言,并且實(shí)現(xiàn)了某一平臺(tái)下的編譯器,然后實(shí)現(xiàn)了所有平臺(tái)下符合語言規(guī)范的虛擬機(jī),你的語言就可以運(yùn)行在任意平臺(tái)啦。

以上就是C#執(zhí)行原理是什么,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章標(biāo)題:C#執(zhí)行原理是什么-創(chuàng)新互聯(lián)
文章地址:http://aaarwkj.com/article4/giioe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名自適應(yīng)網(wǎng)站、網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)企業(yè)網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
亚欧乱色熟女一区二区三区| 麻豆国产免费av在线| 午夜性生活免费观看视频| 国产精品一区二区三区在线| 中国女人内射69xx| 亚洲av一本岛在线播放| 91精品手机在线观看| 日韩欧美一区二区麻豆| 把熟睡的少妇弄到高潮| 91在线播放欧美国产视频| 香蕉视频在线观看亚洲精品| 日本韩国国产三级在线| 亚洲熟女午夜毛片av毛片| 免费观看国产性生活片| 亚洲欧美半夜激情一区二区| 日本不卡高清视频在线播放| 欧美日韩电影一区二区三区在线观看| 日韩精品中文女同在线播放| 日韩欧美黄片一区二区三区| 国产精品视频在线播放| 日日骚国产欧美一区二区| 亚洲一区二区三区女同| 亚洲国产第一尤物视频| 91麻豆精品一二三区在线| 97久久精品人妻一区二区三区| 亚洲第一国产综合自拍| 国产一区二区高清在线| 成人作爱视频免费播放| 美女诱惑福利视频久久久| 欧美一区二区三区久久妇| 亚洲av成人在线观看| 日韩精品有码在线视频免费观看| 夜夜嗨精品免费视频播放| 欧美日韩精品在线二区| 精华国产一区二区三区| 亚洲精品视频在线观看视频| 日产一区二区三区网站| 国产亚洲av麻豆精品推荐| 国产精品亚洲精品久久| 国产成人av在线观看| 日韩亚洲欧美成人一区|