编译原理第三章_第1页
编译原理第三章_第2页
编译原理第三章_第3页
编译原理第三章_第4页
编译原理第三章_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第三章第三章 文法和语言文法和语言本章目的为语言的语法描述寻求工具,本章目的为语言的语法描述寻求工具,通过该工具,可以:通过该工具,可以:n对源程序给出精确无二义的语法描述。对源程序给出精确无二义的语法描述。(严谨、简洁、易读)(严谨、简洁、易读)n根据语言文法的特点来指导语法分析的过根据语言文法的特点来指导语法分析的过程。程。n从描述语言的文法可以自动构造出可用的从描述语言的文法可以自动构造出可用的分析程序。分析程序。n制导语义翻译。制导语义翻译。2本章主要内容本章主要内容n预备知识预备知识n文法和语言的形式定义文法和语言的形式定义n文法的类型文法的类型n上下文无关文法及其语法树上下文无关

2、文法及其语法树n上下文无关文法的句型分析上下文无关文法的句型分析n有关文法实用中的一些说明有关文法实用中的一些说明n有关文法的一些关系3预备知识预备知识 -语言概述语言概述n语言是由句子组成的集合,是由一组记号语言是由句子组成的集合,是由一组记号所构成的集合。所构成的集合。n汉语汉语-所有符合汉语语法的句子的全体所有符合汉语语法的句子的全体n英语英语-所有符合英语语法的句子的全体所有符合英语语法的句子的全体n程序设计语言程序设计语言-所有该语言的程序的全体所有该语言的程序的全体n 每个句子构成的规律每个句子构成的规律n研究语言研究语言 每个句子的含义每个句子的含义n 每个句子和使用者的关系每个

3、句子和使用者的关系4预备知识预备知识 -语言概述语言概述n每种语言具有两个可识别的特性,即语每种语言具有两个可识别的特性,即语言的形式和该形式相关联的意义。言的形式和该形式相关联的意义。n语言的实例若在语法上是正确的,其相语言的实例若在语法上是正确的,其相关联的意义可以从两个观点来看。关联的意义可以从两个观点来看。n其一是该句子的创立者所想要表示的意义。其一是该句子的创立者所想要表示的意义。n其二是接收者所检验到的意义。其二是接收者所检验到的意义。n这两个意义并非总是一样的,前者称为语言这两个意义并非总是一样的,前者称为语言的语义,后者是其语用意义。幽默、双关语的语义,后者是其语用意义。幽默、

4、双关语和谜语就是利用这两方面意义间的差异。和谜语就是利用这两方面意义间的差异。5预备知识预备知识 -文法的直观概念文法的直观概念:=:=|:=我我|你你|他他:=王明王明|大学生大学生|工人工人|英语英语:=:=是是|学习学习:=|6预备知识预备知识 -我是大学生我是大学生 我我 我我 我是我是 我是大学生我是大学生王明是大学王明是大学生生王明学习英王明学习英语语他学习英语他学习英语英语学习王英语学习王明明7预备知识预备知识 -形式形式语言语言n如果不考虑语义和语用,即只从语法这一如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的语言称作形侧面来看语言,这种意义下的语言称作形式语言

5、。形式语言抽象地定义为一个数学式语言。形式语言抽象地定义为一个数学系统。系统。n“形式形式”是指这样的事实:语言的所有规是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述。则只以什麽符号串能出现的方式来陈述。n形式语言理论是对符号串集合的表示法、形式语言理论是对符号串集合的表示法、结构及其特性的研究。是程序设计语言语结构及其特性的研究。是程序设计语言语法分析研究的基础。法分析研究的基础。8符号和符号串符号和符号串1n符号:可以相互区别的记号(元素)。符号:可以相互区别的记号(元素)。n字母表字母表( ):符号(元素)的非空有穷集合。:符号(元素)的非空有穷集合。n符号串:由字母表符

6、号串:由字母表 中的符号组成的任何有穷序列称中的符号组成的任何有穷序列称为该字母表上的符号串。为该字母表上的符号串。n1.空符号串空符号串(没有没有符号的符号串符号的符号串)是是 上的符号串上的符号串n2.若若x是是 上的符号串上的符号串,a是是 的元素的元素,则则xa是是 上的符号串上的符号串n3. y是是 上的符号串上的符号串,当且仅当它可以由当且仅当它可以由1和和2导出。导出。例如:例如: =a,b=a,b 则:则:,a,b,aa,ab,aabba,a,b,aa,ab,aabba都都是是 上的符号串上的符号串9符号和符号串符号和符号串2n符号串符号串s的的头(前缀)头(前缀):移走符号串

