FirstVT集和LastVT集生成算法模擬_第1頁
FirstVT集和LastVT集生成算法模擬_第2頁
FirstVT集和LastVT集生成算法模擬_第3頁
FirstVT集和LastVT集生成算法模擬_第4頁
FirstVT集和LastVT集生成算法模擬_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

課程設(shè)計(論文任務(wù)書軟件學(xué)院學(xué)院軟件工程專業(yè)3班

FirstVTLastVT年6月年6月):軟件學(xué)院實訓(xùn)中心謝謝閱讀謝謝閱讀感謝閱讀精品文檔放心下載謝謝閱讀,熟精品文檔放心下載VC。感謝閱讀FirstVTLastVT感謝閱讀精品文檔放心下載精品文檔放心下載感謝閱讀精品文檔放心下載感謝閱讀).2精品文檔放心下載4感謝閱讀4感謝閱讀感謝閱讀4精品文檔放心下載學(xué)生簽名:2013年6月日課程設(shè)計(論文)評審意見;謝謝閱讀;感謝閱讀;感謝閱讀;精品文檔放心下載;精品文檔放心下載評閱人:職稱:副教授2013年6月日隨著計算機科學(xué)的飛速發(fā)展,形式語言與自動機理論和方法的研究也

越來越受到人們的重視,但前者已經(jīng)成為計算機科學(xué)的理論基礎(chǔ)。本課程設(shè)計主要研究自動機在編譯方面的應(yīng)用,并將討論重點放在算符優(yōu)先分析法上,并用此理論完成算數(shù)表達式的正確與否的判斷。感謝閱讀根據(jù)算符優(yōu)先分析算法,編寫一個語法程序,程序具有通用性,即編制的語法縫隙程序能夠適用于不同文法以及各種輸入的單詞串。基本思想描述,語法分析前首先要對輸入的文法和句子進行詞法分析,去除多余的

