(2)用最左推导,每次直接推导都替换最左边的非终结符,推导过程如下: 无正负号整数?数字序列 ?数字序列数字 ?数字序列数字数字 ?数字序列数字数字数字 ?数字数字数字数字 ?2数字数字数字 ?26数字数字 ?263数字 ?2634第30页,共81页,星期日,2025年,2月5日2.3.2句型、句子和语言句型设G[S]是一个文法,如果符号串x是从开始符号S推导得到的,即有S=*x,x?V+,则称符号串x是该文法G的一个句型。句子G[S]是一个文法,如果符号串x是从开始符号S推导得到的,即有S=+x,并且x?VT,则称该符号串为该文法的一个句子。注:实质上,句子是句型的特殊情况,句子是由终结符组成,而句型是有终结符和非终结符组成。语言:G[S]是一个文法,文法G产生的语言L(G)={x|S=*x,并且x?VT},即文法的语言是文法所有句子的集合。第31页,共81页,星期日,2025年,2月5日句型、句子和语言(续)文法规则的递归定义非终结符的定义中包含了非终结符自身。注:使用文法的递归定义要谨慎,要有递归出口,否则,可能永远产生不出句子。例:字母表A={0,1}文法: 整数数字整数|数字 数字?0|1再如:字母表A={0,1}整数数字整数 数字?0|1??第32页,共81页,星期日,2025年,2月5日2.3.3语法树在自然语言中,句子结构可以借助一种树形表示进行分析。如下面的句子:TheyarestudentsandteachersofthePhysicsDepartment。对该句子的结构进行分析,其树型结构如图2-3所示,由此可以看出,该句子是由主语、系词和表语组成,是一个语法正确的句子。第33页,共81页,星期日,2025年,2月5日句子主语系词表语代词Theyare名词student连接词and名词teacher定语前置词冠词名词ofthePhysics名词Department图2-3句子结构第34页,共81页,星期日,2025年,2月5日在自然语言中,可以通过树型表示直观地分析句子的结构;在形式语言中,我们提到了句型、推导的概念,在证明某个符号串是否是某个文法的句型时,采用从文法开始符号推导的方法,这个推导过程可以用语法树直观的表示出来。语法树也称为推导树,其定义如下:第35页,共81页,星期日,2025年,2月5日给定文法G=(VN,VT,P,S),对于G的任何句型都能构造与之关联的语法树,这棵树满足下列四个条件: (1)每个结点都有一个标记,此标记是V的一个符号。 (2)根的标记是S。 (3)若一结点n至少有一个它自己除外的子孙,并且有 标记A,则A肯定在VN中。 (4)如果结点n的直接子孙,从左到右的次序是结点n1,n2,n3….nk,其标记分别为A1,A2,A3,…AK。那么A→A1A2A3AK一定是P中的一个产生式。第36页,共81页,星期日,2025年,2月5日例:设文法G[S]: E?E+T|T T?T*F|F F?(E)|i 证明符号串E+(E+T)*i是文法的句型?第37页,共81页,星期日,2025年,2月5日EE+Ti*FF()TE+ET第38页,共81页,星期日,2025年,2月5日2.3.4二义性文法及其他二义性文法一个文法,如果它的一个句子或句型有两棵或两棵以上的语法树,则称此句子具有二义性。如果一个文法含有二义性的句子,则称该文法具有二义性。例: 设文法G[S]: S→ifBthenS|ifBthenSelseS|i:=E 给出符号串ifBthenifBthenSelseS的语法树。 语法树的结构如图2-5所示。 从上面的语法图我们可以看出,字符串ifBthenifBthenSelseS能够画出两棵语法树,所以该文法是一个二义性文法。第39页,共81页,星期日,2025年,2月5日在语言中,为了避免二义性的文法,往往对文法加以一定的限制,限制条件语句then之后不允许再是条件语句从语义解释方面限制条件语句中的else只能与其前面的、还没有和其他else配对的then配对。第40页,共81页,星期日,2025年,2月5日SifBthenSifBthenelseSSSifBthenelseSSifBthenSS→ifBthenS|ifBthenS