7、:移走符号串s尾部的尾部的零个或多于零个符号得到的符号串零个或多于零个符号得到的符号串. 例如:例如:b是符号串是符号串banana的一个前缀的一个前缀. n符号串符号串s的的尾(后缀)尾(后缀):删去符号串:删去符号串s头部的头部的零个或多于零个符号得到的符号串零个或多于零个符号得到的符号串. 例如:例如:nana是符号串是符号串banana的一个后缀的一个后缀.n符号串符号串s的的子串子串:从:从s中删去一个头和一个尾中删去一个头和一个尾得到的符号串得到的符号串. 例如:例如:ana是符号串是符号串banana的一个子串的一个子串.10符号和符号串符号和符号串3n对于每个符号串s, s和两

8、者都是符号串s的前缀,后缀和子串。 n符号串的固有头(真前缀),固有尾(真后缀)固有头(真前缀),固有尾(真后缀):设s=xy是一个符号串,那么x是s的头,y是s的尾。如果y非空,则x是s的固有头,同样如果x非空,则y是s的固有尾。例如:例如:s=abcs=abc头:头:,a,ab,abc, ,a,ab,abc, 尾尾:,c,bc,abc:,c,bc,abc固有头固有头: ,a,ab, : ,a,ab, 固有尾固有尾:,c,bc:,c,bc 11符号串的运算1n符号串的长度:符号串中符号的个数.符号串s的长度记为|s|。 的长度为0n连接:符号串x、y的连接,是把y的符号写在x的符号之后得到的

9、符号串xy 例如:x=ab,y=cd 则 xy=abcd 有a=a= an方幂:符号串自身连接n次得到的符号串。例如: (ab)n 定义为 abababab,有n个ab。 a1=a,a2=aa,a0=12符号串的运算2n符号串集合:若集合符号串集合:若集合A中所有元素都是某字中所有元素都是某字母表母表 上的符号串,则称上的符号串,则称A为字母表为字母表 上的符上的符号串集合。号串集合。n两个符号串集合两个符号串集合A和和B的乘积定义为的乘积定义为 AB = xy|xxy|x A A且且y y B B 例如:例如:集合集合A= ab,cdeab,cde B = 0,10,1 则则 AB = ab

10、1,ab0,cde0,cde1ab1,ab0,cde0,cde1 13符号串的运算3n使用 *表示上的一切符号串(包括)组成的集合。*称为的闭包。n 上的除外的所有符号串组成的集合记为+ 。 +称为的正闭包。.2*.32*例如:=a,b*=,a,b,aa,ab,ba,bb,aaa,aab,+ =a,b,aa,ab,ba,bb,aaa,aab,14语言n语言:字母表上的一个语言是上的一些符号串的集合 (上的每个语言是*的一个子集)。例如: =a,b *=,a,b,aa,ab,ba,bb,aaa,aab,语言1:集合ab,aabb,aaabbb,anbn,或w|w*且w=anbn,n1为字母表上的

11、一个语言。语言2:集合a,aa,aaa,或w|w*且w=an,n1 为字母表上的一个语言。语言3:是一个语言。语言4:即 是一个语言。15语言上的运算1n设L是(上的)一个语言,M是(上的)一个语言, 语言L和M的并,交,差,补是一个语言。例如:L1 =a,b,y,z M1 =1,28,9 L1M1=a,b, y,z,1,28,9 n语言L和M的连接是一个语言,记为 LM。 LM=st |sL且 tM例如:L1M1=a1,b1,y1,z1,a2,b2a9z9 n有L = L=L。 L的n次连接Ln= LL.L 16语言上的运算2n语言L的闭包记为 L*, L*= L0 L1 L2 . L0=