自負,并將產(chǎn)生式和終結(jié)符、非終結(jié)符填入有關(guān)數(shù)組,為語法分析做前期準備。算符優(yōu)先分析算法的核心算法教材上已給出,因此所要做的事只是將其變成實現(xiàn)。精品文檔放心下載謝謝閱讀謝謝閱讀目錄一、課程設(shè)計任務(wù)及要求................................5謝謝閱讀二、需求分析..........................................7精品文檔放心下載三、設(shè)計思路..........................................8精品文檔放心下載四、詳細設(shè)計.........................................謝謝閱讀五、運行調(diào)試與分析討論...............................14謝謝閱讀六、設(shè)計體會與小結(jié)...................................14謝謝閱讀七、參考文獻.........................................精品文檔放心下載一、課程設(shè)計任務(wù)及要求課設(shè)目的進一步培養(yǎng)學(xué)生編譯器設(shè)計的思想,加深對編譯原理和應(yīng)用程序的理感謝閱讀解,針對編譯過程的重點和難點容進行編程,獨立完成有一定工作量的程謝謝閱讀序設(shè)計任務(wù),同時強調(diào)好的程序設(shè)計風(fēng)格,并綜合使用程序設(shè)計語言、數(shù)謝謝閱讀據(jù)結(jié)構(gòu)和編譯原理的知識,熟悉使用開發(fā)工具VC/JAVA/C#/.NET。精品文檔放心下載總體要求1.思想的正確性,采用合適的數(shù)據(jù)存儲結(jié)構(gòu)等。2.程序?qū)崿F(xiàn)的正確性,程序整體結(jié)構(gòu)合理、編程風(fēng)格規(guī)等。精品文檔放心下載3.程序功能的完善程度,包括功能的基本實現(xiàn)、基本完善、完全實現(xiàn)謝謝閱讀4.工作認真、獨立完成課設(shè)。基本要求設(shè)計一個由正規(guī)文法生成FirstVT集和LastVT集的算法動態(tài)模擬,實精品文檔放心下載現(xiàn)以下功能輸入一個文法G;1.輸出由文法G構(gòu)造FIRSTVT集的算法;謝謝閱讀2.輸出FirstVT集;3.輸出由文法G構(gòu)造LastVT集的算法;4.輸出LastVT集。具體步驟、問題理解和分析充分地分析和理解問題本身,弄清要求做什么。、確定解決問題的方法(設(shè)計)主要是找到解決問題的主要思路,是怎么做。在此階段可考慮系精品文檔放心下載統(tǒng)的功能和模塊劃分等。、詳細設(shè)計和編碼確定算法的主要流程,再進行編程。在此階段應(yīng)提醒學(xué)生程序可精品文檔放心下載先在紙上寫,盡量想清楚了再動手上機,在編程過程中注意程序結(jié)構(gòu)的謝謝閱讀清晰性,避免出現(xiàn)很多明顯的程序邏輯錯誤和語法錯誤,提高后面程序感謝閱讀調(diào)試效率。、程序調(diào)試和運行使學(xué)生掌握程序調(diào)試和排錯的基本方法,增加編程的感覺和解決問謝謝閱讀題的成就感。精品文檔放心下載集和LastVT感謝閱讀符優(yōu)先分析算法中判斷三種優(yōu)先關(guān)系的關(guān)鍵。算符優(yōu)先分析算法是自底向感謝閱讀上分析方法的一種。所謂自底向上分析,也稱移近——規(guī)約分析,粗略地精品文檔放心下載說它的實現(xiàn)思想是對輸入符號串自左向右進行掃描,并將輸入符逐個移入謝謝閱讀一個后進先出的棧中,邊移進邊分析,一旦棧頂符號串形成某個句型的句感謝閱讀精品文檔放心下載這稱為一部規(guī)約。重復(fù)這一過程直到規(guī)約到棧中只剩文法的開始符號則為謝謝閱讀分析成功,也就確認輸入串是該文法的句子。而算符優(yōu)先分析算法的基本謝謝閱讀思想只是規(guī)定算符之間的優(yōu)先關(guān)系,也就是只考慮終結(jié)符之間的優(yōu)先關(guān)系。謝謝閱讀本課程設(shè)計的要求只是構(gòu)造FirstVT集和謝謝閱讀建造算符優(yōu)先關(guān)系表。3.1基本算法構(gòu)造集合FIRSTVT(P)的算法按FIRSTVT(P)的定義,可以用如下兩條歸則來構(gòu)造:謝謝閱讀(1)若有產(chǎn)生式P或Qa…,則a∈FIRSTVT(P)感謝閱讀(2)若a∈FIRSTVT(Q),且有產(chǎn)生式PQ…,則a∈FIRSTVT(P)精品文檔放心下載構(gòu)造算法:建立一個二維布爾數(shù)組F[P,a],使得F[P,a]為真的條件適當且僅當a感謝閱讀∈FIRSTVT(P);構(gòu)造算法再用一個棧STACK,把所有初值為真的數(shù)組元素F[P,a]的符號對(P,a)感謝閱讀全都放到棧中;算法如下:(1)將布爾矩陣各元素置假;棧置空;(2)按照歸則(1)查看產(chǎn)生式,對于P或Qa..,置相應(yīng)F[P,a]謝謝閱讀為真,符號對(P,a)入棧;(3)(2)精品文檔放心下載所有產(chǎn)生式是否有形如PF[P,a]精品文檔放心下載置為真,并把(P,a)入棧;(4)重復(fù)(3),直到棧空為止。用類似的方法來構(gòu)造LASTVT(P)可根據(jù)LASTVT(P)的定義來構(gòu)造,兩條規(guī)則:(1)若有產(chǎn)生式P…a或…aQ,則LASTVT(P)謝謝閱讀(2)若a∈LASTVT(P),且有產(chǎn)生式P…Q,則a∈LASTVT(P)精品文檔放心下載構(gòu)造算法同F(xiàn)IRSTVT(P)3.2定義數(shù)據(jù)結(jié)構(gòu)vn[M]和vt[N]分別用來存儲所有的非終結(jié)謝謝閱讀字符集與終結(jié)字符集。為了記錄非終結(jié)符的FIRSTVT集和LASTVT集,為此精品文檔放心下載建立兩個布爾數(shù)組F[M][N]和L[M][N],分別記錄非終結(jié)符的FIRSTVT感謝閱讀LASTVT表示vt[j]屬于感謝閱讀=true表示vt[j]屬于LASTVT(vn[i]),值為false表示相應(yīng)的終結(jié)符不屬精品文檔放心下載于非終結(jié)符的FIRSTVT集和LASTVT集。感謝閱讀為了簡便起見,程序中又構(gòu)造了兩個兩維布爾數(shù)組first[M][M+N]和謝謝閱讀last[M][M+N]來表示推導(dǎo)關(guān)系。數(shù)組第一維的M個字符代表非終結(jié)符;數(shù)謝謝閱讀組第二維的前M個字符代表非終結(jié)符,后N個字符代表終結(jié)符。以first

