国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

程序是怎么一步步變成機(jī)器指令的?

開發(fā) 前端
程序員編寫的程序?qū)嶋H上就是一個(gè)字符串,必須得有個(gè)什么東西把字符串轉(zhuǎn)變從機(jī)器指令,它的輸入是字符串,輸出是01二進(jìn)制機(jī)器指令,這就是編譯器。

大家好,我是小風(fēng)哥,今天簡(jiǎn)單聊聊程序是怎么一步步變成機(jī)器指令的。

左邊是我們寫的代碼,右邊是CPU執(zhí)行的機(jī)器指令:

圖片圖片

想讓CPU執(zhí)行代碼只需要簡(jiǎn)單的點(diǎn)擊一下這個(gè)按鈕:

圖片圖片

可是你知道這個(gè)按鈕的背后經(jīng)歷了哪些復(fù)雜的操作,你有沒(méi)有想過(guò)代碼是怎么一步步變成機(jī)器指令的?

程序員編寫的程序?qū)嶋H上就是一個(gè)字符串,必須得有個(gè)什么東西把字符串轉(zhuǎn)變從機(jī)器指令,它的輸入是字符串,輸出是01二進(jìn)制機(jī)器指令,這就是編譯器。

圖片圖片

編譯器本身就是一個(gè)程序,把人類認(rèn)識(shí)的程序轉(zhuǎn)為CPU可以執(zhí)行的機(jī)器指令。

假設(shè)有這樣一段代碼:

圖片圖片

這實(shí)際上就是一個(gè)字符串,編譯器要做的第一件事就是遍歷字符串并把有意義的字符組合提取出來(lái),忽略掉空格換行等字符。

這里每一個(gè)字符組合實(shí)際上都有類型,比如int 和main都是關(guān)鍵字,0和5都是數(shù)字等,因此還需要標(biāo)注好類型,這一步就是所謂的提取token。

圖片圖片

提取出token之后還需要知道這些token組合在一起的含義是什么。

接下來(lái)遍歷所有token進(jìn)行解析。

按照什么解析呢?答案是按照語(yǔ)法。

圖片圖片

假設(shè)編譯器接下來(lái)發(fā)現(xiàn)token是if,那么很顯然,接下來(lái)會(huì)判定這是一個(gè)if語(yǔ)句,那么接下來(lái)就按照if語(yǔ)句的語(yǔ)法來(lái)解析。

圖片圖片

編譯器在按照語(yǔ)法解析時(shí)會(huì)生成一顆樹,首先匹配的是if本身:

圖片圖片

接下來(lái)是左括號(hào):

圖片圖片

括號(hào)之后是布爾表達(dá)式:

圖片圖片

布爾表達(dá)式之后是右括號(hào)以及大的左括號(hào)。

接著是if內(nèi)部的語(yǔ)句:

圖片圖片

注意看,根據(jù)語(yǔ)法解析token后生成的這棵樹就叫做抽象語(yǔ)法樹:AST。

接下來(lái),編譯器遍歷這顆抽象語(yǔ)法樹并生成指令:

圖片圖片

當(dāng)然真正的編譯器可能并不會(huì)在這里直接生成機(jī)器指令。

我們知道CPU只能執(zhí)行一種類型的機(jī)器指令,x86處理器只能執(zhí)行x86機(jī)器指令,arm處理器只能執(zhí)行arm機(jī)器指令:

圖片圖片

如果你發(fā)明了一種語(yǔ)言,為了適配不同的處理器自己需要針對(duì)每一種處理器編寫相應(yīng)的后端部分。

圖片圖片

要是有一種工具能幫我們完成針對(duì)不同處理器的適配工作就好了,這就是LLVM,我們可以只生成針對(duì)LLVM的中間代碼,由LLVM處理剩下的部分。

圖片圖片

這就是生成中間代碼的好處。

值得注意的是,編譯器在生成指令時(shí)會(huì)進(jìn)行優(yōu)化,這個(gè)示例中變量a實(shí)際上沒(méi)什么用處,編譯器會(huì)注意到這一點(diǎn)并把針對(duì)變量a的賦值指令去掉。