12、, Ln= L Ln-1= Ln-1 L,n1n语言L的正闭包记为 L+, L+= L1 L2 L3 . L+= LL*= L*L , L*= L+ 例如: L=a,b,y,z, M=1,28,9 (LM)=a,b, y,z,1,28,9 (L1M1)*=a,b, y,z,1,28,9 ,aa,1a,xyz,6789st.n L(LM)*=所有字母打头的字母和数字符号串17语言的描述n如何来描述一种语言?n如果语言是有穷的(只含有有穷多个句子),可以将句子逐一列出来表示n如果语言是无穷的,找出语言的有穷表示。两个途经:生成方式 (文法):语言中的每个句子可以用严格定义的规则来构造。识别方式(自

13、动机):用一个过程,当输入的一任意串属于语言时,该过程经有限次计算后就会停止并回答“是”,若不属于,要麽能停止并回答“不是”,(要麽永远继续下去。) 18文法文法 数学系统数学系统n一个形式数学系统一个形式数学系统可由下列基本成分来刻可由下列基本成分来刻画:一组基本符号,一组形成规则,一组画:一组基本符号,一组形成规则,一组公理,一组推理规则。公理,一组推理规则。19文法和语言的形式定义文法和语言的形式定义n文法的定义文法的定义n推导的定义推导的定义n句型、句子、语言的定义句型、句子、语言的定义20规则的定义规则的定义n规则(重写规则、产生式或生成式),是规则(重写规则、产生式或生成式),是形

14、如形如或或=的(的(,)有序对,)有序对,且且VV+ +,VV* *( V V 为某符号表)。为某符号表)。n 称为规则的左部称为规则的左部( (或生成式或生成式的左部的左部) )。n 称为规则的右部称为规则的右部( (或生成式或生成式的右部的右部) )。21文法的定义文法的定义n文法文法G定义为四元组(定义为四元组(VN,VT,P,S)nVN :非终结符集:非终结符集nVT :终结符集:终结符集nP:产生式(规则)集合:产生式(规则)集合nS:开始符号,:开始符号, SSVN,S S必须要在一条规则必须要在一条规则的左部出现。的左部出现。VNVT= 。 V= =VNVT,称为文法,称为文法G

15、 G的文法的文法符号集合符号集合22文法示例文法示例1n例例3.1 文法文法G=(VN,VT,P,S)VN = A , VT = 0, 1 P= A0A1, A01 A为文法为文法G的开始符号的开始符号n习惯上只将产生式写出。并有如下约定:习惯上只将产生式写出。并有如下约定:n第一条产生式的左部是开始符号第一条产生式的左部是开始符号n用尖括号括起的是非终结符,否则为终结符。或用尖括号括起的是非终结符,否则为终结符。或者大写字母表示非终结符,小写字母表示终结符者大写字母表示非终结符,小写字母表示终结符nG可写成可写成GS,S是开始符号是开始符号例:例: G: A0A1 A01 或或 GA: A0

16、A1 A01文法示例文法示例2n例3.2 文法G=(VN,VT,P,S)nVN =标识符,字母,数字nVT =a,b,c,x,y,z,0,1,9nP=n n n a, zn 0, 9 nS=24推导的定义1n直接推导“”n是文法G的产生式,若有v,w满足:nv=,w= , 其中V*,V*n则称v直接推导到w,记作 v wn 或w直接归约到vn例:G: A0A1, A01n A 0A1 00A11 000A111 0000111125推导的定义推导的定义2 推导推导n若存在若存在v w0 w1 . wn=w,(n0)n则称则称v推导出推导出w,或,或w归约到归约到v。记为。记为v w。 推导推导

17、n若有若有v w,或,或v=w,则记为,则记为v w。例如:例如:0A1 00001111 或 0A1 00001111*26文法的句型、句子的定义文法的句型、句子的定义n句型句型n有文法有文法GS,若,若S x,则称,则称x是文法是文法G的句型。的句型。n句子句子n有文法有文法GS ,若,若S x,且,且xVVT T* *,则称,则称x是文法是文法G的句子。的句子。例如:例如:GAGA: A0A1, A010A1、00A11、000111是是GAGA的的句型。句型。000111是是GAGA的的句子。句子。*27文法的示例文法的示例3n例:例:GE E:EE+T|TEE+T|T TT TT*

18、*F|FF|F F(E)|a F(E)|aE EE+T T+T F+T a+T a+T*F a+F*F a+a*F a+a*a表示一切能用符号表示一切能用符号a,+,*,(和和)构成的算术构成的算术表达式。表达式。28文法的语言文法的语言n由文法由文法G生成的语言记为生成的语言记为L(G),它是文法它是文法G的一切句子的集合的一切句子的集合: L(G)=x|S x,其中,其中S为文法的开始为文法的开始符号,且符号,且x VVT T* * 例如:例如:GAGA: A0A1, A01 L(G)=0n1n|n1*文法的示例文法的示例4n例3.3 文法GS:n(1)SaSBEn(2)SaBEn(3)E

19、BBEn(4)aBabn(5)bBbbn(6)bEben(7)eEeeL(G)= anbnen | n1 30文法文法3.3的语言的语言n S a S BE ( SaSBE)n a aBEBE ( SaBE )n aabEBE ( aBab )n aabBEE ( EBBE )n aabbEE ( bBbb )n aabbeE ( bEbe )n aabbee ( eEee )G生成的每个串都在L(G)中L(G)中的每个串确实能被G生成31文法和语言的掌握要求n已知语言描述,写出文法n例:若语言由0、1符号串组成,串中0和1的个数相同,构造其文法。A 0B|1CB 1|1A|0BBC 0|0A

20、|1CCn已知文法,写出语言描述n例:GE:EE+T|T TT*F|F F(E)|a32文法的等价文法的等价n若若L(G1)=L(G2),则称文法),则称文法G1和和G2是是等价的。等价的。例如:例如:文法文法G G1AA:A0R A0R 与与 G G2AA:A0A1 A0A1 等价等价 A01 A01A01 A01 RA1 RA1 33文法的类型n通过对产生式施加不同的限制,Chomsky将文法分为四种类型:n0型文法(短语文法):对任一产生式,都有(VNVT)+, (VNVT)*n1型文法(上下文有关文法) :对任一产生式,都有|, 仅仅 S除外n2型文法(上下文无关文法) :对任一产生式