數(shù)組為例,fist[i][M+j]代表非終結(jié)符vn[i]=P與非終結(jié)符vt[j]=a有推感謝閱讀精品文檔放心下載導(dǎo)關(guān)系P代表非終結(jié)符vn[i]=P與非終結(jié)符vt[j]=Q有謝謝閱讀推導(dǎo)關(guān)系或PQa..。相關(guān)的數(shù)據(jù)結(jié)構(gòu)定義如下:vn[M],vt[N];//非終結(jié)字符與終結(jié)字符數(shù)組謝謝閱讀boolfirst[M][M+N],last[M][M+N];//以布爾數(shù)組形式定義推導(dǎo)關(guān)系感謝閱讀vn[M],vt[N];//非終結(jié)字符與終結(jié)字符數(shù)組精品文檔放心下載stp;//符號棧的數(shù)據(jù)結(jié)構(gòu):structrelation//結(jié)構(gòu)體用來說明終結(jié)符vt與非終結(jié)符vn之間謝謝閱讀的關(guān)系,若關(guān)系存在說明vt屬于FIRSTVT(vn)或LASTVT(vn)感謝閱讀{vn;vt;};4case對精品文檔放心下載T)感謝閱讀{{{謝謝閱讀{}}{謝謝閱讀精品文檔放心下載{}}{感謝閱讀{}}{精品文檔放心下載{}}{謝謝閱讀{}}}}firstvt感謝閱讀{精品文檔放心下載/{{}}{謝謝閱讀{{感謝閱讀精品文檔放心下載{中謝謝閱讀}}精品文檔放心下載}精品文檔放心下載{}精品文檔放心下載}}測試數(shù)據(jù)采用編譯原理P110,例6.3進行測試感謝閱讀實驗數(shù)據(jù):SEE+T|TTT*F|FFP!F|PP(E)|i上截圖中FirstVT集或LastVT中的關(guān)系矩陣中的“1”表示相對應(yīng)的謝謝閱讀終結(jié)字符屬于對應(yīng)的終結(jié)字符的FirstVTLastVT集,我們從上面兩個謝謝閱讀步驟可得得到用程序運算的結(jié)果和我分析得到的FirstVT集和LastVT集相精品文檔放心下載符合。經(jīng)過一個星期的編譯原理課程設(shè)計的實踐,我重新復(fù)習(xí)了自底向上的精品文檔放心下載分析方法,其中重點復(fù)習(xí)了算符優(yōu)先分析算法,對詞法、文法的判斷有了謝謝閱讀FirstVT集和LastVT集的構(gòu)造有了精品文檔放心下載更加深刻的認識,對其中數(shù)據(jù)的流向和數(shù)據(jù)的輸出操作有了很清晰的認識,感謝閱讀對數(shù)據(jù)在該課程設(shè)計中的存儲和運算有了深刻的理解。本程序還有很多缺陷,為了簡化問題,本程序分析的是一個特定文法,精品文檔放心下載限制了程序的推廣。如果只是為了分析特定文法的算符優(yōu)先算法構(gòu)造程序謝謝閱讀非終結(jié)符的FIRSTVT集和LASTVT集,進而為構(gòu)造優(yōu)先關(guān)系表提供基礎(chǔ),這謝謝閱讀樣的設(shè)計無可厚非。但是為了使程序能過使用與更多的文法分析,程序當謝謝閱讀FIRSTVT

集和LASTVT集。感謝閱讀要完成此項操作,首先定義一個結(jié)構(gòu)體用來記錄推導(dǎo)規(guī)則。其中st域精品文檔放心下載記錄推導(dǎo)規(guī)則的字符串,len與用來記錄字符串的長度。謝謝閱讀struct{st[SMAX];};structrs[SMAX];//定義語法規(guī)則輸入的字符串精品文檔放心下載此結(jié)構(gòu)體組成的數(shù)組就可以用來記錄不

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論