圖片圖片

得到匯編指令后編譯器會(huì)最終將其轉(zhuǎn)為CPU可以認(rèn)知的二進(jìn)制機(jī)器指令,每個(gè)源文件被編譯后都會(huì)生成一個(gè)目標(biāo)文件,目標(biāo)文件中就是轉(zhuǎn)換后的二進(jìn)制機(jī)器指令。

圖片圖片

最后,鏈接器會(huì)把目標(biāo)文件打包成最終的可執(zhí)行程序,

圖片 圖片

責(zé)任編輯:武曉燕 來(lái)源: 碼農(nóng)的荒島求生
相關(guān)推薦

2024-08-30 08:30:29

CPU操作系統(tǒng)寄存器

2024-09-30 09:56:59

2017-01-19 21:08:33

iOS路由構(gòu)建

2018-12-24 10:04:06

Docker存儲(chǔ)驅(qū)動(dòng)

2018-07-13 15:36:52

2019-03-05 14:09:27

Docker存儲(chǔ)容器

2019-07-09 15:23:22

Docker存儲(chǔ)驅(qū)動(dòng)

2017-12-25 11:50:57

LinuxArch Linux

2016-11-02 18:54:01

javascript

2024-09-12 10:04:06

內(nèi)存程序系統(tǒng)

2010-03-04 16:28:17

Android核心代碼

2024-11-11 10:28:33

操作系統(tǒng)Unix系統(tǒng)

2025-03-28 09:39:15

CPU指令信號(hào)

2024-06-27 08:30:36

內(nèi)存擴(kuò)容堆區(qū)

2025-04-03 01:45:00

2011-05-10 10:28:55

2020-12-24 11:19:55

JavaMapHashMap

2018-06-11 15:30:12

2018-04-23 14:23:12

2019-04-01 10:15:02

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

