




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
學(xué)課程設(shè)計(jì)題學(xué)專班姓目院業(yè)級(jí)名布爾表達(dá)式的翻譯程序計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院指導(dǎo)教師2013年1月12日1學(xué)生姓名:指導(dǎo)教師:專業(yè)班級(jí):工作單位:計(jì)算機(jī)學(xué)院題目:布爾表達(dá)式的翻譯程序初始條件:程序設(shè)計(jì)語言:C++算法:根據(jù)《編譯原理》課程所講授的算法進(jìn)行設(shè)計(jì)。要求完成的主要任務(wù):針對(duì)布爾表達(dá)式的文法:B′BT′|ε′T′|εF|true|falseF|(ii為逆波蘭式。編制好分析程序后,設(shè)計(jì)若干用例,上機(jī)測(cè)試并通過所設(shè)計(jì)的分析程序。時(shí)間安排:消化資料、系統(tǒng)調(diào)查、形式描述1天系統(tǒng)分析、總體設(shè)計(jì)、實(shí)施計(jì)劃3天撰寫課程設(shè)計(jì)報(bào)告書指導(dǎo)教師簽名:1天2013年1月12日系主任(或責(zé)任教師)簽名:2013年1月12日1引言2“編譯原理”是一門研究設(shè)計(jì)和構(gòu)造編譯程序原理和方法的課程,是計(jì)算機(jī)各互聯(lián)系的一種重要方式。2概述2.1設(shè)計(jì)題目布爾表達(dá)式的翻譯程序2.2設(shè)計(jì)目的考問題、分析問題、解決實(shí)際問題的動(dòng)手能力。2.3設(shè)計(jì)任務(wù)內(nèi)容布爾表達(dá)式的文法:BTB′B′andTB′|εTFT′T′orFT′|εFnotF|true|false|(B)|iropi達(dá)式的翻譯,給出翻譯的逆波蘭式結(jié)果。3設(shè)計(jì)環(huán)境與工具3VisualC++4設(shè)計(jì)原則4.1基本方法在本程序中,輸入一段布爾語句,使用遞歸下降的方法得到其推到過程,并逆波蘭式。4.2屬性文法BTB′B′andTB′B′εTFTT′orFT′T′εB’.in=T.typeB’.in=T.typeB’.val=εT.in=F.type.T’.in=F.typeT’val=εaddtype(and,entry,B.in)addtype(or,entry,B.in)FnotFFtrueFfalseF(B)Firopil.in)F.val=not.F.valF.val=trueF.val=falseF.val=B.valF.val=i.lexvalropi.lexvaladdtype(i,5簡(jiǎn)要的分析與概要設(shè)計(jì)在該程序中,總共包括3個(gè)主要功能,第一個(gè)功能是對(duì)輸入的布爾語句進(jìn)行遞歸下降的分析,從而得出從文法到該布爾語句的推導(dǎo)過程,第二個(gè)功能是使用遞歸下降的方法,該布爾語句的四元式序列,第三個(gè)功能對(duì)四元式序列進(jìn)行掃描并分析每個(gè)四元式的結(jié)構(gòu)特點(diǎn),并據(jù)此將四元式轉(zhuǎn)化為逆波蘭式。main函數(shù)的流程圖如下:46.1主要數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)在該類中,要包含四元式中的四個(gè)元素,運(yùn)算結(jié)果,兩個(gè)運(yùn)算數(shù)以及一個(gè)運(yùn)算cout<<result<<"="<<arg1<<""<<op<<""<<arg2<<endl;}5}q[20];Word結(jié)構(gòu)體這個(gè)結(jié)構(gòu)體的對(duì)要用來存儲(chǔ)單個(gè)單詞,包括一個(gè)字符串成員。structword{charw[10];voidprint(){cout<<w<<":";}}wr[200];逆波蘭式結(jié)構(gòu)體這個(gè)結(jié)構(gòu)體的對(duì)象用來存儲(chǔ)逆波蘭式,它的成員是一個(gè)word數(shù)組structnipolan{wordnibolan[100];}n;翻譯器類用來存儲(chǔ)翻譯過程中的各個(gè)變量以及聲明主要的函數(shù):classinterpreter{private:ifstreamSourceFile;charbuffercode[200];//存放源碼的緩沖區(qū)intsyn;intcurrent;//buffercode中當(dāng)前讀到的字符下標(biāo)chartoken[8];//記錄當(dāng)前讀到的單詞public:voidscaner();6voidB();voidB1();voidT();voidF();voidT1();voidrun();voidread();voidbolon();voidtoword();char*factor();char*expression();char*term();voidbolan();voidreset(){current=0;};voidrun1(){scaner();expression();};};6.2全局變量設(shè)計(jì)inttear=51;//逆波蘭式尾部inthead=50;//逆波蘭是首部intnumberoftemp=0;//臨時(shí)變量個(gè)數(shù)intnumberofquad=0;//四元式個(gè)數(shù)6.3遞歸下降得到推導(dǎo)過程7該功能的入口函數(shù)run1的流程圖如下:89expression()函數(shù)流程圖如下:8設(shè)計(jì)的特點(diǎn)、不足收獲與體會(huì)17分析不全。8.3收獲與體會(huì)在何老師的指導(dǎo)下,經(jīng)過編碼與調(diào)試,我終于完成了這次課程設(shè)計(jì),通過本次了,認(rèn)識(shí)到了實(shí)踐的重要性。9參考文獻(xiàn)年月3年2月,年月,年1月年1月,年3月,年1月18班級(jí):姓名:學(xué)號(hào):序號(hào)評(píng)分項(xiàng)目實(shí)得分1學(xué)習(xí)態(tài)度認(rèn)真、遵守紀(jì)律2設(shè)計(jì)分析合理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年社保失業(yè)考試試題及答案
- 電工中級(jí)工理論復(fù)習(xí)測(cè)試題
- 工業(yè)機(jī)器人高級(jí)工練習(xí)卷附答案(一)
- CFD軟件:CFX二次開發(fā)-CFX前后處理工具的二次開發(fā)
- 2025年網(wǎng)絡(luò)經(jīng)濟(jì)學(xué)試題及答案
- 2025年高中語文人教版必修3練習(xí):動(dòng)物游戲之謎
- 2025年特務(wù)考試試題及答案
- 2025年消化科三基試題及答案
- 2025年行銷管理面試題及答案
- 2025年山東單招歷史試題及答案
- 220kV輸電線路工程質(zhì)量通病防治措施
- 【EHS流程圖】建設(shè)項(xiàng)目職業(yè)衛(wèi)生“三同時(shí)”工作流程圖(9頁)
- 邁達(dá)斯建模(貝雷梁、鋼棧橋)
- ⊙生活中的“一次模型”
- [考研英語]商志英語作文模板
- Fluent出入口邊界條件設(shè)置及實(shí)例解析
- 模擬追溯演練報(bào)告(成品到原料)
- 常用一線降壓藥一覽表
- IATF16949-2016內(nèi)部審核方案
- 權(quán)威實(shí)驗(yàn)室CMA資質(zhì)認(rèn)定程序文件模板
- 平面機(jī)構(gòu)簡(jiǎn)圖及自由分解PPT課件
評(píng)論
0/150
提交評(píng)論