編譯原理課程設(shè)計(jì)報(bào)告編譯器

編譯原理課程設(shè)計(jì)報(bào)告編譯器

ID:8964344

大小:107.50 KB

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

時(shí)間:2018-04-13

編譯原理課程設(shè)計(jì)報(bào)告編譯器_第1頁(yè)
編譯原理課程設(shè)計(jì)報(bào)告編譯器_第2頁(yè)
編譯原理課程設(shè)計(jì)報(bào)告編譯器_第3頁(yè)
編譯原理課程設(shè)計(jì)報(bào)告編譯器_第4頁(yè)
編譯原理課程設(shè)計(jì)報(bào)告編譯器_第5頁(yè)
資源描述:

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

1、《編譯技術(shù)》課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:編譯器程序姓名:學(xué)號(hào):班級(jí):年月日一、課設(shè)要求模仿上學(xué)期給定的程序,根據(jù)下面具體的內(nèi)容,用C++語(yǔ)言對(duì)下述文法和單詞表定義的語(yǔ)言設(shè)計(jì)編制一個(gè)編譯器。設(shè)計(jì)報(bào)告格式撰寫報(bào)告(1)單詞符號(hào)及種別表單詞符號(hào)種別編碼單詞值main1 int2 float3 double4 char5 if6 else7 do8 while9 l(l

2、d)*10內(nèi)部字符串(+

3、-

4、ε)d*(.dd*

5、ε)(e(+

6、-

7、ε)dd*

8、ε)20二進(jìn)制數(shù)值表示=21 +22-23 *24 /25 (26 )

9、27 {28 }29 ,30 ;31 >32 >=33 <34 <=35 ==36 !=37?。?)語(yǔ)法結(jié)構(gòu)定義<程序>::=main()<語(yǔ)句塊><語(yǔ)句塊>::=‘{‘<語(yǔ)句串>’}’//程序用括號(hào)括起來(lái)<語(yǔ)句串>::=<語(yǔ)句>{;<語(yǔ)句>};<語(yǔ)句>::=<賦值語(yǔ)句>

10、<條件語(yǔ)句>

11、<循環(huán)語(yǔ)句><賦值語(yǔ)句>::=ID=<表達(dá)式>//賦值語(yǔ)句用”=”號(hào)<條件語(yǔ)句>::=if<條件><語(yǔ)句塊><循環(huán)語(yǔ)句>::=do<語(yǔ)句塊>while<條件><條件>::=<表達(dá)式><關(guān)系運(yùn)算符><表達(dá)式><表達(dá)式>::=<項(xiàng)

12、>{+<項(xiàng)>

13、-<項(xiàng)>}<項(xiàng)>::=<因子>{*<因子>

14、/<因子>}<因子>::=ID

15、num

16、(<表達(dá)式>)num::=(+

17、-

18、ε)數(shù)字*(.數(shù)字?jǐn)?shù)字*

19、ε)(e(+

20、-

21、ε)數(shù)字?jǐn)?shù)字*

22、ε)ID::=字母(字母

23、d數(shù)字)*字母::=a

24、b

25、c…

26、z

27、A

28、B

29、C…

30、Z數(shù)字::=0

31、1

32、2…

33、9<關(guān)系運(yùn)算符>::=<

34、<=

35、>

36、>=

37、==

38、!=一、總體設(shè)計(jì)思想采用遞歸下降(自上而下)的語(yǔ)法制導(dǎo)翻譯法。二、詳細(xì)算法設(shè)計(jì)詞法分析程序à語(yǔ)法分析程序à語(yǔ)義分析程序à編譯器。不斷完善,不斷改進(jìn)。漸變的過(guò)程。在此給出

39、算法思想。三、流程框圖圖I主函數(shù)示意圖圖II遞歸下降分析程序示意圖是否為main?調(diào)用scanner是否為(?調(diào)用scanner是否為)?調(diào)用scanner調(diào)用語(yǔ)句塊分析函數(shù)staBlock出錯(cuò)處理否否否圖III語(yǔ)句塊分析示意圖是否為{?調(diào)用scanner調(diào)用語(yǔ)句串分析函數(shù)staString調(diào)用scanner是否為}?出錯(cuò)處理否否圖IV語(yǔ)句串分析示意圖調(diào)用語(yǔ)句分析函數(shù)sta回溯,調(diào)用backpatch是否為;?調(diào)用scanner調(diào)用語(yǔ)句分析函數(shù)sta否出錯(cuò)處理圖V語(yǔ)句分析示意圖調(diào)用賦值語(yǔ)句分析函數(shù)fuzhi是

40、否為字符串?是否為if?調(diào)用條件語(yǔ)句分析函數(shù)tiaojian是否為do?調(diào)用循環(huán)語(yǔ)句分析函數(shù)xunhuan一、函數(shù)相關(guān)說(shuō)明1.所有函數(shù)一覽voidscanner();//掃描voidlrparser();voidstaBlock(int*nChain);//語(yǔ)句塊voidstaString(int*nChain);//語(yǔ)句串voidsta(int*nChain);//語(yǔ)句voidfuzhi();//賦值語(yǔ)句voidtiaojian(int*nChain);//條件語(yǔ)句voidxunhuan();//循環(huán)語(yǔ)句c

41、har*E();//Expresiion表達(dá)式char*T();//Term項(xiàng)char*F();//Factor因子char*newTemp();//自動(dòng)生成臨時(shí)變量voidbackpatch(intp,intt);//回填intmerge(intp1,intp2);//合并p1和p2voidemit(char*res,char*num1,char*op,char*num2);//生成四元式一、程序運(yùn)行結(jié)果圖VI賦值語(yǔ)句的分析圖VII條件語(yǔ)句的分析圖VIII循環(huán)語(yǔ)句的分析圖IX綜合一、編譯器使用說(shuō)明程序提示用

42、戶輸入字符串“Pleaseinputyoursourcestring:”,用戶輸入字符串并以“#”號(hào)結(jié)束。回車后,程序顯示運(yùn)行結(jié)果。一、心得與體會(huì)二、源程序清單

當(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)系客服處理。