21、,都有VN , (VNVT)*n3型文法(正规文法):任一产生式的形式都为AaB或Aa,其中AVN ,BVN ,aVT34文法的类型示例文法的类型示例1n例:例:1 1型(上下文有关)文法型(上下文有关)文法 文法文法GS:SaSBESaBEEBBEaBabbBbbbEbeeEee35文法的类型示例文法的类型示例2n例:例:1 1型(上下文有关)文法型(上下文有关)文法 文法文法GSGS:SCDAbbACaCABaaBCbCBBbbBADaDCBDbDDAabDL(G)=ww|wa,b*36文法的类型示例文法的类型示例3n例:例:2 2型(上下文无关)文法型(上下文无关)文法 文法文法GS:S

22、aB|bAAa|aS|bAABb|bS|aBB 文法文法GS:S0A|1B|0A0A|1B|0SB1B|1|037文法的类型示例文法的类型示例4n例:定义标识符的例:定义标识符的3 3型(正规)文法型(正规)文法 文法文法GI:I cTI cT cTT dTT cT d*c:表示字母,:表示字母,d:表示数字:表示数字38文法和语言n0型文法产生的语言称为0型语言n1型文法或上下文有关文法( CSG )产生的语言称为1型语言或上下文有关语言(CSL)n2型文法或上下文无关文法( CFL )产生的语言称为2型语言或上下文无关语言( CF L ) n3型文法或正则(正规)文法( RG )产生的语言

23、称为3型语言正则(正规)语言( RL ) 39文法和识别系统文法和识别系统1n0型文法(短语文法)的能力相当于图灵型文法(短语文法)的能力相当于图灵机,可以表征任何递归可枚举集,而且任机,可以表征任何递归可枚举集,而且任何何0型语言都是递归可枚举的。型语言都是递归可枚举的。n1型文法(上下文有关文法):产生式的型文法(上下文有关文法):产生式的形式为形式为1 1AA2 21 12 2,即只有,即只有A A出现在出现在1 1和和2 2的上下文中时,才允许的上下文中时,才允许取代取代A A。其识别系统是线性界限自动机。其识别系统是线性界限自动机。40文法和识别系统文法和识别系统2n2型文法(上下文

24、无关文法、型文法(上下文无关文法、CFG):产):产生式的形式为生式的形式为AA,取代取代A A时与时与A A的上下的上下文无关。其识别系统是不确定的下推自动文无关。其识别系统是不确定的下推自动机。机。n3型文法(正规文法、右线性文法):产型文法(正规文法、右线性文法):产生的语言是有穷自动机(生的语言是有穷自动机(FA)所接受的集)所接受的集合。合。41上下文无关文法的能力上下文无关文法的能力n上下文无关文法有足够的能力描述现今程上下文无关文法有足够的能力描述现今程序设计语言的语法结构序设计语言的语法结构n算术表达式算术表达式n语句语句 赋值语句赋值语句 条件语句条件语句 读语句读语句 42

