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

正文內(nèi)容

一個(gè)編譯原理語法分析器的實(shí)現(xiàn)與設(shè)計(jì)一個(gè)編譯原理語法分析器的實(shí)現(xiàn)與設(shè)計(jì)—畢業(yè)設(shè)計(jì)論文(存儲(chǔ)版)

2025-01-08 11:23上一頁面

下一頁面
  

【正文】 ....................... XVI0 參考文獻(xiàn) .............................................................. XVI0 致 謝 ............................................................... XVII1 聲 明 .............................................................. XVIII2 第 1 頁 共 22 頁 1 引言 項(xiàng)目背景 編譯原理是計(jì)算機(jī)專業(yè)中最難的一門課程 ,在理論上它要求學(xué)生掌握有關(guān)形勢(shì)語言和自動(dòng)機(jī)的抽象概念 ,在技術(shù)上要求學(xué)生能夠熟練地利用各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行編程。 句子的分析 :句子的分析實(shí)際就是分析源程序中的語句是否符合 給定的文法。 字匯表 :在文法中,由全部規(guī)則的左部和 右部中的所有符號(hào)組成的符號(hào)集。 Select 集 :可選集。 若對(duì)于某非終止符號(hào)有 n條規(guī)則(即有 n 個(gè)候選式)的處理方法: 對(duì)于文法,有 A::=x1|x2|? |xn,其右部的 n個(gè)候選式的首 符號(hào)集均不相同 : 即 First(xi) ∩ First(xj)=? (i?j),對(duì)于待分析的符號(hào)串,如果最左的非終結(jié)符號(hào)為 A,若其句子中對(duì)應(yīng)的下一個(gè)符號(hào)(當(dāng)前輸入符號(hào))為 a,且有a?First(xk),則選擇規(guī)則 A::=xk 來作為推導(dǎo)的候選式。 遞歸子程序 遞歸子程序方法: 這里講的遞歸子程序方法是一種自頂向下的編譯方法,其思想是通過對(duì)源程序的每個(gè)語法成分編制一個(gè)處理子程序,通過子程序調(diào)用來對(duì)源程序進(jìn)行語法和 第 4 頁 共 22 頁 語義分析。 (2)遞歸出口工作: ①恢復(fù)保護(hù)在棧頂中的工作單元的原來內(nèi)容,并上退保護(hù)棧; ②取保護(hù)在棧頂中的返回地址進(jìn)行返回,并退保護(hù)棧。 (2)當(dāng) x1?Vt 時(shí),則查看 x1 與 y1 是否相同,若 x1 與 y1 相同,則分別刪 去x1和 y1,然后繼續(xù)向前分析;不相同表示不相配,為出錯(cuò)。 當(dāng) ? 為 ? 時(shí),即: A::=a,有: LL(A,a)=R(?)/N A::=D?, (D?Vn),且有 Select(A::=D?)={b1,b2,? ,bn} , 則 LL(A,bi)=R(D?)/P, (i=1,2,? ,n) **R(D?)/P:表示用 D? 的逆串替換 A后,重讀當(dāng)前符號(hào) A::=?,且有 Select(A::=?)= {b1,b2,? ,bn} 則 LL(A, bi)=R(?)/P a?Vt, a 不出現(xiàn)于規(guī)則右部的首部, 則令 LL(a,a)=R(?)/N ,令 LL(,)=acc 表示分析結(jié)束,輸入串得到識(shí)別。其中句子合法性的判斷又分為句子中是否有文法終結(jié)符以外的符號(hào)和句子是否符合文法規(guī)則的判斷。一般含有左遞歸規(guī)則的文法形式為 U::=xUy, 若 x=?, 則有 U::=Uy,即為左遞歸規(guī)則 。 select 集 Dim F(50) As String 39。 c = 0: b = 0 If WF(a, 0) = WF(0, 0) Then 39。如圖 5。然后再把相應(yīng)的規(guī)則逆向壓入棧頂,替換原棧頂?shù)姆墙K結(jié)符。 解決方案 利用 SendMessage 傳送 LB_SETHORIZONTALEXTENT 訊息給 ListBox,此一 第 XII 頁 共 22 頁 訊息的作用就是要求 ListBox 設(shè)定水平 滾動(dòng)條。 尤其對(duì)于向前看集的算法實(shí)現(xiàn),我覺得是最難的一部分,因?yàn)樯婕暗降那闆r太多,循環(huán)和選擇句型的嵌套使用如果不仔細(xì)分析就容易出現(xiàn)錯(cuò)誤。 [6] 徐謖 .Visual Basic應(yīng)用與開發(fā)案例教程 [M].北京:清華大學(xué)出版社, 。 ( 3)學(xué)??梢詫W(xué)術(shù)交流為目的復(fù)制、贈(zèng)送和交換學(xué)位論文。所謂 LL(1)分析法是指語法分析是按自左至右的順序向前查看一個(gè)輸入字符串,并分析過程中產(chǎn)生句子的最左推導(dǎo) 。這些過程往往需要占用大量時(shí)間來分析、制表等。規(guī)則又稱為產(chǎn)生式。 遞歸定義 :在定義某種事物時(shí)又用到其本身。 例:設(shè)有文法 G[N]和符號(hào)串 25 N N::=D|ND D::=0|1|2|?|9 根據(jù)文法有: N?ND?DD?2D?25; 因此我們說 25 符合此文法 圖 1 G[N]過程分析 自頂向下分析的難點(diǎn)及解決辦法: N D D 5 2 第 3 頁 共 22 頁 對(duì)于形如 :U::=x1|x2|? |xn 的規(guī)則 ,可能需 要對(duì)所有的規(guī)則都要試探。 Select(V ::=x)={x}。 ,由于返回地址保護(hù)單元數(shù)目不明確,一般采用堆棧形式。 LL( 1)分析方法 ( 1)方法的思想:根據(jù)輸入串的當(dāng)前輸入符號(hào),確定用某規(guī)則進(jìn)行推導(dǎo),當(dāng)推導(dǎo)的第一個(gè)符號(hào)與輸入串的當(dāng)前符號(hào)匹配時(shí),就把輸入串的下一個(gè)字符作為當(dāng)前輸入字符,直到推導(dǎo)出輸入串。 (1)分析表的構(gòu)造 LL(1)分析表:它是用來反映分析棧中的元素與輸入串中元素的一種匹配關(guān)系。 現(xiàn)在我們把句型的右端部分逆向放入一分析堆棧中,使 x1成為棧頂,利用分析棧,當(dāng)棧頂符號(hào)與輸入串當(dāng)前符號(hào)相匹配時(shí),則從棧頂刪除該符號(hào)。這種分析方法從左到右掃描源程序(輸入串),同時(shí)從識(shí)別符號(hào)開始生成句子的最左推導(dǎo)(規(guī)范推導(dǎo)),向前看 K 個(gè)符號(hào),便能確定當(dāng)前應(yīng)選擇怎樣的規(guī)則。 三種子程序的返回地址保護(hù)方法: 返回地址保護(hù)單元。 Select(Z ::=bZ)=。 自頂向下分析 對(duì)于文法 G[Z],給頂一個(gè)待分析的句子 (字符串 ),自頂向下分析的基本思想是從識(shí)別符號(hào) Z 開始,根據(jù)文法試著建立一個(gè)推導(dǎo)序列,若得到所給的句子,則句子得到識(shí)別,表明其結(jié)構(gòu)符合文法,如果經(jīng)過各種推導(dǎo)都不能得到所分析的句子,則該符號(hào)串不符合文法。 終結(jié)符 :文法中凡不屬于非終結(jié)符集的符號(hào),它們組成的集合稱為終結(jié)符集。由若干條規(guī)則組成。編譯程序一般由詞法分析程序、語法分析程序、語義分析程序、中間代碼生成程序、目標(biāo)代碼生成程 序、代碼優(yōu)化程序、表格管理程序和出錯(cuò)處理程序等成分構(gòu)成。本軟件的主要任務(wù)就是利用程序來完成算法的上述相關(guān)過程,以達(dá)到高效,直觀的效果。 關(guān)于學(xué)位論文使用權(quán)和研究成果知識(shí)產(chǎn)權(quán)的說明: 本人完全 了解成都信息工程學(xué)院有關(guān)保管使用學(xué)位論文的規(guī)定,其中包括: ( 1)學(xué)校有權(quán)保管并向有關(guān)部門遞交學(xué)位論文的原件與復(fù)印件。 [4] 楊克玉 . [M].北京:機(jī)械工業(yè)出版社出版, 。 第 XIII 頁 共 22 頁 圖 8 Open對(duì)話框 文法原形如圖 9所示: 圖 9 輸入的文法 對(duì)其進(jìn)行分析,結(jié)果如圖 10 所示: 第 XIV 頁 共 22 頁 圖 10 文法分析結(jié)果 隨后即可得到文法的分析表(圖 11),并以此為依據(jù),對(duì)輸入的句子進(jìn)行分析(圖 12)。當(dāng)控件中某一行的數(shù)據(jù)超過 ListBox 的寬度時(shí),數(shù)據(jù)會(huì)顯示不完整。存放句子分析過程中的輸入符號(hào)棧 讀取句子 Public Sub juzi_read(str As String) 39。形如 FXB( y, x, z),其中, y 表示分析表的第 y 行, x表示第 x列, z表示第 y行第 x 列所對(duì)應(yīng)的格子中的第 z個(gè)數(shù)據(jù)。判斷第 a 條規(guī)則右邊的首符號(hào)是否是終結(jié)符 For p = 0 To fo 39。 終結(jié)符的個(gè)數(shù) Public nz As Integer 39。 用 ShowOpen 方法顯示對(duì)話框 p_name = 39。 LL(1)算法 演示系統(tǒng) 文法輸入 文法分析 句子輸入 與分析 文法分析表 構(gòu)造 獲取終結(jié)符和非終結(jié)符 求文法的 select 集 判斷 select 集的合法性 求 first 集 求 follow 集 第 IV 頁 共 22 頁 3.分析表構(gòu)造模塊 分析表構(gòu)造模塊的主要功能是將算法分析模塊所求解出的符合 LL( 1)算法規(guī)則的文法的 select 集轉(zhuǎn)化成文法分析表,以便下一模塊的調(diào)用。首先進(jìn)行介紹與 LL(1)分析有關(guān)的 3個(gè)操作約定: (1)N 表示繼續(xù)下一個(gè)符號(hào); (2)P 表示重讀當(dāng)前符號(hào),也即不讀入下一符號(hào); (3)R(?)表示用 ? 的逆串替換棧頂符號(hào)。 (1)分 析方法的邏輯結(jié)構(gòu) 第 I 頁 共 22 頁 圖 2 LL(1)分析方法的邏輯結(jié)構(gòu) (1)分析表 LL(1)分析表是分析方法的核心 ,它確定了推導(dǎo)所使用的規(guī)則。同時(shí)入棧和出棧的還有相應(yīng)的遞歸子程序中需要保護(hù)的工作單元。試探法有可能形成回溯現(xiàn)象。 方法: 首先對(duì)文法的每個(gè)規(guī)則 A::=? 求可選集 Select(A::=?)。 First 集 :首符號(hào)集。運(yùn)用符號(hào)“ |”把相同左部的規(guī)則縮寫在一起,這樣顯得文法更為緊湊。本軟件的主要任務(wù)就是利用程序來完成算法的上述相關(guān)過程,節(jié)約教學(xué)時(shí)間。 grammar analysis。 在編譯原理的教學(xué)過程中,算法的講解都需要對(duì)算法進(jìn)行詳細(xì)的分析,包括算法條件的判斷,文法分析表的構(gòu)造過程,文法分析表的具體生成,針對(duì)文法的句子的分析過程等, 這些過程往往需要占用大量時(shí)間來分析、制表等。 編譯程序是現(xiàn)代計(jì)算機(jī)系統(tǒng)的基本組成部分之一。 文法 :對(duì)語言結(jié)構(gòu)的定義和描述,即在形式上用于描述和規(guī)定語言結(jié)構(gòu)。 非終結(jié)符 :文法中出現(xiàn)在規(guī)則左部的符號(hào),它們組成的集合稱為非終結(jié)符集。 LL( 1)文法 :對(duì)于文法 G( S),其每 個(gè)非終結(jié)符的不同規(guī)則具有不相交的Select 集,則稱該文法為 LL( 1)文法。 例:設(shè)有文法 G[Z],和句子 bbabaax Z::=aV|bZ V::=baZ|x Select(Z ::=aV)={a}。 遞歸子程序及其調(diào)用: 常用的子程序的種類有 3 種: 簡(jiǎn)單子程序, 嵌套子程序, 遞歸子程序。 LL( K)分析方法 LL(K)分析方法是一種自頂向下的分析技術(shù)。 (3)若上述兩個(gè)字符串均為空,則表示全部匹配,輸入串被識(shí)別。 5種情況,則置出錯(cuò),分析表中用空白表示。下面將對(duì)以上四個(gè)模塊的具體實(shí)現(xiàn)技術(shù)、數(shù)據(jù)結(jié)構(gòu)及關(guān)鍵程序片段進(jìn)行詳細(xì)的說明。由于消除左遞歸算法的復(fù)雜性和畢業(yè)設(shè)計(jì)時(shí)間所限,所以本軟件沒有這項(xiàng)功能,只是對(duì)直接左遞歸進(jìn)行錯(cuò)誤判斷。 用與臨時(shí)存放 select 集中元素的數(shù)組 Public ZJF(50) As String 39。判斷是不是對(duì)文法起始符求 follow 集 For p = 0 To fo 39。 圖 5 分析表構(gòu)造流程 文法分析表 終結(jié)符 非終結(jié)符 文法可選集 未出現(xiàn)在對(duì)應(yīng)規(guī)則右部首部的終結(jié)符 放入分析表 X 軸 放入分析表 Y 軸 放入分析表 Y 軸 第 IX 頁 共 22 頁 ::=aβ 規(guī)則 對(duì)于 A::=a?, (a?Vt),則 令 LL(A,a)=R(?)/N **R(?)/N:表示用 ? 的逆串替換A后,繼續(xù)讀入下一個(gè)符號(hào)。 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
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1