



全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)3 遞歸下降法的語法分析器一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)語法分析器的構(gòu)造原理,掌握遞歸下降法的編程方法。二、實(shí)驗(yàn)內(nèi)容用遞歸下降法編寫一個(gè)語法分析程序,使之與詞法分析器結(jié)合,能夠根據(jù)語言的上下文無關(guān)文法,識(shí)別輸入的單詞序列是否文法的句子。(注意,需要改寫文法,消除左遞歸等)program blockblock stmts stmts stmt stmts | e stmt id = expr ; |if ( bool ) stmt|if ( bool) stmt else stmt|while (bool) stmt |do stmt while (bool ) ; |break ; |blockbool expr expr | expr expr | expr = expr | exprexpr expr + term | expr - term | termterm term * factor | term / factor | factorfactor ( expr ) | id | num三、實(shí)驗(yàn)要求個(gè)人完成,提交實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)報(bào)告中給出采用測(cè)試源代碼片斷,及其對(duì)應(yīng)的最左推導(dǎo)過程(形式可以自行考慮)。例如,程序片斷i = 2;while (i =100)sum = sum + i;i = i + 2; 對(duì)應(yīng)的推導(dǎo)過程為:program block stmts stmt stmts id = expr ; stmts id = num; stmts id = num; stmt stmts id = num; while (bool) stmt stmts id = num; while (expr= expr) stmt stmts id = num; while (id = expr) stmt stmts id = num; while (id = num) stmt stmts id = num; while (id = num) block stmts id = num; while (id = num) stmts stmts 四、實(shí)驗(yàn)步驟1、構(gòu)造詞法分析器這個(gè)部分主要是在第二個(gè)實(shí)驗(yàn)的基礎(chǔ)上做一定的修改。首先定義一個(gè)頭文件“l(fā)ex.yy.h”,內(nèi)容為各個(gè)終結(jié)符的數(shù)值代號(hào)。然后使用實(shí)驗(yàn)二中的創(chuàng)建的“*.l”文件,把其中對(duì)終結(jié)符的處理由print語句改為return語句,return其相應(yīng)的數(shù)值代號(hào)。使用lex生成“l(fā)ex.yy.c”2、 構(gòu)造語法分析器首先對(duì)文法進(jìn)行修改去除左遞歸、提取左因子,以及對(duì)“懸空else”、“運(yùn)算優(yōu)先級(jí)”所造成的二義性進(jìn)行消除。之后根據(jù)每個(gè)非終結(jié)符創(chuàng)建一個(gè)函數(shù),實(shí)現(xiàn)各個(gè)函數(shù)的功能。這個(gè)可以模仿實(shí)驗(yàn)一。不過與實(shí)驗(yàn)一不同的是,這里采用ylex()讀入下一個(gè)終結(jié)符。3、 測(cè)試設(shè)計(jì)采用文件的方式進(jìn)行測(cè)試。在main函數(shù)里輸入文件名,將文件讀入緩沖區(qū)。五、實(shí)驗(yàn)結(jié)果六、心得體會(huì)剛開始覺得這個(gè)實(shí)驗(yàn)比較難,無從下手。不知道如何調(diào)用yylex(),以及如何修改.l文件。后來參考了葉柯同學(xué)的代碼,發(fā)現(xiàn)其實(shí)也不是很難。本次實(shí)驗(yàn)除了知識(shí)上的收獲外,更大的收獲是懂得如何去做一個(gè)
溫馨提示
- 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年月餅項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 2025年IC卡鑒別機(jī)項(xiàng)目申請(qǐng)報(bào)告
- 【深圳】2025年廣東深圳技師學(xué)院選聘事業(yè)編制工作人員24人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 文庫發(fā)布:人工智能
- 歐體教學(xué)課件
- 整體護(hù)理服務(wù)課件
- 七年級(jí)教學(xué)課件風(fēng)格分類
- 盼教學(xué)課件一等獎(jiǎng)部編版
- 云南省昆明市官渡區(qū)2019年初中道德與法治學(xué)業(yè)水平考試第一次模擬測(cè)試試卷
- 懷念母親教學(xué)課件
- 中國凈菜行業(yè)市場(chǎng)深度研究及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 糖尿病飲食治療講課件
- 輸液反應(yīng)急救護(hù)理流程講課件
- 鋼結(jié)構(gòu)倉庫施工組織設(shè)計(jì)
- 變電站電氣設(shè)備管理制度
- 中國農(nóng)田水利行業(yè)發(fā)展前景及發(fā)展策略與投資風(fēng)險(xiǎn)研究報(bào)告2025-2028版
- 50篇短文搞定高考英語3500單詞
- 物業(yè)消防檢查培訓(xùn)課件
- 專題 完形填空 七年級(jí)英語下冊(cè)期末復(fù)習(xí)考點(diǎn)培優(yōu)專項(xiàng)北師大版(2024版)(含答案解析)
- 余料使用管理制度
- 2025至2030年中國彩涂鋁材行業(yè)市場(chǎng)動(dòng)態(tài)分析及發(fā)展趨向研判報(bào)告
評(píng)論
0/150
提交評(píng)論