25、算术表达式上下文无关文法表示算术表达式上下文无关文法表示n文法文法 G=(E, +,*,i,(,), P, E P:E iE E+EE E*EE (E)43赋值语句的上下文无关文法表示赋值语句的上下文无关文法表示G 赋值语句赋值语句: i=e44条件语句的上下文无关文法表示条件语句的上下文无关文法表示G条件语句条件语句:if () |if () else 45上下文无关文法的语法树上下文无关文法的语法树n语法树是语法树是描述上下文无关文法的描述上下文无关文法的句型推导句型推导的直观方法的直观方法 例例: GS:SaASASbAASSSaAba S a A S S b A a a b a句型句型

26、aabbaa的语法树(推导树)的语法树(推导树)叶子结点:树中没有子孙的结点。叶子结点:树中没有子孙的结点。从左到右读出推导树的叶子标记,所得的句从左到右读出推导树的叶子标记,所得的句型为推导树的结果。也把该推导树称为该句型为推导树的结果。也把该推导树称为该句型的语法树。型的语法树。46上下文无关文法的语法树定义上下文无关文法的语法树定义n给定文法给定文法G,对于,对于G的任何句型都能构造与之关的任何句型都能构造与之关联的语法树(推导树)。联的语法树(推导树)。 这棵树满足下列这棵树满足下列4个条件:个条件:1、每个结点都有一个、每个结点都有一个V中的符号作标记中的符号作标记2、根的标记是开始

27、符号、根的标记是开始符号S3、若一结点、若一结点n至少有一个它自己除外的子孙,并且至少有一个它自己除外的子孙,并且n有有标记标记A,则,则AVVN N4、如果结点、如果结点n的直接子孙,从左到右的次序是结点的直接子孙,从左到右的次序是结点n1,n2,nk,其标记分别为,其标记分别为A1,A2,Ak,那么,那么AA1A2,Ak一定是一定是P中的一个产生式中的一个产生式47上下文无关文法的语法树的定理上下文无关文法的语法树的定理n定理:定理:G为上下文无关文法,为上下文无关文法,对于对于,有,有S ,当且仅当,当且仅当文法文法G有以有以为结果的一棵语法树。为结果的一棵语法树。*48上下文无关文法的

28、语法树示例上下文无关文法的语法树示例n推导过程中施用产生式的推导过程中施用产生式的顺序顺序 例例: GS: SaAS ASbA ASS Sa Aba S a A S S b A a a b aSaASaAaaSbAaaSbbaaaabbaaSaASaSbASaabASaabbaSaabbaaSaASaSbASaSbAaaabAaaabbaa49最左和最右推导最左和最右推导n最左(最右)推导:在最左(最右)推导:在句型的句型的任何一步推任何一步推导中:导中: (其中(其中、是句型),都是是句型),都是对对中的最左(右)非终结符进行替换中的最左(右)非终结符进行替换n最右推导被称为规范推导。最右推

29、导被称为规范推导。n由规范推导所得的句型称为规范句型由规范推导所得的句型称为规范句型n一棵语法树可能对应一个句型的多个推导一棵语法树可能对应一个句型的多个推导过程。过程。50一个句型可能对应多棵语法树一个句型可能对应多棵语法树n例:例:GE:GE:E iE iE E+EE E+EE EE E* *E EE (E)E (E) E E E + E E + E E E * * E i E i i i i i E E E E * * E E i E + E i E + E i i i i句型句型 i*i+i 的两个不同的最左推导:的两个不同的最左推导:推导推导1:E E+E E*E+E i*E+E i

30、*i+E i*i+i推导推导2:E E*E i*E i*E+E i*i+E i*i+i51文法的二义性和语言的二义性文法的二义性和语言的二义性n若一个文法存在某个句子对应两棵不同的若一个文法存在某个句子对应两棵不同的语法树。或者,存在某个句子有两个不同语法树。或者,存在某个句子有两个不同的最左(右)推导,则称这个的最左(右)推导,则称这个文法是文法是二义二义的。的。n如果产生某上下文无关语言的每一个文法如果产生某上下文无关语言的每一个文法都是二义的,则称此都是二义的,则称此语言是语言是先天二义先天二义的。的。n如果一个文法无二义,则其任何句型这有如果一个文法无二义,则其任何句型这有一棵语法树。

31、一棵语法树。52二义文法的判定二义文法的判定n判定任给的一个上下文无关文法是否二义,或它判定任给的一个上下文无关文法是否二义,或它是否产生一个先天二义的上下文无关语言,这两是否产生一个先天二义的上下文无关语言,这两个问题是递归不可解的。但可以为无二义性寻找个问题是递归不可解的。但可以为无二义性寻找一组充分条件。一组充分条件。n二义文法改造为无二义文法二义文法改造为无二义文法GE: E iGE: E i E E+E E E+E E E E E* *E E E (E) E (E)GEGE:E T|E+TE T|E+T T F|T T F|T* *F F F F (E E)|i|i 规定算符的优先顺

32、序和结合律规定算符的优先顺序和结合律53句型的分析句型的分析n句型分析句型分析就是识别一个符号串是否为某文就是识别一个符号串是否为某文法的句型,是某个推导的构造过程。法的句型,是某个推导的构造过程。n在语言的编译实现中,把完成句型分析的在语言的编译实现中,把完成句型分析的程序称为程序称为分析程序分析程序或或识别程序识别程序。分析算法。分析算法又称又称识别算法识别算法。n从左到右的分析算法从左到右的分析算法,即总是从左到右地,即总是从左到右地识别输入符号串,首先识别符号串中的最识别输入符号串,首先识别符号串中的最左符号,进而依次识别右边的一个符号。左符号,进而依次识别右边的一个符号。54句型分析

33、的类型句型分析的类型n自上而下分析法自上而下分析法:从文法的开始符号出发,反复使用各种产从文法的开始符号出发,反复使用各种产生式,寻找与输入符号匹配的推导。生式,寻找与输入符号匹配的推导。n自下而上分析法自下而上分析法:从输入符号串开始,逐步进行归约,直至从输入符号串开始,逐步进行归约,直至归约到文法的开始符号。归约到文法的开始符号。 两种方法反映了两种不同的语法树的构造两种方法反映了两种不同的语法树的构造过程过程55自上而下的语法分析自上而下的语法分析n例:文法例:文法G:S cAd A ab A a识别输入串识别输入串w=cabd是否该文法的句子是否该文法的句子SSScAdcAd a b推

34、导过程:推导过程:S cAd cabd56自下而上的语法分析自下而上的语法分析n例:文法例:文法G:S cAd A ab A a识别输入串识别输入串w=cabd是否该文法的句子是否该文法的句子SAA c a b d c a b d c a b d 规约过程:规约过程:S cAd cabd cabd cAd S57句型分析的有关问题句型分析的有关问题1)如何选择使用哪个产生式进行推导?)如何选择使用哪个产生式进行推导?假定要被代换的最左非终结符号是假定要被代换的最左非终结符号是V,且有,且有n条条规则:规则:VA1|A2|An,那么如何确定用哪个右,那么如何确定用哪个右部去替代部去替代V?2)如

