編譯原理第03章文法和語言.ppt_第1頁
編譯原理第03章文法和語言.ppt_第2頁
編譯原理第03章文法和語言.ppt_第3頁
編譯原理第03章文法和語言.ppt_第4頁
編譯原理第03章文法和語言.ppt_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費閱讀

VIP免費下載

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

文檔簡介

1,編譯原理 文法和語言,華東交通大學 軟件學院網絡工程教研室 萬仲保 Tel:7046821E-mail:,2,第三章 文法和語言,本章目的 為語言的語法描述尋求工具 工具要對程序設計語言給出精確無二義的語法描述。(嚴謹、簡潔、易讀) 形式工具-形式語言抽象地定義為一個數(shù)學系統(tǒng)?!靶问健笔侵高@樣的事實:語言的所有規(guī)則只以什麼符號串能出現(xiàn)的方式來陳述。,3,3.1 文法的直觀概念 3.2 符號和符號串 3.3 文法和語言的形式定義 3.4 文法的類型 3.5 上下文無關文法及其語法樹 3.6 句型分析 3.7 實用說明,第三章 文法和語言,4,文法的直觀概念,一個程序設計語言是一個記號系統(tǒng),如同自然語言一樣,它的完整的定義應包括語法和語義兩個方面。所謂一個語言的語法是指一組規(guī)則,用它可以形成和產生一個合適的程序。目前廣泛使用的手段是上下文無關文法,即用上下文無關文法作為程序設計語言語法的描述工具。語法只是定義什么樣的符號序列是合法的,與這些符號的含義毫無關系 闡明語法的一個工具是文法,這是形式語言理論的基本概念之一。 示例:漢語句子的描述 語言概述,5,漢語句子的描述,語法規(guī)則定義 字符串的判斷,6,語法規(guī)則定義,句子=主語謂語 主語=代詞名詞 代詞=我你他 名詞=王明大學生工人英語 謂語=動詞直接賓語 動詞=是學習 直接賓語=代詞名詞,7,字符串的判斷,有了一組規(guī)則以后,按照如下方式用它們導出句子:開始去找=左端的帶有句子的規(guī)則并把它由=右端的符號串代替,這個動作表示成: 句子 主語謂語, 然后在得到的串主語謂語中,選取主語或謂語,再用相應規(guī)則的=右端代替之。比如,選取了主語,并采用規(guī)則主語=代詞, 那么得到:主語謂語 代詞謂語, 重復做下去。 句子:“我是大學生”的全部動作過程是: 句子主語謂語 代詞謂語 我謂語我動詞直接賓語 我是直接賓語我是名詞我是大學生,8,字符串的判斷,“我是大學生”的構成符合上述規(guī)則,而“我大學生是”不符合上述規(guī)則,我們說它不是句子。這些規(guī)則成為我們判別句子結構合法與否的依據(jù),換句話說,這些規(guī)則看成是一種元語言,用它描述漢語。這里僅僅涉及漢語句子的結構描述。其中一種描述元語言稱為文法。,9,符號和符號串,定義: 符號:可以相互區(qū)別的記號(元素)。 字母表():符號(元素)的非空有窮集合。 符號串:由字母表中的符號組成的任何有窮序列稱為該字母表上的符號串。 1.空符號串(沒有符號的符號串)是上的符號串 2.若x是上的符號串,a是的元素,則xa是上的符號串 3. y是上的符號串,當且僅當它可以由1和2導出。 例如: =a,b ,a,b,aa,ab,aabba都是上的符號串 符號串的運算,10,符號串的運算,既然將語言定義為一個集合,那么有關集合的運算也適合語言。即:設L是(上的)一個語言,M是(上的)一個語言,則語言L和M的并,交,差,補是一個語言。 符號串的頭、尾、子串 符號串的長度 符號串的連接 符號串的方冪 符號串的集合,11,符號串的頭、尾、子串,符號串s的頭(前綴):移走符號串s尾部的零個或多于零個符號得到的符號串。 如: b是符號串banana的一個前綴. 符號串s的尾(后綴):刪去符號串s頭部的零個或多于零個符號得到的符號串。 如:nana是符號串banana的一個后綴. 符號串s的子串:從s中刪去一個前綴和一個后綴得到的符號串。 如:ana是符號串banana的一個子串. 對于每個符號串s, s和兩者都是符號串s的前綴,后綴和子串。 符號串s的真前綴,真后綴,真子串:任何非空符號串 x,相應地,是s的前綴,后綴或子串,并且 s x。,12,符號串中符號的個數(shù)。 符號串s的長度記為|s|。 的長度為0,符號串的長度,13,符號串的連接,設x、y是符號串,則x、y的連接是把y的符號寫在x的符號之后得到的符號串xy 如 x=ab,y=cd 則 xy=abcd 有a = a,14,符號串的方冪,方冪:設x是符號串,把x自身連接n次得到的符號串z,即z=aaaa稱為符號串x的方冪。寫作z=an 示例: a1=a, a2=aa a0=,15,符號串集合,若集合A中所有元素都是某字母表上的符號串,則稱A為字母表上的符號串集合。 兩個符號串集合A和B的乘積定義為: AB =xy|xA且yB 若 集合A=ab,cde B = 0,1,則 AB =ab1,ab0,cde0,cde1 使用 * 表示上的所有有窮長符號串(包括)組成的集合。*稱為的閉包。 上的除外的所有符號串組成的集合記為+ 。 +稱為的正閉包。 * = 012n + = 12n * = + + =* = *,16,文法和語言的形式定義,文法和語言的形式定義 文法的定義 推導的定義 句型(子)的定義 語言的定義 文法等價的定義,17,語言概述,語言是由句子組成的集合,是由一組符號所構成的集合。 漢語-所有符合漢語語法的句子的全體 英語-所有符合英語語法的句子的全體 每個句子構成的規(guī)律 語言研究 每個句子的含義 每個句子和使用者的關系 每個程序構成的規(guī)律 研究程序設計語言 每個程序的含義 每個程序和使用者的關系 語法 Syntax 語言研究的三個方面 語義 Semantics 語用 Pragmatics,18,程序設計語言,研究程序設計語言 每個程序構成的規(guī)律 每個程序的含義 每個程序和使用者的關系 語言研究的三個方面 語法 Syntax 語義 Semantics 語用 Pragmatics,19,語言研究的三個方面,語法 - 表示構成語言句子的各個記號之間的組合規(guī)律 語義 - 表示各個記號的特定含義。(各個記號和記號所表示的對象之間的關系) 語用 -表示在各個記號所出現(xiàn)的行為中,它們的來源、使用和影響。 每種語言具有兩個可識別的特性,即語言的形式和該形式相關聯(lián)的意義。 語言的實例若在語法上是正確的,其相關聯(lián)的意義可以從兩個觀點來看,其一是該句子的創(chuàng)立者所想要表示的意義,另一是接收者所檢驗到的意義。這兩個意義并非總是一樣的,前者稱為語言的語義,后者是其語用意義。幽默、雙關語和謎語就是利用這兩方面意義間的差異。,20,文法的定義,文法G定義為四元組(VN,VT,P,S )其中VN為非終結符號(或語法實體,或變量)集;VT為終結符號集;P為產生式(也稱規(guī)則)的集合;VN,VT和P是非空有窮集。S稱作識別符號或開始符號,它是一個非終結符,至少要在一條產生式中作為左部出現(xiàn)。 VN和VT不含公共的元素,即VN VT = 通常用V表示VN VT ,稱為文法G的字母表或字匯表。 規(guī)則,也稱重寫規(guī)則、產生式或生成式,是形如或=的(,)有序對,其中是字母表V的正閉包V+中的一個符號,是V*中的一個符號。稱為規(guī)則的左部,稱作規(guī)則的右部。 示例: 例3.1 例3.2,21,例3.1,文法G=(VN,VT,P,S),VN = S , VT = 0, 1 ,P= S0S1, S01 。這里,非終結符集中只含一個元素S;終結符集由兩個元素0和1組成;有兩條產生式;開始符號是S。,22,例3.2,文法G=(VN,VT,P,S) 其中VN=標識符,字母,數(shù)字VT=a,b,c,,x,y,z,0,1,,9 P =標識符字母 標識符標識符字母 標識符標識符數(shù)字 字母a 字母b 字母z 數(shù)字0 數(shù)字1 數(shù)字9 S =標識符 這里,使用尖括號“和“括起非終結符。,23,推導的定義,直接推導“”: 如是文法G=(Vn,VT,P,S)的規(guī)則(或說是P中的一產生式), 和是V*中的任意符號,若有符號串v,w滿足: v= ,w= 則說v(應用規(guī)則)直接產生w,或者說,w是v的直接推導,也可以說,w直接歸約到v,記作v w。 如果存在直接推導的序列: 示例: 直接推導 多步推導,24,直接推導的示例,對于例3.1的文法G,可以給出直接推導的一些例子如下: v=0S1,w=0011, 直接推導:0S10011,使用的規(guī)則:S01,這里 =0,=1。 v=S,w=0S1, 直接推導:S0S1使用的規(guī)則:S0S1,這里 =,= v=0S1,w=00S11, 直接推導:0S100S11,使用的規(guī)則:S0S1,這里 =0,=1。 對于例3.2的文法G,直接推導的例子有: v=標識符,w=標識符字母, 直接推導:標識符 標識符字母, 使用的規(guī)則:標識符標識符字母,這里 = v=標識符字母數(shù)字,w=字母字母數(shù)字, 直接推導:標識符字母數(shù)字 字母字母數(shù)字, 使用的規(guī)則:標識符字母。這里 =, 字母數(shù)字。 v=abc數(shù)字,w=abc5, 直接推導:abc數(shù)字 abc5, 使用的規(guī)則:數(shù)字5,這里 =abc,=。,25,多步推導的示例,對例3.1的文法,存在直接推導序列 v=0S100S11000S11100001111=w, 即0S1 00001111,也可記作0S1 00001111 對例3.2的文法,存在直接推導序列 v=標識符標識符數(shù)字字母數(shù)字x數(shù)字x1=w, 即 x1,也可記作 x1。,26,句型(子)的定義,設GS 是一文法,如果符號串x是從識別符號推導出來的,即有S x,則稱x是文法GS的句型。若x僅由終結符號組成, 即S x,xVT*,則稱x為GS的句子。 例: S,0S1,000111都是例3.1的文法G的句型,其中000111是G的句子。 標識符字母,字母數(shù)字,a1等都是例3.2文法G的句型,其中a1是G的句子。,27,語言的定義,文法G所產生的語言定義為集合x|S x,其中S為文法識別符號,且xVT*。可用L(G)表示該集合。 從定義可以看出兩點: 第一,符號串x可從識別符號推出,也即x是句型。 第二,x僅由終結符號組成,即x是文法G的句子。也就是說,文法描述的語言是該文法一切句子的集合。 例: 例3.1 G: S0S1, S01 L(G)=0n1n|n1 例3.3,28,例3.3,設G=(VN,VT,P,S), VN=S,B,E,VT=a,b,e,P由下列產生式組成: (1) SaSBE (2) SaBE (3) EBBE (4) aBab (5) bBbb (6) bEbe (7) eEee 則L(G)= anbnen | n1 ,29,文法的等價,若L(G1)=L(G2),則稱文法G1和G2是等價的。 示例:文法G1A:A0R A01 RA1與G2S:S0S1 S01等價。,30,文法的類型,喬姆斯基分類 示例: 例3.4 例3.5 喬姆斯基分類文法之間關系 對應于喬姆斯基分類文法的語言 文法和語言之間的關系,31,喬姆斯基對文法的分類,通過對產生式施加不同的限制,Chomsky(喬姆斯基)將文法分為四種類型: 0型文法:對文法G=(VN,VT,P,S)的任一產生式,都有(VNVT)*且至少含有一個非終結符,(VNVT)*。 1型文法(上下文有關文法) :對文法G=(VN,VT,P,S)的任一產生式,都有|, 僅僅 S除外。 2型文法(上下文無關文法):對文法G=(VN,VT,P,S)的任一產生式,都有VN , (VNVT)* 。 3型文法(正規(guī)文法):設G=(VN,VT,P,S),若P中的每一個產生式的形式都是AaB或Aa,其中A和B都是非終結符,a是終結符。 3型文法G=(VN,VT,P,S)的P中的規(guī)則有兩種形式:一種是前面定義的形式,即:AaB或Aa其中A,BVN ,aVT*,另一種形式是:ABa或Aa,前者稱為右線性文法,后者稱為左線性文法。正規(guī)文法所描述的是VT*上的正規(guī)集。,32,例3.4,G=(S,A,B,a,b,P,S),其中P由下列產生式組成: SaB AbAA SbA Bb Aa BbS AaS BaBB 或將P改寫為: SaB|bA AbA|a Aa|AaS BbS|BaB|b 則G是正規(guī)文法或3型文法。,33,例3.5,文法G=(S,A,B,0,1,P,S),其中P由下列產生式組成: S0A A1B S1B B1B S0 B1 A0A B0 A0S 或將P改寫為: S0A|1B|0 A0S|1B|0A B1B|1|0 則G是正規(guī)文法或3型文法。,34,喬姆斯基分類文法之間關系,2型文法,1型文法,0型文法,四種文法之間的逐級“包含”關系,3型文法,35,對應喬姆斯基分類文法的語言,0型文法產生的語言稱為0型語言。 1型文法或上下文有關文法( CSG )產生的語言稱為1型語言或上下文有關語言(CSL)。 2型文法或上下文無關文法( CFG )產生的語言稱為2型語言或上下文無關語言( CF L )。 3型文法或正則(正規(guī))文法( RG )產生的語言稱為3型語言正則(正規(guī))語言( RL )。,36,文法和語言之間的關系,四種文法之間的關系是將產生式做進一步限制而定義的。 語言之間的關系依次:有不是上下文有關語言的0型語言,有不是上下文無關語言的1型語言,有不是正則語言的上下文無關語言。,37,上下文無關文法及其語法樹,語法樹 句型能夠構造關聯(lián)語法樹的條件 示例:例3.7 最左(右)推導 二義性文法 判斷依據(jù) 示例:例3.8 二義性文法與二義性語言的區(qū)別,38,句型能夠構造關聯(lián)語法樹的條件,給定文法G=(VN,VT,P,S),對于G的任何句型都能構造與之關聯(lián)的語法樹(推導樹)。這棵樹滿足下列4個條件: 每個結點都有一個標記,此標記是V的一個符號。 根的標記是S。 若一結點n至少有一個它自己除外的子孫(子結點),并且有標記A,則A肯定在VN中。 如果結點n的直接子孫,從左到右的次序是結點n1,n2,nk,其標記分別為A1,A2,Ak,那么AA1A2Ak一定是P中的一個產生式。,39,例3.7,G=(S,A,a,b,P,S),其中P為: SaAS ASbA ASS Sa Aba 右圖是G(aabbaa)的一棵推導樹。,40,最左(右)推導,如果在推導的任何一步,其中,是句型,都是對中的最左(最右)非終結符進行替換,則稱這種推導為最左(最右)推導。 在形式語言中,最右推導常被稱為規(guī)范推導。由規(guī)范推導所得的句型稱為規(guī)范句型。 最左推導示例 SaASaSbASaabASaabbaSaabbaa 最右推導示例 SaASaAaaSbAaaSbbaaaabbaa,41,二義文法的判斷依據(jù),若一個文法存在某個句子對應兩棵不同的語法樹,則稱這個文法是二義的。 或者,若一個文法存在某個句子有兩個不同的最左(右)推導,則稱這個文法是二義的。 如果產生上下文無關語言的每一個文法都是二義的,則說此語言是先天二義的。 判定任給的一個上下文無關文法是否二義,或它是否產生一個先天二義的上下文無關語言,這兩個問題是遞歸不可解的,即,不存在一個算法,它能在有限步驟內,確切判定任給的一個文法是否為二義的。我們所能做的事是為無二義性尋找一組充分條件(當然它們未必都是必要的)。,42,例3.8,文法G=(E,+,*,i,(,),P,E)其中P= Ei EE+E EE*E E(E) 是二義性的,假若規(guī)定了運算符“+”與“*”的優(yōu)先順序和結合規(guī)則,即按慣例,讓“*”的優(yōu)先性高于“+”,且它們都服從左結合,那么就可以構造出一個無二義文法。 定義表達式的無二義文法GE: ET|E+T TF|T*F F(E)|i 它和上述文法產生的語言是相同的。即它們是等價的。,43,二義性文法與二義性語言的區(qū)別,文法的二義性和語言的二義性是兩個不同的概念。因為可能有兩個不同的文法G和G,其中G是二義的,但是卻有L(G)=L(G),也就是說,這兩個文法所產生的語言是相同的。,44,句型的分析,句型分析是識別一個輸入符號串是否為語法上正確的程序的過程。在語言的編譯實現(xiàn)中,把完成句型分析的程序稱為分析程序或識別程序,分析算法又稱識別算法。 從左到右的分析算法,即總是從左到右地識別輸入符號串,首先識別符號串中的最左符號,進而依次識別右邊的一個符號,直到分析結束。 句型的分析算法分類 句型的分析算法反映語法樹的構造過程 句型分析的有關定義 句型分析的有關問題,45,句型的分析算法分類,自上而下分析法: 是從文法的開始符號出發(fā),反復使用各種產生式,尋找“匹配”于輸入符號串的推導。 示例:例3.9 自下而上分析法: 從輸入符號串開始,逐步進行“歸約”,直至歸約到文法的開始符號。 示例,46,兩種方法反映語法樹的構造過程,自上而下方法: 自上而下方法是從文法符號開始,將它做為語法樹的根,向下逐步建立語法樹,使語法樹的末端結點符號串正好是輸入符號串。 自下而上方法: 自下而上方法是從輸入符號串開始,以它做為語法樹的末端結點符號串,自底向上地構造語法樹。,47,例3.9:自上而下分析,例:考慮文法GS; ScAd Aab Aa 識別輸入串w=cabd是否該文法的句子。,推導過程:ScAd cabd,48,示例:自下而上分析,例:考慮文法GS; ScAd Aab Aa 識別輸入串w=cabd是否該文法的句子。,S A A c a b d c a b d c a b d 規(guī)約過程構造的推導: cAd cabd S cAd,49,句型分析的有關定義,令G是一文法,S是文法的開始符號,是文法G的一個句型。如果有: S A且A 則稱是句型相對于非終結符A的短語。特別,如有A 則稱是句型相對于規(guī)則A的直接短語(也稱簡單短語)。一個句型的最左直接短語稱為該句型的句柄。 示例 從句型的推導樹中查找方法,50,示例,文法GE的一個句型i*i+i。為了敘述方便,將句型改寫為i1*i2+i3。因為有: E F* i2+i3 且Fi1則稱i1是句型i1*i2+i3的相對于非終結符F的短語,也是相對于規(guī)則Fi的直接短語。又有: E i1*F+i3 且Fi2則i2是句型i1*i2+i3的相對于F的短語,也是相對于規(guī)則Fi的直接短語,還有: E i1*i2+F 且Fi3則i3也是句型i1*i2+i3的相對于F的短語,也是相對于規(guī)則Fi的直接短語。 E T*i2+i3,且T i1則i1是句型i*i2+i3的相對于T的短語。 E i1*i2+T 且T i3則i3是句型i1*i2+i3的相對于T的短語。 E E+i3 且E i1*i2則i1*i2是句型i1*i2+i3的相對于E的短語。 E E 且E i1*i2+i3則i1*i2+i3是句型i1*i2+i3相對于E的短語。 即i1,i2,i3,i1*i2和i1*i2+i3都是句型i1*i2+i3的短語,而且i1,i2,i3均為直接短語,其中i1是最左直接短語,即句柄。 雖然i2+i3是句型i1*i2+i3的一部分,并不是它的短語,因為盡管有E i2+i3,但不存在從文法開始符號E到i1*E的推導。,51,從句型的推導樹中查找方法,從句型的推導樹上很容易找出句型的短語和直接短語。 設A是句型的某一子樹的根,其中是形成此子樹的末端結點的符號串,則其中是句型的相對于A的短語。若這個子樹只有一層分支,則是句型的直接短語。 示例,52,示例:推導樹中找短語,53,句型分析的有關問題,在自上而下的分析方法中如何選擇使用哪個產生式進行推導? 假定要被代換的最左非終結符號是B,且有n條規(guī)則:BA1|A2|An,那么如何確定用哪個右部去替代B? 在自下而上的分析方法中如何識別可歸約的串? 在分析程序工作的每一步,都是從當前串中選擇一個子串,將它歸約到某個非終結符號,該子串稱為“可歸約串”。 存在確定和不確定分析。,54,實用說明,有關文法的實用限制 上下文無關文法中的規(guī)則 無用符號和無用產生式的消除 -產生式的消除 單產生式的消除,55,有關文法的實用限制,在實用中,我們將限制文法中不得含有有害規(guī)則和多余規(guī)則: 有害規(guī)則,是指形為UU的產生式。它對描述語言顯然是沒有必要的。說它有害,是說它只會引起文法的二義性。 多余規(guī)則,是指文法中那些連一個句子的推導都用不到的規(guī)則,這類規(guī)則在文法中以兩種形式出現(xiàn)。一種是文法中某些非終結符不在任何規(guī)則的右部出現(xiàn),所以任何句子的推導中不可能用到它。 對文法G=(VN,VT,P,S)來說,為了保證其任一非終結符A在句子推導中出現(xiàn),必須滿足如下兩個條件: A必須在某句型中出現(xiàn)。即有S A,其中,屬于(VTVN)* 。 必須能夠從A推出終結符號串t來。即A t,其中tVT 。 若程序設計語言的文法包含有多余規(guī)則時,其中必定有錯誤存在,因此檢查文法是否包含多余規(guī)則是很有必要的。,56,上下文無關文法中的規(guī)則,上下文無關文法中某些規(guī)則可具有形式A,稱這種規(guī)則為規(guī)則。 規(guī)則會使得有關文法的一些討論和證明變得復雜,有時會限制這種規(guī)則的出現(xiàn)。 上下文無關文法的相關定理 定理3.1 定理3.2,57,定理3.1,若L是由文法G=(VN,VT,P,S)產生的語言,P中的每一個產生式的形式均為A,其中AVN,(VN VT)*(即可能為),則L能由這樣一種文法產生:每一個產生式或者為A形式,其中AVN, (VN VT)+(即),或者 S且 S不出現(xiàn)在任何產生式右邊。,58,定理3.2,如果G=(VN,VT,P,S)是一個上下文有關文法,則存在另一個上下文有關文法G1,它所產生的語言與G產生的相同,即L(G)=L(G1),其中G1的開始符號不出現(xiàn)在G1的任何產生式的右邊。 若G為上下文無關文法或正規(guī)文法,類似結論成立。,59,無用符號和無用產生式的消除,定義:設G=(VN,VT,P,S)是一文法,我們說G中的一個符號x(VNVT)是有用的指x至少出現(xiàn)在一個句子的推導過程中。即x必須同時滿足以下兩個條件: 存在、V*,有S*x 存在wVT*,x*w 否則就說x是無用的。如果一個產生式的左部或右部含有無用符號,則此產生式稱之為無用產生式。 消除算法 算法1 算法2 示例,60,算法1,1、分別置VN(1)和P(1) 為; 2、對于P中的每一產生式A ,若 VT* ,則將A置于VN(1) 中; 3、對于P中的每一產生式A x1x2xm若每個xi都屬于VN(1) 或VT ,則將A置于VN(1) ; 4、重復步驟3,直到VN(1)不再增大為止; 5、對于P中的每一產生式B y1y2yn ,若B及每一個yi都屬于VN(1) VT ,則將此產生 式B y1y2yn置于P (1)。,61,算法2,1、分別置VN 、VT和P 為; 2、將文法的開始符號S置入VN中; 3、對于G (1)中任何形如A x1|x2 | | xm的產生式,若A VN ,則將符號串x1,x2 , , xm中的全部非終結符號置于VN中,而將其中的全部終結符號置于VT中; 4、重復步驟3,直到VN和VT都不再增大為止; 5、將P中左右部僅含VN VT中符號的所有產生式置P 。,62,示例,文法的定義 已知文法G=(S,U,V,W,a,b,c,P,S),產生式P的組成如下: SaS SW SU Ua VbV Vac WaW 執(zhí)行算法1 執(zhí)行算法2,63,執(zhí)行算法1,第一步,由于產生式Ua、 Vac的右部均為終結符號串,故置VN(1) =U,V; 第二步,對于產生式SU ,由于U VN(1) ,故將S置于中,所以VN(1) =S,U,V; 于是得到以下文法G1: G1=(S,U,V,a,b,c,P (1),S),其中P (1)由如下產生式組成: SaS SU Ua VbV Vac,64,執(zhí)行算法2,第一步,置VN =S; 第二步,因為G1中含有產生式SU、Ua ,故應將U、a分別置于,即VN =S,U VT =a; 因此得到等價的且不含無用符號和無用產生式的文法為G2=(S,U,a,P,S),其中,P由如下產生式組成: SaS SU Ua,65,-產生式的消除,算法3 算法4( 不屬于文法所產生的語言) 算法5 (屬于文法所產生的語言) 示例: 不屬于文法所產生的語言 屬于文法所產生的語言,66,算法3,1、作集合 W1=A|產生式A P; 2、作集合序列 W

溫馨提示

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

評論

0/150

提交評論