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