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

正文內容

編譯原理報告(9)-資料下載頁

2025-03-23 12:06本頁面
  

【正文】 是否為賦值號 if (thispWordAnalyResultsyn == 18) { if (!thisscanner()) return 0。 if (thisexpression() == 0) return 0。 } else { printf(語句錯誤\n)。 return 0。 } } return 1。}int GrammerAnaly::expression(){ if (thisterm() == 0) return 0。 //當前符號是否為加號或減號 while (thispWordAnalyResultsyn == 13 || thispWordAnalyResultsyn == 14) { if (!thisscanner()) return 0。 if (thisterm() == 0) return 0。 } return 1。}int GrammerAnaly::term(){ if (thisfactor() == 0) return 0。 //當前符號是否為乘號或除號 while (thispWordAnalyResultsyn == 15 || thispWordAnalyResultsyn == 16) { if (!thisscanner()) return 0。 if (thisfactor() == 0) return 0。 } return 1。}int GrammerAnaly::factor(){ //當前符號是否為變量名或整形數字 if (thispWordAnalyResultsyn == 10 || thispWordAnalyResultsyn == 11) { if (!thisscanner()) return 0。 } //當前符號是否為左括號 else if (thispWordAnalyResultsyn == 27) { if (!thisscanner()) return 0。 if (thisexpression() == 0) return 0。 //當前符號是否為右括號 if (thispWordAnalyResultsyn == 28) { if (!thisscanner()) return 0。 } else { printf(缺少39。)39。錯誤\n)。 return 0。 } } else { printf(表達式錯誤\n)。 return 0。 } return 1。}:includeincludeincludeint main(){ char buffer[300]。 int p = 0。 char ch。 WORD_ANALY_RESULT * result。 WordAnaly * pWordAnaly = new WordAnaly()。 GrammerAnaly * pGrammerAnaly = new GrammerAnaly()。 printf(\n please input string : \n)。 do { buffer[p++] = ch = getchar()。 }while( ch != 39。39。 )。 //獲取此法分析結果 result = pWordAnalyscanner(buffer)。 if (pGrammerAnalygrammer_analy(result) == 1) printf(Success!\n)。 else printf(Error!\n)。 return 0。} 測試結果我先用書上的兩個例子源程序進行了測試,結果如下:圖 28 書上測試用例1運行結果圖 29 書上測試用例2運行結果由書上的兩個例子的運行結果可以看出來,程序目前可以對正確的源程序判定成功,也可以對錯誤的源程序指出錯誤原因。接下來我將再測試幾個例子。1. 測試一個不加’end’的源程序代碼。圖 210 自編用例1運行結果2. 測試一段帶有括號的正確的代碼。圖 211 自編用例2運行結果3. 此時一段缺少右括號’)’的代碼圖 212 自編用例3運行結果4. 測試一段輸入了錯誤的標識符的代碼圖 213 自編用例5運行結果由上面的運行結果可以看出,對一部分程序源代碼,我的語法分析程序可以識別正確的表達式,并且找出錯誤的表達式中出錯的地方。雖然并沒有測試更多的例子,不過現在可以說,我的語法分析程序的編制是成功的。3 總結與體會通過這次編譯原理上機,我學到了很多的東西。首先,我認識到了,編譯原理這門課的只是并不僅僅局限在理論上。在上機之前,我們所接觸的編譯原理都是存在于課堂上、書本中的,都是書上一條條的理論與規(guī)則。雖然我們都知道我們平時所做的編程工作都離不開這門課程,但是還是覺得這門課程的知識很高深,也距離我們很遙遠。直到上機的時候,我才發(fā)現,原來在書本上深奧的知識,實踐起來居然會那么簡單。上機的過程也打消了編譯原理這門課程在我心中的神秘性。并且,在實現詞法分析與語法分析程序的過程中,我深切感受到了規(guī)格化的重要性。正因為規(guī)格化理論上的復雜與嚴謹,我們在動手去實現它的時候才會這么輕松和簡單。在上機實驗的過程中,我也看到有一些同學使用了Yacc和Lex等工具來生成產生自己的代碼。我在之前僅僅是聽老師提過一次,并沒有嘗試去了解和使用它,沒想到這些同學就已經開始積極動手實踐了。看到這些同學,我也很慚愧,感覺自己在學習的主動性上還是差了很多。之后我就去了解了一些Yacc和Lex的有關知識,發(fā)現它們的使用也并不是太困難。因此我打算等這段時間考試課設都忙完了以后去深入學習一下這兩個工具的。同時,在編寫程序的時候,我也遇到了一些問題。比如全局變量太亂不好管理、詞法分析程序與語法分析程序直接不好做銜接、如何檢測程序中的錯誤等等。通過不斷的調試與改進,我最終解決了這些問題,完成了上機實驗的任務。不過話說回來,我的解決方式也并不完美。因為中間的數據是靠鏈表進行傳遞的,所以語法分析程序和詞法分析程序不能實時通信,這樣的話在出現錯誤的時候程序不能及時響應,會浪費一定的時間。這一點還是需要再進行改進??偟貋碚f,這次上機實驗加深了我對編譯原理這門課程的認識,提高了我編寫程序和查錯改錯能力,也讓我認識到了自己在學習上面的不足,讓我知道我自身需要提高的地方。在接下來的學習生活中,我一定會改正這些錯誤,讓自己的學習更上一層樓。23
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1