久久不射网站| 欧美精品制服第一页| 欧美黑人3p| 久久精品国产大片免费观看| 国产亚洲福利一区| 在线观看男女av免费网址| 中文字幕乱码日本亚洲一区二区| 国产二区三区四区| 欧美精品一区二区三区在线| 波多野结衣家庭教师在线播放 | 欧美日韩精品免费| 在线天堂资源www在线污| 欧美老女人在线视频| 免费看的黄色欧美网站| 成人手机在线| 夜夜嗨av一区二区三区免费区| 91精品国产乱码久久久久久久| 欧美人与动牲交xxxxbbbb| 亚洲妇女屁股眼交7| 综合久久av| 欧美一区视久久| 国产精品理论在线观看| 中文字幕一区二区三区免费视频| 日韩欧美一区二区三区久久| 高清毛片在线看| 最近2019中文字幕mv免费看| 成人国产精品免费观看| 日韩在线综合网| 香蕉影视欧美成人| 性xxxfreexxxx性欧美| 色小说视频一区| 99视频精品全部免费在线视频| 视频在线一区二区三区| 国产精品色噜噜| 国产黄色在线观看| 欧美激情精品久久久久久黑人 | 国产精品日本| 亚洲自偷自拍熟女另类| 在线亚洲免费视频| 日韩成人综合网| 国产91一区二区三区| 久久久久综合网| 日本动漫同人动漫在线观看| 国产激情综合五月久久| av成人免费| 91女主播在线观看| 91精品国产91综合久久蜜臀| 午夜亚洲国产au精品一区二区| 婷婷激情一区| 精品久久久中文字幕| 亚洲欧美日本国产有色 | 久久久无码中文字幕久...| 亚洲综合久久av| 国产精品国色综合久久| 国产风韵犹存在线视精品| 头脑特工队2在线播放| 中文字幕一区二区三区电影| 亚洲精选在线| 影音先锋导航| 久久夜色撩人精品| 久久精品国产一区二区| 日韩欧美电影在线观看| 久久久久久久999精品视频| 麻豆久久久久久| 国产三级电影在线观看| 欧美亚洲国产视频小说| 不卡av免费在线观看| 另类视频在线| 国产精品v欧美精品v日韩| 亚洲色图视频网站| vam成人资源在线观看| 艳色歌舞团一区二区三区| 色综合激情五月| 亚洲资源网站| 手机看片福利日韩| 爱福利视频一区| 国产在线一区二区| 97caopor国产在线视频| 亚洲综合在线中文字幕| 亚洲欧美激情视频在线观看一区二区三区 | 在线观看久久久久久| 欧美资源在线| 国产激情在线观看| 风间由美中文字幕在线看视频国产欧美| 久久久久综合一区二区三区| 欧美日韩色婷婷| 国产欧美一区| 91原色影院| 欧美亚洲成人xxx| 国产精品午夜电影| 亚洲精品黑牛一区二区三区| 日日摸日日碰夜夜爽av| 日韩在线视频播放| 国内精品久久久久影院薰衣草| 川上优av中文字幕一区二区| 亚洲第一综合| 亚洲国产成人精品女人久久久| 蜜臀久久99精品久久久久宅男 | 亚洲国产欧美国产综合一区| 第九色区av在线| 99精品国产高清一区二区| 色偷偷久久人人79超碰人人澡| 激情综合网俺也去| 亚洲香蕉成人av网站在线观看| 激情成人综合网| av资源亚洲| 妺妺窝人体色www看人体| 中文字幕精品一区二区精品| 99视频一区二区| 国产成人77亚洲精品www| 日韩av资源在线| 88xx成人精品| 一本久道久久综合中文字幕| 免费亚洲婷婷| 日本中文字幕一区二区| 日韩黄色片视频| 国产精品狠色婷| 欧美日韩国产一区二区三区地区| 爽好久久久欧美精品| 国产精品字幕| 成人免费在线观看网站| 国产视频观看一区| 日韩视频中午一区| 波波电影院一区二区三区| 凹凸av导航大全精品| 日韩精品视频无播放器在线看 | 欧美人体做爰大胆视频| 美女网站视频在线| 欧在线一二三四区| 91在线视频精品| 国产成人福利视频| 综合久久2o19| 天堂中文在线视频| 午夜在线网站| 日韩av在线第一页| 精品久久久久久一区二区里番| 日韩精品丝袜在线| 国产一区二区导航在线播放| 欧美日韩日本国产亚洲在线 | 亚洲色图50p| 日韩精品一区二区三区四区 | 亚洲香蕉av| 久久久久免费av| 久久精品官网| 亚洲精选一区| 亚洲青色在线| 亚洲电影男人天堂| 日韩中文字幕在线一区| h片在线观看| 色a资源在线| 亚洲日本视频在线| www.浪潮av.com| 天堂аⅴ在线最新版在线| 二区三区在线观看| 污污在线观看| 一个人免费观看视频www在线播放 一个人免费视频www在线观看 | 久久精品免费观看| 自拍偷拍欧美一区| 亚洲xxxx视频| 97久久久久久| 国产精品成人av性教育| 成人精品视频在线| 91超碰在线电影| 日本道色综合久久影院| 欧美黑人巨大精品一区二区| 日韩在线观看免费全集电视剧网站 | 成人国产激情| 91福利在线尤物| 亚洲人亚洲人色久| 国产日韩欧美综合在线| 在线观看亚洲专区| 6080亚洲精品一区二区| 国产视频在线观看一区二区| 精品蜜桃在线看| 日韩欧美亚洲国产精品字幕久久久| 不卡的看片网站| 国产毛片精品久久| 日韩天堂在线| blacked蜜桃精品一区| 天天色天天射综合网| 国产精品一卡| 99re热这里只有精品免费视频| 亚洲一区视频在线| 欧美亚洲综合一区| 欧美猛男性生活免费| 超碰97在线播放| 国产青草视频在线观看| 亚洲免费av一区二区三区| av电影在线观看| 国产精品亚洲一区二区在线观看 | 久久精品日韩欧美| 国产亚洲女人久久久久毛片| 一本久久精品一区二区| 九九热在线精品视频| 亚洲在线免费视频| 好男人www社区| 免费成人高清在线视频| 精品一区二区精品| 884aa四虎影成人精品一区| 国产欧美一区二区三区久久人妖|