freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

編譯原理報告(9)(參考版)

2025-03-26 12:06本頁面
  

【正文】 在接下來的學(xué)習(xí)生活中,我一定會改正這些錯誤,讓自己的學(xué)習(xí)更上一層樓。這一點(diǎn)還是需要再進(jìn)行改進(jìn)。不過話說回來,我的解決方式也并不完美。比如全局變量太亂不好管理、詞法分析程序與語法分析程序直接不好做銜接、如何檢測程序中的錯誤等等。因此我打算等這段時間考試課設(shè)都忙完了以后去深入學(xué)習(xí)一下這兩個工具的??吹竭@些同學(xué),我也很慚愧,感覺自己在學(xué)習(xí)的主動性上還是差了很多。在上機(jī)實(shí)驗的過程中,我也看到有一些同學(xué)使用了Yacc和Lex等工具來生成產(chǎn)生自己的代碼。并且,在實(shí)現(xiàn)詞法分析與語法分析程序的過程中,我深切感受到了規(guī)格化的重要性。直到上機(jī)的時候,我才發(fā)現(xiàn),原來在書本上深奧的知識,實(shí)踐起來居然會那么簡單。在上機(jī)之前,我們所接觸的編譯原理都是存在于課堂上、書本中的,都是書上一條條的理論與規(guī)則。3 總結(jié)與體會通過這次編譯原理上機(jī),我學(xué)到了很多的東西。圖 211 自編用例2運(yùn)行結(jié)果3. 此時一段缺少右括號’)’的代碼圖 212 自編用例3運(yùn)行結(jié)果4. 測試一段輸入了錯誤的標(biāo)識符的代碼圖 213 自編用例5運(yùn)行結(jié)果由上面的運(yùn)行結(jié)果可以看出,對一部分程序源代碼,我的語法分析程序可以識別正確的表達(dá)式,并且找出錯誤的表達(dá)式中出錯的地方。1. 測試一個不加’end’的源程序代碼。} 測試結(jié)果我先用書上的兩個例子源程序進(jìn)行了測試,結(jié)果如下:圖 28 書上測試用例1運(yùn)行結(jié)果圖 29 書上測試用例2運(yùn)行結(jié)果由書上的兩個例子的運(yùn)行結(jié)果可以看出來,程序目前可以對正確的源程序判定成功,也可以對錯誤的源程序指出錯誤原因。 else printf(Error!\n)。 //獲取此法分析結(jié)果 result = pWordAnalyscanner(buffer)。39。 do { buffer[p++] = ch = getchar()。 GrammerAnaly * pGrammerAnaly = new GrammerAnaly()。 WORD_ANALY_RESULT * result。 int p = 0。 } return 1。 } } else { printf(表達(dá)式錯誤\n)。錯誤\n)。 } else { printf(缺少39。 if (thisexpression() == 0) return 0。}int GrammerAnaly::factor(){ //當(dāng)前符號是否為變量名或整形數(shù)字 if (thispWordAnalyResultsyn == 10 || thispWordAnalyResultsyn == 11) { if (!thisscanner()) return 0。 if (thisfactor() == 0) return 0。}int GrammerAnaly::term(){ if (thisfactor() == 0) return 0。 if (thisterm() == 0) return 0。}int GrammerAnaly::expression(){ if (thisterm() == 0) return 0。 return 0。 if (thisexpression() == 0) return 0。}int GrammerAnaly::statement(){ //當(dāng)前符號是否為變量名 if (thispWordAnalyResultsyn == 10) { if (!thisscanner()) return 0。 if (thisstatement() == 0) return 0。}int GrammerAnaly::word_string(){ if (thisstatement() == 0) return 0。 } } else { printf(缺少begin\n)。end39。 //當(dāng)前符號是否為 if (thispWordAnalyResultsyn == 0) return 1。 if (thisword_string() == 0) return 0。}int GrammerAnaly::lrparser(){ if (thispWordAnalyResult == NULL) return 0。 if (thispWordAnalyResult == NULL) return 0。}。 //項分析 int term()。 //賦值語句分析 int statement()。 int lrparser()。 }private: WORD_ANALY_RESULT * pWordAnalyResult。 int grammer_analy(WORD_ANALY_RESULT * head) { thispWordAnalyResult = head。并且,由于本次實(shí)驗所用的詞法分析函數(shù)就是在前面介紹的,而且前面也已經(jīng)展示了代碼,因此,下面我將僅展示我的語法分析函數(shù)的代碼。同時,我在實(shí)際的編程工作中,對于出錯的判斷并沒有使用變量kk,而是直接通過各個函數(shù)的返回值來進(jìn)行判斷。圖 21語法分析主程序示意圖圖 22 遞歸下降分析程序示意圖圖 23 語句串分析示意圖圖 24 statement語句分析函數(shù)示意圖圖 25 expression表達(dá)式分析函數(shù)示意圖圖 26 term分析函數(shù)示意圖圖 27 factor分析過程示意圖 算法實(shí)現(xiàn)同詞法分析程序一樣,本程序也是使用C++語言,并借助了類這個工具來編寫的。(3) 語句串分析過程示意圖如所示。 b:=a+x end 輸出 success輸入 x:=a+b*c end 輸出 error 實(shí)驗原理 (1) 主程序示意圖如圖 21所示。例如:輸入 begin a:=9。1. 待分析的簡單語言的語法用擴(kuò)充的BNF表示如下:(1) 程序 ::= begin 語句串 end(2) 語句串 ::= 語句 {。2 實(shí)驗二 語法分析 實(shí)驗?zāi)康木幹埔粋€遞歸下降分析程序,實(shí)現(xiàn)對詞法分析程序所提供的單詞序列的語法檢查和結(jié)構(gòu)分析。此時,我再輸入一些非法字符,看一看程序的處理能力。} 測試結(jié)果首先我輸入書上的測試用例,其結(jié)果如圖所示:圖 13 書上的測試用例運(yùn)行結(jié)果接著我故意將數(shù)字后面直接與字母相連,測試一下程序的錯誤處理能力。 result = resultnext。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1