版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、算符優(yōu)先分析器設(shè)計1實驗?zāi)康模?)掌握算符優(yōu)先分析法一一種自底向上的語法分析方法的思想。(2)能識別算符優(yōu)先分析法屮的可規(guī)約串一最左素短語。(3)領(lǐng)會算符優(yōu)先關(guān)系表轉(zhuǎn)換成優(yōu)先函數(shù)的方法。2實驗內(nèi)容和實驗要求根據(jù)形式化算法,編制程序?qū)崿F(xiàn)一個算符優(yōu)先分析器,能對常見的算術(shù)表達式語句 進行分析。要求實現(xiàn)以下功能:1)組織算枠達式的輸入;2)組織算符優(yōu)先關(guān)系表或者優(yōu)先函數(shù)的輸入;3)若輸入的符號串是一個算術(shù)表達式語他貝u輸出一個分析樹骨架(既每一步規(guī) 約用到的最左素短語),否則輸出一個錯誤信息。3待分析的語法描述e-e+t|tt->t*f|f f-> (e) | i4算法描述4.1算府分析
2、法基本方法實現(xiàn)算法,轉(zhuǎn)化成某種高級語言程序,實現(xiàn)一個算符優(yōu)先分析器。其中要用到分析 棧和輸入緩沖器,本實驗采用的方法是一種自底向上的語法分析方法,所以是在詞法分 析的基礎(chǔ)上進行的。對于表達式結(jié)果的計算,要在算法中引入內(nèi)部變量來保存結(jié)果,另外在分析過程中, 除了移進、規(guī)約、接受、報錯等動作外,還要引入計算的動作。4.2實現(xiàn)方法(1)首先定義chai' precede (char a, chai' c),在這里規(guī)定算符(終結(jié)符之間)的優(yōu)先規(guī)則,在分析文法的時候便于調(diào)用。(2)再定義isn(charc),判斷是否為非終結(jié)符,返冋值為1和0,用于循環(huán)調(diào)用。(3)主函數(shù),總控算法:1.
3、定義棧堆stack «| 的變量,以及控制指針(用于存發(fā)歸約或者待形成最左素 短語的符號串)。2. 用string工作單元存放當前輸入的字符,歸約成功的標志是當讀入的輸入 字符是句子的結(jié)束符號#號吋,即棧111只是剩下#t的吋候(棧stack 11只剩下開始標志 #和終結(jié)符號t的吋候)使用判斷是否棧頂指針指向的是#,若不是,則繼續(xù)順序掃描子過程。從輸入符號串屮依次讀入字符到string屮,調(diào)用char precede (char a, char c)屮進行分析是否要歸約,還是要移進輸入符,再棧s屮形成最左素短語。loop:當stackj與當前輸入符s之間是關(guān)系時,重復(fù)尋找最左索短語,
4、將 stackj+l.stackkl/d約為某個終結(jié)符(etf),這是即可輸出當前的歸約串,將最 左素短語進行歸約。當stackj與當前輸入符s之間是.或者吋=關(guān)系吋,再將字符讀入到棧堆 stack'p,即移進字符串。若均不是,則轉(zhuǎn)入出錯處理,輸出分析失敗。當最后分析到讀入的字符串時#號時,分析成功。4.3子過程分析4.3.1 優(yōu)先函數(shù)的定義 char precede (char a, char c) 根據(jù)給定的文法,分析終結(jié)符號之間的優(yōu)先關(guān)系,+,*, (,), #,總共32利優(yōu) 先關(guān)系。4.3.2出錯管理(兩類錯誤)如果分析棧頂?shù)闹欣^符號與下一個輸入字符之間沒有優(yōu)先關(guān)系,即表明下一
5、 個輸入的字符與己分析歸約的文法符號串之間是不匹配的,即一個錯誤的基本語法 成分。發(fā)現(xiàn)此類錯誤之后給出錯誤信息,同時結(jié)束輸入符號串的進一步分析。(2)當前句型中找到一個最左素短語,單不存在右部包含最左素短語的任意產(chǎn)生 式。此時輸出出錯的信息,同時出錯管理中確定最左該素斷語于哪個產(chǎn)牛式的右部最相似,給出進一步的錯誤信息。5程序框架6程序清單和程序運行結(jié)果程序清單見磁盤程序運行結(jié)果如下:1.顯示所要分析的文法,并且輸入所要分析的句型(以#號結(jié)束):2.輸入所要分析的句型(1)若所要分析的字符串不為該文法的句型,則有兩種出錯分析:例1:若為i ii#,貝i出錯顯示如下:請輸入所要分析的句型 以井號結(jié)
6、東: x分析過程分析失敗failure?例2:若為i + ii + i#,則出錯顯示如2請輸入所要分析的句型以井號結(jié)東:分析過程1歩驟.分析棧;1ii;關(guān)系標志當前輸入符;剩余輸入串111! 1 . # :11aitt < i移進 i!i*ii*i#ii1! 2 . #i:iii:i > +歸約 i!*ii*i#iii!3. #f!iiiitt < *移逬 +iii! 4 .#f+iii < i移逬 i! ii + i#i_ii! 5 #f+i!;ii1分析失敗<failure>?!(2)若正確輸入該文法的句型如:i + i*i+i則分析結(jié)果如下:c'
7、; c:documents and settingsyukunmy documents£譯實墓語法分析計算機0304班 33號余琨請輸入所要分析的句型以#號結(jié)東:i+i*i*i#分析過程步驟.分析棧;關(guān)系標志a當前輸入符-1!剩余輸入串! 1 tti!# < i移進ia!i*i*i+i#! 2 #iasi > +歸約ii:3 #f!# < *a移進 !*i*i*i#! 4 #f+i!+ < i移進ii! 5 #f*ia!i > *i歸約iia:6 #f+f!* < *a移逬*i! 7 ttf+f*!* < i移進i a! 8 #f+f*ia!
8、i > +i歸約ii!*i#a:9 ttf+f*f!* > +a歸約efi! 10 #f*ti!* > *歸約t+f !*i#! 11 tteii分析成功<succeed>? -i itt-(3)選擇是否要繼續(xù)分析,若需要則選y,若不需要,則選擇n,則退出程序。7實驗感想在完成自頂向下的語法分析之后,接著乂開始接觸到算符優(yōu)先的分析法。 算符優(yōu)先的分析法實際上式仿照了算術(shù)表達式的運算過程而提出的一種口底而 上的語法分析,而作為自底向上分析法的關(guān)鍵就是,在分析的過程中如何確定號 句柄,從而判斷如何進行移進和歸約。在判斷的過程中同時要處理號如何解決出錯的問題,這樣就可以比較恰當 的去了解相關(guān)的信息的內(nèi)容。在做這個實驗的過程中,為了檢驗的方便,首先規(guī) 定好一個比較熟悉的文法,這樣就可以熟練的進行算符優(yōu)先的定義,同時將他們 存放在一定的緩存單元。在解決好基本思想的問題之后,就是要解決界面的問題。 因為在學(xué)習(xí)的過程中,做題都是用和應(yīng)的表格進行分析處理的,所以這個也是需 要進行表格處理的,在分析表格的過程中,棧中空格符的管理也是相當重要的
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位管理制度呈現(xiàn)合集員工管理篇
- 單位管理制度呈現(xiàn)大合集人員管理篇
- 工作轉(zhuǎn)正自我鑒定4篇
- 3D打印在計算機維修中的創(chuàng)新應(yīng)用
- 《用色彩畫心情》課件
- 第3單元+中國特色社會主義道路
- 物流行業(yè)顧問工作總結(jié)
- 乒乓球比賽的作文匯編10篇
- 輸液室護士的職責概述
- 游樂園前臺服務(wù)感悟
- 2024時事政治考試題庫附參考答案(黃金題型)
- 2024年新“國九條”及配套政策要點解讀分析報告
- 2024-2029年中國大健康行業(yè)市場發(fā)展現(xiàn)狀分析及發(fā)展趨勢與投資戰(zhàn)略規(guī)劃報告
- 超星爾雅學(xué)習(xí)通《藝術(shù)哲學(xué)美是如何誕生的(同濟大學(xué))》2024章節(jié)測試答案
- 全國醫(yī)院數(shù)量統(tǒng)計
- (2024年)長歌行漢樂府古詩PPT語文課件
- GB/T 43674-2024加氫站通用要求
- 倉庫班長年終總結(jié)及工作計劃
- 部編人教版二年級勞動教育上冊期末試卷(帶答案)
- 肛門手術(shù)的鎮(zhèn)痛研課件
- 中山醫(yī)院報告查詢app
評論
0/150
提交評論