最新【考研计算机专业课】天津大学 编译原理讲义 第三章文法和语言(共50张PPT课件).pptx
《最新【考研计算机专业课】天津大学 编译原理讲义 第三章文法和语言(共50张PPT课件).pptx》由会员分享,可在线阅读,更多相关《最新【考研计算机专业课】天津大学 编译原理讲义 第三章文法和语言(共50张PPT课件).pptx(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 文法文法(wnf)和语言和语言3.1 文法和语言文法和语言3.2 文法的等价文法的等价(dngji)变换变换第一页,共五十页。3.1 文法文法(wnf)和语言和语言文法文法(wnf): 定义的一些形式规则。定义的一些形式规则。语言语言: 由定义由定义(dngy)的规则所能识别的全部句子的集的规则所能识别的全部句子的集合。合。1)1) 文法和语言的定义文法和语言的定义2) 2) 文法的文法的Chomsky分类分类 3) 3) 文法产生式的其它表示法文法产生式的其它表示法 字母字母| |字母字母| |数字数字 第二页,共五十页。3.1.1 文法文法(wnf)和语言的定义和语言的定义1
2、. 文法文法是描述语言的语法结构的形式是描述语言的语法结构的形式(xngsh)规则规则(即即语法规则语法规则)。文法文法(wnf)(wnf)是一个四元组是一个四元组: : GS=(VN,VT,P,S) VN为为非终极符集合非终极符集合; VT为为终极符集合终极符集合; VNVT =;一般令一般令V= VNVT ,V中的符号称为文法符号;中的符号称为文法符号; P为为产生式集合产生式集合; P中的每个产生式写为中的每个产生式写为: : ;VV* *V VN NV V* *,VV* * S为为开始符号开始符号。第三页,共五十页。例例,G =(N,0,1,N0N,N1N,N0,N1,N) VN =N
3、 VT =0,1 V=N,0,1 S=NP =N1N0N1NN0N第四页,共五十页。2. 2. 符号串的推导符号串的推导(tudo)(tudo)与归约与归约 已给文法已给文法G=(VN,VT,P,S),V=VV=VN NV VT T,令,令x x、y y、 VV* *,且,且PP,此时,我们,此时,我们(w men)(w men)称符号串称符号串x xy y能够能够直接直接推导推导出符号串出符号串xxy y,记作,记作x xy y xxy y。 例例,文法,文法G存在存在(cnzi)(cnzi)如下推导如下推导: : N 1N 11。 若符号串若符号串1 1,2 2,n nV* 且且1 12
4、2 n n,则称,则称1 1可可推导推导出出n n来,记作来,记作1 1n n。 +若允许若允许1 1=n n,则,则1 1和和n n的推导关系记作的推导关系记作1 1n n。 *第五页,共五十页。若符号串若符号串xy是符号串是符号串xy的的直接直接(zhji)推导推导;则符号串则符号串xy是符号串是符号串xy的的直接直接(zhji)归约归约。归约归约是推导是推导(tudo)(tudo)逆过程逆过程 若存在若存在1 1n n,则认为,则认为n n能够归约成能够归约成1 1。*设存在产生式设存在产生式,即,即x xy yxxy y例例,文法,文法G存在如下推导存在如下推导: : N 1N 11。
5、 11为为1N的直接推导的直接推导1N为为11的直接规约的直接规约第六页,共五十页。3. 3. 文法的句型文法的句型(j xn)(j xn)、句子和语言的定义、句子和语言的定义 设设G=(VN,VT,P,S)是一文法是一文法(wnf)(wnf) 若若S ,其中,其中(qzhng)(qzhng)S是开始符号,是开始符号,V*,则,则称称为为文法文法G的句型的句型。 *若若S ,且,且VT*,则称,则称为为G的句子的句子。 *文法文法G所产生所产生的语言的语言,记作,记作L(G)=|VT*,且,且S *第七页,共五十页。例例,令,令G2.3= VN,VT,P,数,数 其中,其中,VT =0,1,2
6、,3,4,5,6,7,8,9 VN =数,数字数,数字 P: : | 0| |1| |2| |3| |4| |5| |6| |7| |8| |9 文法文法G产生的产生的语言语言L(G)为十进制正整数。为十进制正整数。 例例,G =(N,0,1,N0N,N1N,N0,N1,N) 存在如下推导存在如下推导: : N 1N 111N为文法为文法G的的句型句型;11为文法为文法G的的句子句子。文法文法G表示的表示的语言语言是是二进制数二进制数第八页,共五十页。4. 4. 产生产生(chnshng)(chnshng)式和文法的递归性式和文法的递归性设给定设给定(i dn)(i dn)文法文法G=(VN,
7、VT,P,S), 若若=且且,则称产生则称产生(chnshng)(chnshng)式式A是是左递归左递归产产生式;生式; 若若且且=,则称产生式则称产生式A是是右递归右递归产生式。产生式。 P中至少有一个产生式是递归产生式,则称此文法中至少有一个产生式是递归产生式,则称此文法G是是递归文递归文法法。 若存在产生式若存在产生式A且且A A成立,则称产生式成立,则称产生式A是是递归递归的;的; *一般的文法都是递归的,文法一般的文法都是递归的,文法G只有递归定义,只有递归定义,L(G)中句子才是无穷的。中句子才是无穷的。 第九页,共五十页。5. 句型的规范句型的规范(gufn)推导和规范推导和规范
8、(gufn)规约规约句型的句型的最右最右推导称为推导称为规范推导规范推导,逆过程,逆过程(guchng)(guchng)称为称为规范规范归约归约,即,即最左最左规约。规约。 若在推导若在推导(tudo)关系关系1 1n n中,每次最先替换最右中,每次最先替换最右(左左)的非终结符,则称为的非终结符,则称为最右最右(左左)推导推导。若在规约过程中,每次最先规约最左若在规约过程中,每次最先规约最左(右右)的非终结符,的非终结符,则称为则称为最左最左(右右)规约规约。例例,文法,文法G的产生式的产生式为为: : SaAcBe,AAb| |b,S aAcBe aAcde aAbcde abbcde最右
9、推导最右推导: :称为规范推导,逆过程称为规范归约。称为规范推导,逆过程称为规范归约。Bd第十页,共五十页。6. 文法句型文法句型(j xn)的短的短语语设文法设文法(wnf)(wnf)G=(VN,VT,P,S) 若有若有SxAyxy,则,则称为句型称为句型xy的相对于的相对于A的的短语短语。 *+若有若有SxAyxy,则,则称为句型称为句型xy的相对于的相对于A的的直接短语直接短语。 *句型的最左直接短语句型的最左直接短语(duny)(duny)称为此句型的称为此句型的句柄句柄。 短语定义分两部分短语定义分两部分: : 一是一是SxAy成立,二是成立,二是A成立。成立。 *+第十一页,共五十
10、页。i1 ,i2,i3 ,i1*i2 ,i1*i2+ i3都是句型都是句型(j xn)i1*i2+i3的短语。的短语。i1 ,i2,i3 均为直接均为直接(zhji)短语。短语。例例,文法,文法G的产生式的产生式为为: : ET| |E+TTF| |T*FF(E)| |iE E+T E+F E+i3 T+i3 T*F+i3T*i2+i3 F*i2+i3 i1*i2+i3 i1是句柄。是句柄。i2+i3是否句型是否句型i1*i2+i3的短语?的短语?不是,尽管有不是,尽管有E i2+i3,但不存在从,但不存在从E到到i1*E的推导。的推导。+第十二页,共五十页。3.1.2 文法文法(wnf)(w
11、nf)的的Chomsky分类分类 设文法设文法(wnf)(wnf)G=(VN,VT,P,S) ,其产生式形式为,其产生式形式为: : 0型文法型文法(短语(短语(duny)(duny)结构文法)结构文法): : V*VNV* ,V* 如果对如果对 0 型文法分别加上以下的第型文法分别加上以下的第 i 条限制,则我们就得到条限制,则我们就得到 i 型文法型文法。1.G的任何产生式的任何产生式均满足均满足|,SS除外;除外;2.G的任何产生式的任何产生式 AA,AAVN ,V* ;3.G的任何产生式的任何产生式 AB AB 或或 A A,其中,其中 B BVN VT* ;第十三页,共五十页。例例,
12、文法,文法(wnf)(wnf)G=(=(VN,VT,P,S) ), P定义为定义为: : L(G)=anbncn|n1SA| | AabD| |aABDDcDBCB CBCDCDBD bBbb1 1型文法型文法也称也称上下文有关文法上下文有关文法,产生式形式为,产生式形式为 x xAyxyxy y ,A A必须在上下文必须在上下文x yx y中才可以替换中才可以替换为为。第十四页,共五十页。2 2型文法型文法也称也称上下文无关文法上下文无关文法,用于描述,用于描述(mio sh)(mio sh)多多数现今数现今程序设计语言的语法结构程序设计语言的语法结构。例例,文法,文法(wnf)(wnf)G
13、 =(S,a,b,P,S) L(G)=anbn|n1SaSb| |abP定义定义(dngy)(dngy)为为: :第十五页,共五十页。3 3型文法型文法也称也称正则文法正则文法,由其产生,由其产生(chnshng)(chnshng)的语言的语言叫做正规语言,即正规集。叫做正规语言,即正规集。例例,文法,文法(wnf)(wnf)G =(S,0,1,P,S) L(G)=(0| |1)* S0S| |1S| |0| |1P定义定义(dngy)(dngy)为为: :第十六页,共五十页。每一种类型的文法每一种类型的文法G G都定义都定义(dngy)(dngy)了一类语言了一类语言L(G)L(G),每种类
14、型的语言都存在一种识别器。每种类型的语言都存在一种识别器。0 0型型 图灵机图灵机1 1型型 线性界限线性界限(jixin)(jixin)自动机自动机2 2型型 下推自动机下推自动机3 3型型 有限有限(yuxin)(yuxin)自动机自动机第十七页,共五十页。3.1.3 文法产生文法产生(chnshng)(chnshng)式的其他表示式的其他表示法法规则规则2.1 产生产生(chnshng)(chnshng)式的花括号表示法。式的花括号表示法。 用用表示字符串表示字符串的的0次出现或多次重复出现,次出现或多次重复出现,即即表示表示或或,或,或 。 例例,有产生式,有产生式 SS| |,其中,
15、其中(qzhng)(qzhng): : SVN,VT ,则可用花括号表示为则可用花括号表示为: : S 若花括号有上、下角标,即若花括号有上、下角标,即0n ,表示,表示或或0次出现,次出现,或或n次出现。次出现。 第十八页,共五十页。规则规则(guz)(guz)2.2 产生式的方括号表示法。产生式的方括号表示法。 若字符串若字符串可可0次出现次出现(chxin)(chxin)或或1次出现,则可用方括号次出现,则可用方括号表示,即表示,即= 01 。 例例,有两个产生式,有两个产生式TT*FF,可用方括号表示式,可用方括号表示式 T T*F。 例例,两种条件语句可写成,两种条件语句可写成: :
16、 if B then S else S 第十九页,共五十页。规则规则(guz)(guz)2.3 提取候选式左、右部的公用因子。提取候选式左、右部的公用因子。 若有产生若有产生(chnshng)(chnshng)式式: AxW1yxW2yxWny 则可表示则可表示(biosh)成成: Ax(W1W2 Wn )y 例例,条件语句的产生式,条件语句的产生式:Sif B then sif B then S else S提取左公因子,可写成提取左公因子,可写成: Sif B then S (| |else S) 第二十页,共五十页。3.1.4 正则正则(zhn z)文法文法 1. 正则正则(zhn z)
17、文法与状态转换图文法与状态转换图右线性文法右线性文法(wnf)GS (UxV|yxV|y) V VVN,x,yx,yVT* 左线性文法左线性文法GS (UVx|yVx|y) V VVN,x,yx,yVT* 许多程序设计语言的单词可以用正则文法来表示,而对于许多程序设计语言的单词可以用正则文法来表示,而对于正则文法所描述的语言又可以用状态转换图来非形式的表正则文法所描述的语言又可以用状态转换图来非形式的表示。示。第二十一页,共五十页。对于对于右线性文法右线性文法GS (UxV|yxV|y),状态转换,状态转换(zhunhun)图的表示方图的表示方法如下:法如下: (1) GS中的非终结符表示中的
18、非终结符表示(biosh)状态,状态,GS的开始符号的开始符号S对应对应状态转换图的开始状态状态转换图的开始状态S; (2) 增加一个新状态增加一个新状态Z,作为状态转换,作为状态转换(zhunhun)图的终止状态;图的终止状态; (3) 对于对于GS中形如中形如UxVxV的每条产生式,画一条从状态的每条产生式,画一条从状态U到到状态状态V的方向弧,弧上的标记为的方向弧,弧上的标记为x; (4) 对于对于GS中形如中形如Uy的每条产生式,画一条从状态的每条产生式,画一条从状态U到终态到终态Z的方向弧,弧上的标记为的方向弧,弧上的标记为y 第二十二页,共五十页。例例,给出与正则文法给出与正则文法
19、G(S)等价等价(dngji)的状态转换图。的状态转换图。GS: SaA SbBS a AaB AbA BaS BbA B ASBZababab正则文法与状态转换图等价,是指正则文法所确定正则文法与状态转换图等价,是指正则文法所确定(qudng)的语言的语言L(G),与状态转换图所接受的语言,与状态转换图所接受的语言L(TG)相同:相同: L(G)=L(TG)a第二十三页,共五十页。左线性文法左线性文法GZ (UVx|y)Vx|y),状态转换图的表示方法,状态转换图的表示方法(fngf)如下如下: (1) 用状态表示用状态表示(biosh)GZ中的非终结符,中的非终结符,GZ的开始符号的开始符
20、号Z对应状态转换图的终止状态对应状态转换图的终止状态Z (2) 增加一个增加一个(y )新状态新状态S,作为状态转换图的初始状态;,作为状态转换图的初始状态; (3) 对于对于GZ中形如中形如UVxVx的每条产生式,画一条从状态的每条产生式,画一条从状态V到状到状态态U的方向弧,弧上的标记为的方向弧,弧上的标记为x; (4) 对于对于GZ中形如中形如Uy的每条产生式,画一条从初态的每条产生式,画一条从初态S到状态到状态U的方向弧,弧上的标记为的方向弧,弧上的标记为y。 第二十四页,共五十页。例例,给出与正则文法给出与正则文法GZ等价等价(dngji)的状态转换图的状态转换图 GZ: ZU0 Z
21、V1 UZ1 U1 VZ0 V0UVZS100011第二十五页,共五十页。2. 正则文法正则文法(wnf)与正规式与正规式一个一个(y )(y )正则语言可以由正则文法定义,也可以由正规式定义。正则语言可以由正则文法定义,也可以由正规式定义。 对任意一个正规文法,存在对任意一个正规文法,存在(cnzi)(cnzi)一个定义同一语言的正规一个定义同一语言的正规式;反之,对每个正规式,存在式;反之,对每个正规式,存在(cnzi)(cnzi)一个生成同一语言的一个生成同一语言的正规文法正规文法。正规文法和正规式之间是可以相互转换的。正规文法和正规式之间是可以相互转换的。 第二十六页,共五十页。A.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研计算机专业课 最新【考研计算机专业课】天津大学 编译原理讲义 第三章文法和语言共50张PPT课件 最新 考研 计算机 专业课 天津大学 编译 原理 讲义 第三 文法 语言 50 PPT 课件
限制150内