編譯器-編譯原理課程設(shè)計(jì).doc

編譯器-編譯原理課程設(shè)計(jì).doc

ID:59338319

大?。?020.00 KB

頁(yè)數(shù):63頁(yè)

時(shí)間:2020-09-04

編譯器-編譯原理課程設(shè)計(jì).doc_第1頁(yè)
編譯器-編譯原理課程設(shè)計(jì).doc_第2頁(yè)
編譯器-編譯原理課程設(shè)計(jì).doc_第3頁(yè)
編譯器-編譯原理課程設(shè)計(jì).doc_第4頁(yè)
編譯器-編譯原理課程設(shè)計(jì).doc_第5頁(yè)
資源描述:

《編譯器-編譯原理課程設(shè)計(jì).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、廣西大學(xué)編譯原理課程設(shè)計(jì)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)姓名:課程:編譯原理指導(dǎo)教師:目錄一.程序簡(jiǎn)介與分析---------------------------------------------------------1二.程序適用范圍-----------------------------------------------------------1三.詞法分析---------------------------------------------------------------1四.語(yǔ)法分析----------------------

2、-----------------------------------------3五.語(yǔ)義分析和中間代碼生成------------------------------------------------9六.代碼生成--------------------------------------------------------------11七.流程圖----------------------------------------------------------------12八.實(shí)現(xiàn)------------------------

3、------------------------------------------13九.程序運(yùn)行結(jié)果----------------------------------------------------------13十.總結(jié)------------------------------------------------------------------18十一.附錄(源程序)--------------------------------------------------------19簡(jiǎn)單的編譯程序設(shè)計(jì)一.程序簡(jiǎn)介與分析本程序

4、由四個(gè)部分組成:詞法分析子程序,語(yǔ)法分析子程序,語(yǔ)義分析子程序,目標(biāo)代碼生成程序。本程序輸入一個(gè)叫haominjie.txt的c語(yǔ)言源程序,然后對(duì)它進(jìn)行詞法,語(yǔ)法,語(yǔ)義分析,并輸出匯編代碼。詞法分析輸入的是c語(yǔ)言源程序,輸出的3是具有獨(dú)立語(yǔ)法意義的單詞符號(hào)。語(yǔ)法分析以詞法分析產(chǎn)生的編碼流為輸入,按照SLR(1)分析方法進(jìn)行語(yǔ)法分析,產(chǎn)生語(yǔ)法樹,輸出移進(jìn)和歸約的動(dòng)作,如果源程序不符合文法,則有“語(yǔ)法分析出錯(cuò)”的提示。語(yǔ)義分析階段,在語(yǔ)法分析的同時(shí),在歸約的時(shí)候,給出相應(yīng)的語(yǔ)義動(dòng)作,最后輸出中間代碼四元式和新的符號(hào)表,如果有未聲明的變量出現(xiàn),則

5、會(huì)提示出出錯(cuò),并顯示出此變量的名稱。代碼生成階段,將語(yǔ)義分析得到的中間代碼四元式轉(zhuǎn)化為匯編語(yǔ)言的目標(biāo)代碼并輸出。二.程序適用范圍本程序的使用范圍為:整型常量,四則運(yùn)算(為了簡(jiǎn)化問(wèn)題,本程序只考慮加法運(yùn)算和乘法運(yùn)算)和布爾表達(dá)式以及相應(yīng)的賦值語(yǔ)句,條件轉(zhuǎn)移語(yǔ)句和循環(huán)語(yǔ)句。三.詞法分析根據(jù)詞法分析的需要,我將源程序中的單詞符號(hào)分為:保留字,字母(標(biāo)識(shí)符),界符三類,統(tǒng)一用一張表表示如下:界符,保留字表單詞=+*>:;{}()andifthenwhiledoint標(biāo)志符編碼1234567891031323335363725程序從源程序文件haom

6、injie.txt中一次讀入一個(gè)字符,并判斷它是不是字母,界符,保留字,空格,換行,結(jié)束符號(hào)或者非法字符。流程圖如下:詞法分析流程圖一.語(yǔ)法分析.源程序中涉及的文法G[P]定義如下表:說(shuō)明語(yǔ)句表達(dá)式布爾表達(dá)式句法0、P’→P1、P→id()L;R2、L→L;D3、L→D4、D→id:int5、E→E+T6、E→T7、T→T*F8、T→F9、F→(E)10、F→id11、B→BandB12、B→id>id13、M→id=E14、S→ifBthenM15、S→whileBdoM16、S→M17、N→N;S18、N→S19、R→{N}.上述文法的

7、每個(gè)非終結(jié)符的FIRST集和FOLLOW集如下表:FIRST集FOLLOW集P{id}{#}L{id}{;}D{id}{;}E{(,id}{},;,+,),#}T{(,id}{},;,+,),*,#}F{(,id}{},;,+,),*,#}B{id}{then,do,and}M{id}{},;}S{id,while,if}{},;}N{id,while,if}{},;}R{{}{#}.文法G[P]的項(xiàng)目集部分如下:0.P’→.P1.P’→P.2.P→.id()L;R3.P→id.()L;R4.P→id(.)L;R5.P→id().L;R6.

8、P→id()L.;R7.P→id()L;.R8.P→id()L;R.9.L→.L;D10.L→L.;D11.L→L;.D12.L→L;D.13.D→.id:int14.D→id.

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。