資源描述:
《編譯原理課程設(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ì)二、源程序清單