五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

通過(guò)一句話來(lái)簡(jiǎn)單理解一個(gè)程序的編譯過(guò)程到底是做什么

2022-03-21 19:05 作者:我愛(ài)計(jì)算機(jī)科學(xué)  | 我要投稿

我們都知道,程序都需要編譯以后才能運(yùn)行,那么,編譯過(guò)程大概是做什么事情呢?

圖1

上圖是一個(gè)編譯過(guò)程的簡(jiǎn)單示意圖。

詞法分析程序必須按照一定的分類標(biāo)準(zhǔn)將源程序中的單詞進(jìn)行識(shí)別并進(jìn)行預(yù)加工處理。

語(yǔ)法分析程序的任務(wù)是將單詞符號(hào)串分解成各類語(yǔ)法單位,即確定一個(gè)程序的結(jié)構(gòu)。

語(yǔ)法單位即:短語(yǔ)、句子、子程序、函數(shù)、程序等。

語(yǔ)義分析是根據(jù)程序設(shè)計(jì)語(yǔ)言的語(yǔ)義定義(形式的或非形式的),確認(rèn)(識(shí)別)程序中各構(gòu)成組合到一起的含義,并作相應(yīng)的語(yǔ)義處理。

語(yǔ)義處理大概表示為:

圖2

這是對(duì)可執(zhí)行語(yǔ)句生成中間表示或目標(biāo)代碼。

目標(biāo)代碼指計(jì)算機(jī)科學(xué)中編譯器或匯編器處理源代碼后所生成的代碼,它一般由機(jī)器代碼或接近于機(jī)器語(yǔ)言的代碼組成。

下面以一句英語(yǔ)和一段最簡(jiǎn)單的程序?qū)Ρ葋?lái)進(jìn)行說(shuō)明。

句子:The teacher asked the student to bring the book to her

程序:int?i,s=0;

for(i=1;i<=100;i++)

s+=i;

printf("s=%d",s);


對(duì)于那句英語(yǔ),我們首先要檢查的就是那句話里面是不是每一個(gè)單詞都是正確的,檢查的方法就是看看那句話里面的單詞是不是都屬于英語(yǔ)字典里面已有的單詞。

對(duì)于下面那段程序,同樣的要先看看里面的每一個(gè)標(biāo)識(shí)符、符號(hào)、數(shù)字或者函數(shù)名是否有錯(cuò)誤,這一步在編譯中叫詞法分析。

詞法分析以后就要進(jìn)行語(yǔ)法分析,對(duì)于上面那句英語(yǔ),我們就要按照語(yǔ)法規(guī)則,看看這個(gè)句子是否符合主謂賓等語(yǔ)法規(guī)定;對(duì)于計(jì)算機(jī)程序,語(yǔ)法分析就是看其中的每一條語(yǔ)句是否符合相關(guān)規(guī)定,比如x=3+i是符合語(yǔ)法規(guī)定的,因?yàn)?號(hào)和=號(hào)的的兩邊都是數(shù)字或者變量。

語(yǔ)法分析以后就是語(yǔ)義分析。對(duì)于那句英語(yǔ)來(lái)說(shuō),就是要分析那句話中包含了什么意思,就是讓學(xué)生把一本書(shū)從某個(gè)地方拿到另一個(gè)地方。

對(duì)于程序來(lái)說(shuō),它的語(yǔ)義就是要把1到100的和求出來(lái)。

為了達(dá)成上述目標(biāo),在英語(yǔ)句子中的那個(gè)學(xué)生就必須準(zhǔn)備用腳走路,用手拿那本書(shū),也就是說(shuō),要為下面真正的動(dòng)作做好準(zhǔn)備。

對(duì)于程序來(lái)說(shuō),要實(shí)現(xiàn)加法,比如其中的語(yǔ)句s+=i,也就是s=s+i,為了真正實(shí)現(xiàn)這個(gè)加法運(yùn)算,這個(gè)時(shí)候就要為s和i兩個(gè)變量分配好存儲(chǔ)空間,然后把這兩個(gè)變量的值輸入到加法器電路的兩個(gè)輸入端,如圖2所示,并把加法運(yùn)算的結(jié)果值保留在變量s中。


上述工作都做好了以后,我們知道,計(jì)算機(jī)最終能夠執(zhí)行的指令只有匯編指令或者機(jī)器語(yǔ)言,因此,最后要把上述的高級(jí)語(yǔ)言指令轉(zhuǎn)化為匯編指令,也就是機(jī)器指令,最后生成可執(zhí)行程序,這大概就是一個(gè)計(jì)算機(jī)程序的整個(gè)編譯過(guò)程。

簡(jiǎn)單說(shuō)來(lái),編譯過(guò)程就是

1:詞法分析

2:語(yǔ)法分析

3:語(yǔ)義分析

4:生成目標(biāo)代碼


通過(guò)一句話來(lái)簡(jiǎn)單理解一個(gè)程序的編譯過(guò)程到底是做什么的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
曲靖市| 闵行区| 南华县| 高碑店市| 开原市| 临桂县| 察哈| 绥滨县| 咸宁市| 岳池县| 九龙城区| 富锦市| 湖北省| 久治县| 石屏县| 郴州市| 稷山县| 兴宁市| 武宁县| 康定县| 铜山县| 射洪县| 彭阳县| 林芝县| 攀枝花市| 石屏县| 苗栗市| 水富县| 阜康市| 林西县| 罗甸县| 武宣县| 灌云县| 河西区| 江孜县| 连州市| 海门市| 阳曲县| 石门县| 通河县| 黄陵县|