35、何识别可归约的串?)如何识别可归约的串?在自下而上的分析方法中,在分析程序工作的每在自下而上的分析方法中,在分析程序工作的每一步,都是从当前串中选择一个子串,将它归约一步,都是从当前串中选择一个子串,将它归约到某个非终结符号,该子串称为到某个非终结符号,该子串称为“可归约串可归约串”58句型分析句型分析n短语、直接短语、句柄的定义:短语、直接短语、句柄的定义:n文法文法GS,有,有S A且且A b则称则称b是句型是句型b相对于非终结符相对于非终结符A的的短语短语。n若有若有A b则称则称b是句型是句型b相对于该规则相对于该规则A b的的直接短语直接短语。n一个句型的最左直接短语称为该句型的一个

36、句型的最左直接短语称为该句型的句柄句柄。*59句型分析句型分析 E F T T F F F i1 * i2 + i3 短语:短语: 直接短语:直接短语: 句柄:句柄:GEGE:EE+T|TEE+T|T TT TT* *F|FF|F F(E)|i F(E)|i句型:句型:i i* *i+ii+ii1,i2,i3,i1*i2 ,i1*i2+i3i1,i2,i3i160有关文法实用中的一些说明有关文法实用中的一些说明n有关文法的实用限制有关文法的实用限制n上下文无关文法中的上下文无关文法中的规则规则61有关文法的实用限制有关文法的实用限制n文法中不得含有文法中不得含有有害规则有害规则和和多余规则多余规则n有害规则有害规则:形如:形如UU的产生式。会引起文法的产生式。会引起文法的二义性的二义性n多余规则多余规则:指文法中任何句子的推导都不会用:指文法中任何句子的推导都不会用到的规则到的规则 1)文法中某些非终结符不在任何规则的右部出现,)文法中某些非终结符不在任何规则的右部出现,该非

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论