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

正文內(nèi)容

一個編譯原理語法分析器的實現(xiàn)與設(shè)計一個編譯原理語法分析器的實現(xiàn)與設(shè)計—計算機畢業(yè)設(shè)計(論文)-在線瀏覽

2025-03-07 15:07本頁面
  

【正文】 = TrueOn Error GoTo err = Text(*.txt)|*.txt = 1 39。 用 FileName 屬性獲取選定文件的名稱文法中使用遞歸規(guī)則以后,可以用有限的規(guī)則刻劃無限語言,但不利的是對與具有左遞歸性的文法,不能采用自頂向下的分析算法。由于消除左遞歸算法的復(fù)雜性和畢業(yè)設(shè)計時間所限,所以本軟件沒有這項功能,只是對直接左遞歸進行錯誤判斷。 判斷文法是否有左遞歸 If WF(j, 0) = WF(j, 1) Then MsgBox !錯誤!文法有左遞歸存在,不符合LL(1)的要求, vbApplicationModal, 錯誤 Exit Sub End If j = j + 1Loop本模塊首先獲取文法的終結(jié)符集和非終結(jié)符集,分別用一維數(shù)組進行保存;然后在對文法的每一條規(guī)則求select集,并將select集保存到二維數(shù)組中;最后對select集做相關(guān)判斷,以確定所讀入的文法是否符合LL(1)文法的規(guī)則。 文法的行數(shù)Public zj As Integer 39。 非終結(jié)符的個數(shù)Public SLT(50, 50) As String 39。 用與臨時存放select集中元素的數(shù)組Public ZJF(50) As String 39。 非終結(jié)符集設(shè)有文法G[S],并有規(guī)則A::=b,則該規(guī)則的可選集為:Select(A::=b)= 具體實現(xiàn)代碼如下: If WF(a, 0) = Empty Then Exit For ElseIf WF(a, 1) = ε Then 39。For i = 0 To zj If WF(a, 1) = ZJF(i) Then 39。判斷WF(i,j+1)在F()中是否已經(jīng)存在 If WF(a, 1) = F(p) Then b = 1 Exit For End If Next p If b = 1 Then b = 0 Else F(fo) = WF(a, 1) fo = fo + 1 F(fo) = Empty End If 求向前看集主要分兩種情況,一種是可以直接循環(huán)推導(dǎo)出終結(jié)符;第二種是推出的還是非終結(jié)符的,如果推出的還是非終結(jié)符的就循環(huán)對該非終結(jié)符再求向前看集;第三種情況是不能對該非終結(jié)符求向前看集,但是可以通過對該非終結(jié)符推導(dǎo)出的第二個非終結(jié)符求向前看集的方法求出終結(jié)符。判斷是不是對文法起始符求follow集 For p = 0 To fo 39。判斷WF(i,j+1)是不是終結(jié)符 If WF(i, j + 1) = ZJF(m) Then For p = 0 To fo 39。查找WF(i,j+1)對應(yīng)的非終結(jié)符在文法的第幾行 If WF(i, j + 1) = WF(n, 0) Then Call first(n, fo) 在已經(jīng)得到文法select集的前提下,以次為依據(jù),對文法的三種類型的規(guī)則:A::=aβ型、A::=Dβ型、A::=ε型分別構(gòu)造分析表,并用一個三維數(shù)組保存。在求解Select集完成后,結(jié)果按照非終結(jié)符放入分析表Y軸,沒有出現(xiàn)在對應(yīng)規(guī)則右部首部的終結(jié)符放入分析表Y軸,終結(jié)符放入分析表X軸等規(guī)則放置。放入分析表Y軸放入分析表X軸終結(jié)符 文法可選集非終結(jié)符文法分析表放入分析表Y軸未出現(xiàn)在對應(yīng)規(guī)則右部首部的終結(jié)符 圖5 分析表構(gòu)造流程::=aβ規(guī)則對于A::=ab,(a206。當b為e時,即:A::=a,有:LL(A,a)=R(e)/N ::=Dβ規(guī)則對于A::=Db,(D206。分析過程均用一維數(shù)組進行保存。存放句子分析過程中的分析棧Dim FHZ(50) As String 39。讀取句子FHZ(0) = Emptyi = 0a = Mid(str, 1, 1)Do While a Empty FHZ(i) = a a = Mid(str, i + 2, 1) i = i + 1 FHZ(i) = EmptyLoopIf FHZ(0) = Empty Then Exit SubEnd IfFHZ(i) = FHZ(i + 1) = EmptyCall fenxi_chrEnd Sub現(xiàn)在我們把句型的右端部分逆向放入一分析堆棧中,使x1成為棧頂,利用分析棧,當棧頂符號與輸入串當前符號相匹配時,則從棧頂刪除該符號。 Do While (i, j, k) Empty Select Case (i, j, k) Case acc Exit Sub Case ε FXZ(a) = Empty Case /N FHZ(b) = b = b + 1 a = a 1 Exit For Case /P a = a 1 Exit For Case Else FXZ(a) = (i, j, k) a = a + 1 FXZ(a) = Empty End Select k = k + 1 Loop4 特殊問題及解決方法在程序的開發(fā)過程中,遇到的問題及解決辦法如下: Select集的求解 問題描述在LL(1)分析方法中,select集的求解至關(guān)重要,其中又涉及到first集和follow集的求解。要用計算機實現(xiàn)這一復(fù)雜的過程,對開發(fā)人員的邏輯思維能力要求甚高。 解決結(jié)果在成功獲得select集后,對其進行了輸出,結(jié)果如圖6所示:圖6 顯示select集 問題描述在VB中,系統(tǒng)提供的ListBox只有垂直滾動條,而沒有水平滾動條。添加的水平滾動條的寬度也應(yīng)該能動態(tài)的改變,以最寬的一行數(shù)據(jù)為水平滾動條寬度的依據(jù)。代碼如下:Private Declare Function SendMessage Lib user32 Alias SendMessageA (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const LB_SETHORIZONTALEXTENT = amp。i的值由所輸出的最長的一串字符串決定,具體獲取方法為:添加一個自動縮放大小的label,將最長的字符串附給其Caption屬性,然后取得label的寬度除以15,即為i的值。通過open對話框輸入正確的文法(圖8所示),把自己想輸入的文法通過正確格式書寫在TXT文檔中,運行軟件后就可以選中該文件打開運行。圖11 文法分析表圖12 句子分析過程句子錯誤有2種情況:1.句子不符合文法,錯誤提示如圖13所示:圖13 句子不符合文法(1)2.句子中有終結(jié)符以外的字符,錯誤提示如圖14所示:圖14 句子不符合文法(2)結(jié) 論編譯原理是計算機專業(yè)中最難的一門課程,在理論上它要求學生掌握有關(guān)形勢語言和自動機的抽象概念,在技術(shù)上要求學生能夠熟練地利用各種數(shù)據(jù)結(jié)構(gòu)進行編程。在數(shù)據(jù)的處理上我采用各模塊全數(shù)組操作,并且將最終結(jié)果通過字符串方式保存,通過字符串來向其他模塊傳送數(shù)據(jù),這種新的嘗試也讓我的程序帶有個人的風格,讓我對編程的多樣化有了更深的了解和認識。參考文獻[1] [M].南京:東南大學出版社出版,2002。[3] 賀世娟, Basic 程序設(shè)計[M].北京:中國水利水電出版社出版。[5] Basic教程[M].北京:人民郵電出版社。[7] Basic案例開發(fā)集錦[M].北京:電子工業(yè)出版社,2005。在此向他表示我最衷心的感謝!感謝同班同學在課題研究初期給予的幫助在他們的幫助下課題才得以很好的展開,有了一個很好的開端,感謝寢室同學在測試中給予的幫助,因為他們的協(xié)助才得以高效率的完成本課題!在論文完成過程中,本人還得到了其他老師和許多同學的熱心幫助,本人向他們表示深深的謝意!最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝! 作者簡介: 出生年月:19821014 性別:男Email: fjy7 民族:漢族聲 明本論文的工作是2007年2月至2007年6月在成都信息工程學院網(wǎng)絡(luò)工程系完成的。除非另有說明,本文的工作是原始性工作。(2)學校可以采用影印、縮印或其他復(fù)制方式保存學位論文。(4)學??稍试S學位論文被查閱或借閱。除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學院。在編譯原理的教學過程中,算法的講解都需要對算法進行詳細的分析,包括算法條件的判斷,文法分析表的構(gòu)造過程,文法分析表的具體生成,針對文法的句子的分析過程等,這些過程往往需要占用大量時間來分析、制表等。本文旨在介紹語法分析方法中的一種自上而下的分析方法——LL(1)分析法。關(guān)鍵詞:編譯;語法分析;LL(1)算法;演示 The Design and Implementation of A Syntax Analyzer based on Compilation Theory AbstractThe piler generally is made up of the lexical analyzer program, the syntax analysis program, the semantics analysis program, the interlanguage production procedure, the goal code production procedure, the code optimization procedure, the form executive program and the procedure of disposing mistakes. In the teaching process of piler principle, all algorithm explanation needs to be explain clearly, including algorithm condition judgment, grammar analytical table structure process, grammar analytical table concrete production, in view of grammar sentence analysis process and so on. These processes often take much time to analyze, the scheduling and so on. This program mainly work is to plete the algorithm which take advantage of the procedure to deal with those above mentioned processes , in order to save time. The paper aims at introducing a syntax analytical method named LL(1) algorithm which from the up to down. The syntax analyzer analyzes the character string beginning from the left to right one word each time and educes the most left deduction of the sentence in the analyze course..Key words: piler。 LL(1) algorithm。編譯程序是現(xiàn)代計算機系統(tǒng)的基本組成部分之一。在編譯原理的教學過程中,語法和語義分析階段關(guān)于算法的講解都需要對算法進行詳細的分析,包括算法條件的判斷,文法分析表的構(gòu)造過程,文法分析表的具體生成,針對文法的句子的分析過程等。教學主要是對這些過程的講解和分析,沒有必要花這么多的時間來做這些工作。《一個編譯原理語法分析器的設(shè)計與實現(xiàn)》,并實現(xiàn)以下相關(guān)操作:(1)的要求(其中包括first集和follow集的求解)并判斷select集是否符合LL(1)算法的要求 語法分析:逐一分析詞法分析所得的屬性字,檢查其中的語法錯誤,如果沒有發(fā)現(xiàn)語法錯誤,
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1