1.鞏固對語法分析的基本功能和原理的認識。
2.通過對語法分析表的自動生成加深語法分析表的認識。
3.理解並處理語法分析中的異常和錯誤。
在詞法分析器的基礎上設計實現類高階語言的語法分析器,基本功能如下:
(1) 能識別以下幾類語句:
ø 宣告語句(包括變數宣告、陣列宣告、記錄宣告和過程宣告)
ø 表示式及賦值語句(包括陣列元素的引用和賦值)
ø 分支語句:if_then_else
ø 迴圈語句:do_while
ø 過程呼叫語句
(2)如果語法分析器採用的是自頂向下的分析技術,要求編寫程式自動計算
first
集和follow
集,並自動生成**分析表。如果採用的是自底向上的分析技術,要求編寫自動計算
closure(i)
和goto
函式的程式,並自動生成
lr分析表。
(3)具備語法錯誤處理能力,能準確給出錯誤所在位置,並採用可行的錯誤恢復策略。輸出的錯誤提示資訊格式如下:
error at line [行號]:[說明文字]
(4)系統的輸入形式:要求可以通過檔案匯入文法和測試用例,可以通過使用者介面顯示並編輯
測試用例。測試用例要涵蓋「實驗內容」第(
1)條中列出的各種型別的語句,並設定一些語法錯誤。
(5)系統的輸出分為兩部分:一部分是列印輸出語法分析器的
first
集、follow
集和ll(1)
分析表(或
lr分析表)。另一部分是列印輸出語法分析結果
在這裡我就附上我的實驗報告啦~
自我感覺還是不錯的嘻嘻嘻
源**:
哈工大編譯原理實驗1 詞法分析
設計實現類高階語言的詞法分析器,基本功能如下 1 能識別以下幾類單詞 識別符號 由大小寫字母 數字以及下劃線組成,但必須以字母或者下劃線開頭 關鍵字 型別關鍵字 整型 浮點型 布林型 記錄型 分支結構中的if和else 迴圈結構中的do和while 過程宣告和呼叫中的關鍵字 運算子 算術運算子 關係...
編譯原理 語法分析(二)
在第一篇文章中,我們介紹了如何用上下文無關文法描述一種語言的語法,和如何使用推導和規約構造一棵語法分析樹,以及如何對文法進行轉換使之能夠更適用於語法分析。在本篇文章中,我們將介紹如何使用自頂向下的方法進行語法分析,進一步的,我們將介紹一種更高效的 分析方法。為了下文需要和減少重複,我們先給出在下文中...
編譯原理 語法分析 二
在第一篇文章中,我們介紹了如何用上下文無關文法描述一種語言的語法,和如何使用推導和規約構造一棵語法分析樹,以及如何對文法進行轉換使之能夠更適用於語法分析。在本篇文章中,我們將介紹如何使用自頂向下的方法進行語法分析,進一步的,我們將介紹一種更高效的 分析方法。文法 約定 為了下文需要和減少重複,我們先...