版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
編譯原理課程實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)1:詞法分析姓名趙璐媛院系軟件學(xué)院學(xué)號(hào)1143710516任課教師陳鄞指導(dǎo)教師陳鄞實(shí)驗(yàn)地點(diǎn)軟件學(xué)院三樓機(jī)房實(shí)驗(yàn)時(shí)間10月23日下午78節(jié)實(shí)驗(yàn)課表現(xiàn)出勤、表現(xiàn)得分實(shí)驗(yàn)報(bào)告得分實(shí)驗(yàn)總分操作結(jié)果得分一、需求分析得分要求:闡述詞法分析系統(tǒng)所要完成的功能通過文件導(dǎo)入測試用例,可以通過用戶界面顯示并編輯測試用例。通過文件導(dǎo)入DFA轉(zhuǎn)換表,并在用戶界面中打印轉(zhuǎn)換表。識(shí)別代碼中的單詞,打印對(duì)應(yīng)的token序列。識(shí)別的單詞包括以下幾類:標(biāo)識(shí)符(由大小寫字母、數(shù)字以及下劃線組成,但必須以字母或者下劃線開頭)關(guān)鍵字(①類型關(guān)鍵字:整型、浮點(diǎn)型、布爾型、記錄型;②分支結(jié)構(gòu)中的if和else;③循環(huán)結(jié)構(gòu)中的do和while;④過程聲明和調(diào)用中的關(guān)鍵字)運(yùn)算符(①算術(shù)運(yùn)算符;②關(guān)系運(yùn)算符;③邏輯運(yùn)算)界符(①用于賦值語句的界符,如“=”;②用于句子結(jié)尾的界符,如“;”;③用于數(shù)組表示的界符,如“[”和“]”;④用于浮點(diǎn)數(shù)表示的界符“.”)常數(shù)(十進(jìn)制無符號(hào)整數(shù)和浮點(diǎn)數(shù),包括科學(xué)計(jì)數(shù)法;八進(jìn)制和十六進(jìn)制整數(shù);字符串常數(shù)和字符常數(shù)等)注釋(/*……*/形式)二、文法設(shè)計(jì)得分要求:對(duì)如下內(nèi)容展開描述給出各類單詞的詞法規(guī)則描述(正則文法或正則表達(dá)式)各類單詞的轉(zhuǎn)換圖標(biāo)識(shí)符和關(guān)鍵字(_|letter)(_|letter|digit)*運(yùn)算符以運(yùn)算符“+”,“+=”,“++”的識(shí)別為例,其他運(yùn)算符與此類似所有可以被識(shí)別的關(guān)系運(yùn)算符有:“!=”,“==”,“>”,“>=”,“<”,“<=”所有可以被識(shí)別的算術(shù)運(yùn)算符有:“+”,“+=”,“++”,“-”,“-=”,“--”,“*”,“*=”,“%”,“%=”,“/”,“/=”所有可以被識(shí)別的邏輯運(yùn)算符有:“|”,“&”,“^”(按位或、與、異或),“||”,“&&”,“!”界符界符的文法與轉(zhuǎn)換圖較為簡單,不再詳述所有可以被識(shí)別的界符:“=”,“;”,“[”,“]”,“(”,“)”,“{”,“}”,“,”,“;”常數(shù)浮點(diǎn)數(shù)((1-9)(0-9)*.(0-9)*)|(.(0-9)+)十進(jìn)制數(shù)0|((((1-9)(0-9)*.(0-9)*)|(.(0-9)+))(ε|(e(+|-|ε)(0-9)+)))下劃線部分為十進(jìn)制浮點(diǎn)數(shù)八進(jìn)制數(shù)0(1-7)+十六進(jìn)制數(shù)0x(1-9|a-f)+浮點(diǎn)數(shù)為終態(tài)2,十進(jìn)制數(shù)為終態(tài)1、5、6,八進(jìn)制數(shù)為終態(tài)7,十六進(jìn)制數(shù)為終態(tài)9。字符串常數(shù)“(ε|(letter*letter))”紅色letter代表除了\字符外的字符,因\”是轉(zhuǎn)義字符字符常數(shù)‘(\\(a|b|f|r|t|v|n|\\|’|”))|letter)’同時(shí)對(duì)轉(zhuǎn)義字符進(jìn)行識(shí)別注釋/\*letter*\*/三、系統(tǒng)設(shè)計(jì)得分要求:分為系統(tǒng)概要設(shè)計(jì)和系統(tǒng)詳細(xì)設(shè)計(jì)。(1)系統(tǒng)概要設(shè)計(jì):給出必要的系統(tǒng)宏觀層面設(shè)計(jì)圖,如系統(tǒng)框架圖、數(shù)據(jù)流圖、功能模塊圖等以及相應(yīng)的文字說明。(2)系統(tǒng)詳細(xì)設(shè)計(jì):對(duì)如下工作進(jìn)行展開描述核心數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)主要功能函數(shù)說明程序核心部分的程序流程圖系統(tǒng)概要設(shè)計(jì)系統(tǒng)的設(shè)計(jì)類圖如下:(建議放大查看)在選擇了DFA文件和代碼文件后,點(diǎn)擊分析按鈕,由DFAView生成DFA實(shí)例,調(diào)用DFA實(shí)例的doDFA方法對(duì)CodeView中的代碼進(jìn)行分析,分析結(jié)果傳遞給OutputView顯示。系統(tǒng)詳細(xì)設(shè)計(jì)系統(tǒng)的核心類為DFA類,DFA類中的table是DFA轉(zhuǎn)換表,map是字符集及每個(gè)字符在轉(zhuǎn)換表對(duì)應(yīng)列的下標(biāo)。doDFA方法對(duì)代碼進(jìn)行分析,每分析出一個(gè)單詞,則將該單詞在代碼中的起始下標(biāo)、終止下標(biāo)、對(duì)應(yīng)終態(tài)碼傳遞給getTokenDiscrible方法,獲取該單詞Token的字符串描述。Token類中記錄了總的狀態(tài)數(shù)和所有關(guān)鍵字,getToken方法判斷某一個(gè)狀態(tài)值是否是終態(tài),若是終態(tài)返回對(duì)應(yīng)的種別碼,若不是則返回null。doDFA方法的分析流程圖如下:(建議放大查看)四、系統(tǒng)實(shí)現(xiàn)及結(jié)果分析得分要求:對(duì)如下內(nèi)容展開描述。系統(tǒng)實(shí)現(xiàn)過程中遇到的問題;針對(duì)某測試程序輸出其詞法分析結(jié)果;輸出針對(duì)此測試程序?qū)?yīng)的詞法錯(cuò)誤報(bào)告;對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析。注:其中的測試樣例自行產(chǎn)生。系統(tǒng)實(shí)現(xiàn)過程中遇到的問題剛開始時(shí),遇到了字符串和注釋中如果有空格,會(huì)將字符串和注釋分成多個(gè)單詞的問題。然后進(jìn)行改進(jìn),遇到空格等空白字符,判斷一下狀態(tài)碼,如果是在識(shí)別字符串或注釋的過程中,則不對(duì)其做處理,解決了這個(gè)問題。測試程序及測試結(jié)果測試程序:#include<stdio.h>intmain(){ /*number*/ intnum=10; intx=1,a=0,b=123,c=0123,d=0x123abc; floaty=2.2; doublee=1.2e-3; char_char1='c',_char2='\n',str[6]="hello"; x+=1; x-=1; x*=1; x/=1; printf("%f\n",x+y); printf("%f\n",x/y); if(x<=y&&x>0){ printf("%s\n","x<=y\n"); } else{ printf("%s\n","x>y\n"); } while(num!=100){num++;} /*errorcase*/ char_char3='ab',charstr~[10]=“ab\””; return0;}測試結(jié)果:錯(cuò)誤報(bào)告及結(jié)果分析char_char3='ab',charstr~[10]="ab\"";對(duì)于錯(cuò)誤的詞法’ab’,分析器報(bào)錯(cuò):ERROR
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨床、生化檢測項(xiàng)目及意義
- 學(xué)生會(huì)工作心得十篇
- 上海外國語大學(xué)附屬外國語學(xué)校七年級(jí)上學(xué)期階段(一)英語試題
- 2024年油井加熱自控儀項(xiàng)目提案報(bào)告范文
- 勤奮學(xué)習(xí)演講稿四篇
- 2024年氣浮電主軸項(xiàng)目提案報(bào)告模式
- 公司部門員工個(gè)人工作總結(jié)8篇
- 質(zhì)量安全承諾書合集15篇
- 2024年染發(fā)劑項(xiàng)目申請(qǐng)報(bào)告模稿
- 教師學(xué)年年度考核總結(jié)10篇
- 2023-2024年人教版三年級(jí)上冊(cè)數(shù)學(xué)期末應(yīng)用題專題訓(xùn)練
- 職業(yè)學(xué)校消防安全課件
- 高教社新國規(guī)中職英語教材《英語3 基礎(chǔ)模塊》Unit 5 Natural Wonders in the World-教學(xué)設(shè)計(jì)方案-6課時(shí)
- 三對(duì)三籃球賽記錄表
- 勞務(wù)公司與勞務(wù)公司之間的合作協(xié)議
- 河南省鄭州市金水區(qū)2023-2024學(xué)年四年級(jí)數(shù)學(xué)第一學(xué)期期末統(tǒng)考試題含答案
- 15D502等電位連接安裝圖集
- 磷酸鐵鋰動(dòng)力電池生產(chǎn)工藝全流程詳述
- DB44-T 1641-2015 LED 洗墻燈地方標(biāo)準(zhǔn)
- 學(xué)校與科技館共建協(xié)議書
- 2023年廣東省普通高中學(xué)業(yè)水平第一次合格性考試物理試題(原卷版)
評(píng)論
0/150
提交評(píng)論