LL語法分析器_第1頁
LL語法分析器_第2頁
LL語法分析器_第3頁
LL語法分析器_第4頁
LL語法分析器_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、名師精編優秀資料LL(1)語法分析器實驗報告書目 錄第一章概述 31.1 開發平臺 31.2 實驗目的 31.3 實驗要求 3第二章語法分析器的實現 32.1 LL(1)語法分析器原理 32.2 求出能推出空的終結符 42.3 FIRST集的確定 42.4 FOLLOW集的確定 42.5 SELECT集的確定 42.6 LL(1) 文法的判別 42.7 邏輯結構 42.8 預測分析表的生成 52.9 句子的判定 52.10 其他說明 5第三章系統運行與測試 63.1程序運行環境 63.2運行界面 63.3 系統測試 8第四章總述 114.1程序綜述 114.2小組工作總結 11第一章概述1.1

2、 開發平臺本程序基于 Microsoft Visual Studio 2008開發,使用C#語言。1.2 實驗目的LL(1)分析表的構造方法,掌握 LL(1)掌握LL(1)分析法的基本原理,掌握驅動程序的構造方法。1.3 實驗要求編寫一個語法分析器,不限語言,方法。第二章 語法分析器的實現2.1 LL(1)語法分析器原理語法分析是編譯過程的核心部分,它的主要任務是按照程序的語法規則, 從 由詞法分析輸出的源程序符號串中識別出各類語法成分, 同時進行詞法檢查,為 語義分析和代碼生成作準備。這里采用自頂向下的 LL(1)分析方法。語法分析程序的流程圖如圖5-4所示2.2 求出能推出空的終結符見許英

3、俊報告2.3 FIRST集的確定見鄒杰光報告2.4 FOLLOW集的確定見張志峰報告2.5 SELECT集的確定見葉凱翔報告2.6 LL文法的判別見葉凱翔報告2.7 邏輯結構一個LL(1)分析器由一張分析表、一個分析棧和一個總控程序組成。其邏輯結構如圖2-1所式2.8 預測分析表的生成見許英俊報告2.9 句子的判定當一個文法確定是LL(1)文法時就可以對輸入的語句進行判定了。首先要安 裝SELLECT集生成LL(1)預測分析表,最簡單的方法是使用哈希表來表示,把 每一個產生式左部依次和這個產生式SELLECT集中的每一個終結符組成關鍵字,其值即為這個產生式,送入哈希表。這樣在進行句子的分析時就

4、可以很容易 判斷是否使用某一個產生式來進行規約。在實際分析時設置兩個棧,把"#"壓入分析棧和剩余棧,把開始符壓入分析棧,把輸入串從右向左送入剩余棧,然后只 要兩個棧元素個數同時大于1,那么依次從兩個棧中取出兩個元素進行比較,假 如一樣就匹配,假如可以規約就規約,否則就不是該文法的句子。2.10 其他說明本程序使用C#編寫,有良好的用戶界面,在程序當中, Work類是程序工作 類,分析與判斷都在這里.Forml為圖形界面類,有關圖形界面的設置在這里.第三章系統運行與測試3.1程序運行環境2000或XP系統,安裝.NetFrameWork 3.5以上版本即可運行。需要調試程序請

5、安裝.NetFrameWork SDK 3.5以上版本或直接安裝Visual Studio 2008以上版本。3.2運行界面程序打開后點確定規則后點擊分析欄名師精編 _優秀資料點分析按鈕后m賛:1出曲S 利試子符昂測試輸出語怎分折皓果: 咼號審是上酬則的甸子分析棧利余播入串推導斫用產生式i+i*ifE->TAMTT->FBF->itABii甌ti*i#A-HTA1UT+甌#ATi*i#T->FB乎ABFi*i#P-?ii匹配常ABE->FB»ABF*ABFi#F->i#ABii#i瞰#ABfE-)$«AfA-?$*f攝旻3.3 系統測試3

6、.31測試數據一點擊文件菜單,選著打開文件,打開程序目錄下yufa1.txt文件,載入測試文法規則:文法規則(依次為非終結符,終結符,起始符,規則):SHMAabdeSS->aHH->aMdH->dM->AbM->$A->aMA->e點擊確定規則,程序判斷:提示片d->Ab-錨能舌堆空的表S 口H 0H 1k 0firstsS:aH: ad直弗ik:fallow 集5 #H # :4bk:h集*業lF>d: dh >Ab : <t«->$: db»>酬1:戲«->t:e旱否是LL(

7、1):是判斷出該規則是LL(1)文法規則,測試字符串abddbe#推辱所用產生式S->aH 迥配M->ddE9E諸課測誼輸出語注分析貉果: 分析棧剌余魅入串 #Sadbbde#H&Adbbde#Kdbbde#4dbbdet#bba«#aaaaebbbd#!1 合名師精編優秀資料測試輸入測試字符串馳包辭bbbd#分析s一 測試輸出語法分祈皓臬.符號審星上述規則的旬子分祈棧棘余輸入串推導所用產生式aaaaebbbd#S->aH#Haaaaaeblibd#a匹配#HuA»bbbttH-Mdu»bbbM匹配#dMu Qbbb d#M->Ab

8、#dbAaaebbbd#A->aM紂blkaaebbbd#a匹配#dbNubbbttM->Ab#dbbA&*bbbd#dbbMubbbtf幀#dbbMebbbd#M->b#dbbbAbbbttA->e#dbbbtebbbd*也匹#dbbbbbbd#b匹配#dbbbbd#畫己#dbbd#bizre#da#dizge#接受測試2:見圖文件幫勖文法選擇分析P農袪不是2型石延下文無關文法),分靳至此終止文法產生式:LABL$AbBf$RfaD h ADC十D-*-aSjt匚第四章總述4.1程序綜述本程序可以很好的判斷LL(1)文法與進行語法分析,擁有良好的界面,可以保存與打開文法,可以保存分析結果。分析過程提示清楚,方 便。4.2小組工作總結通過這個學期的學習,我們小組對編譯原理有了一定的了解,熟悉了語法分 析器與詞法分析器的制作與使用,了解了更多關于語言的知識.溫老師認真負 責,督促我們做好小組作業,這極大提高了我們

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論