短语、直接短语和句柄.ppt
《短语、直接短语和句柄.ppt》由会员分享,可在线阅读,更多相关《短语、直接短语和句柄.ppt(81页珍藏版)》请在三一办公上搜索。
1、2.4 短语、直接短语和句柄,短语,令G是一个文法,S是文法的开始符号,假定是文法G的一个句型,如果有,则称 是相对于非终结符A的,句型的短语。,2.4 短语、直接短语和句柄,则称是直接短语。,直接短语,且 A,令G是一个文法,S是文法的开始符号,假定是文法G的一个句型,如果有,2.4 短语、直接短语和句柄,注意:短语和直接短语的区别在于第二个条件,直接短语中的第二个条件表示有文法规则 A,因此,每个直接短语都是某规则右部。,2.4 短语、直接短语和句柄,句柄,一个句型的最左直接短语称为该句型的句柄。,句柄特征:,(1)它是直接短语,即某规则右部。,(2)它具有最左性。,2.4 短语、直接短语
2、和句柄,注意:短语、直接短语和句柄都是针对某一句型的,都是指句型中的哪些符号串能构成短语和直接短语,离开具体的句型来谈短语、直接短语和句柄是无意义的。,2.4 短语、直接短语和句柄,例如 设有文法GS=(S,A,B,a,b,P,S)其中P为:,求句型 baSb的全部短语、直接短语和句柄。,SAB,AAa|bB,Ba|Sb,2.4 短语、直接短语和句柄,对文法,首先建立该句型的推导过程:,最左推导:,最右推导:,分析 根据短语定义,可以从句型的推导过程 中找出其全部短语、直接短语和句柄。,句型 baSb,2.4 短语、直接短语和句柄,句型baSb中的子串Sb,是(相对于非终结符B)句型baSb的
3、短语,且为直接短语。,B Sb,句型本身是(相对于非终结符S)句型baSb的短语。,根据最左推导:,2.4 短语、直接短语和句柄,句型baSb中的子串a,是(相对于非终结符B)句型baSb的短语,且为直接短语、句柄。,句型baSb中的子串ba,是(相对于非终结符A)句型baSb的短语。,B a,根据最右推导:,2.5 语法树与文法的二义性,推导和语法树,1.语法树,对句型的推导过程给出一种图形表示,这种表示称为语法树,也称推导树。,2.5.1 推导和语法树,例如 设有文法GE:,构造句型i*i+i的语法树。,首先给出句型的推导过程(最左推导):,EE+T|ET|T,TT*F|T/F|F,F(E
4、)|i,EE+TT+TT*F+TF*F+Ti*F+T i*i+Ti*i+Fi*i+i,2.5.1 推导和语法树,根据推导过程构造句型i*i+i的语法树如下:,EE+T,E,E,+,T,T+T,T,T*F+T,T,*,F,F*F+T,F,i*F+T,i,i*i+T,i,i*i+F,F,i*i+i,i,2.5.1 推导和语法树,由例可知,语法树的构造过程是从文法的开始符号出发,构造一个推导的过程。,因为文法的每一个句型(句子)都存在一 个推导,所以文法的每个句型(句子)都存在一棵对应的语法树。,EE+T E+F E+i T+i T*F+i T*i+i F*i+i i*i+i,2.5.1 推导和语法
5、树,对句型i*i+i,还可给出最右推导:,2.5.1 推导和语法树,这也就是说,一棵语法树表示了 一个句型的种种可能的(但未必是所 有的)不同推导过程,包括最左(最右)推导。,3.5.1 推导和语法树,2.子树,语法树的子树是由某一结点连同所有分枝组成的部分。,3.5.1 推导和语法树,3.简单子树,语法树的简单子树是指只有单层分枝的子树。,2.5.1 推导和语法树,句型的短语、直接短语和句柄的直观解释是:,短语:子树的末端结点形成的符号串是 相对于子树根的短语。,直接短语:简单子树的末端结点形成的 符号串是相对于简单子树根的直接短语。,句柄:最左简单子树的末端结点形成的 符号串是句柄。,2.
6、5.1 推导和语法树,短语:,i*i+i,i*i,第一个i,第二个i,第三个i,三个i都是直接短语,第一个i是句柄,注意:i+i不是句型的短语,句子 i*i+i,2.5.1 推导和语法树,前例 对文法GS=(S,A,B,a,b,P,S),其中P为:,可用语法树非常直观地求出句型baSb的全部短语,直接短语和句柄。,SAB,AAa|bB,Ba|Sb,2.5.1 推导和语法树,分析 首先根据句型baSb的推导过程画出对 应的语法树如下:,Sb 为句型的相对于B的短语、直接短语,baSb 为句型的相对于S的短语,ba 为句型的相对于A的短语,a 句型的相对于B的短语、直接短语和句柄,SABbBBba
7、BbaSb,SABASbbBSbbaSb,由语法树可知,2.5.2 文法的二义性,从前面的讨论可以看出,对于文法G中 任一句型的推导序列,我们总能为它构造 一棵语法树,现在我们提出一个问题:,文法的某个句型是否只对应唯一的一棵语法树呢?也就是,它是否只有唯一的一个最左(最右)推导呢?,2.5.2 文法的二义性,例如 设有文法GE:,句子 i*i+i 有两个不同的最左推导,对应两棵不同的语法树。,E E+E|E*E|(E)|i,2.5.2 文法的二义性,最左推导1 EE+EE*E+E i*E+Ei*i+E i*i+i,最左推导2 EE*Ei*E i*E+Ei*i+E i*i+i,2.5.2 文法
8、的二义性,如果一个文法存在某个句子对应两棵不同的语法树,则说这个文法是二义性的。或者说,若一个文法中存在某个句子,它有两个不同的最左(最右)推导,则这个文法是二义性的。,E E+E|E*E|(E)|i,2.5.3 文法二义性的消除,1.不改变文法中原有的语法规则,仅加进一些非形式的语法规定。,2.5.3 文法二义性的消除,2.构造一个等价的无二义性文法。即 把排除二义性的规则合并到原有文法中,改写原有的文法。,例如,对于上例文法GE,将运算符的 优先顺序和结合规则:*优先于;、*左结合加到原有文法中,可构造出无二义 性文法如下:,2.5.3 文法二义性的消除,则句子i*i+i只有唯一一棵语法树
9、:,EE+T|T,TT*F|F,F(E)|i,2.5.3 文法二义性的消除,例2 定义某程序语言条件语句的文法G为:,试证明该文法是二义性的并消除之。,分析 该文法的句子 if b if b A else A 对应下面两棵不同的语法树:,Sif b S,|if b S else S,|A(其它语句),2.5.3 文法二义性的消除,所以该文法是二义的。,Sif b S|if b S else S|A,句子 if b if b A else A,2.5.3 文法二义性的消除,消除文法的二义性可采用下面两种方法:,不改变已有规则,仅加进一非形式的语法规定:else与前面最接近的不带else的 if
10、相对。,文法G的句子 if b if b A else A只对应唯一的一棵语法树,消除了二义性。,2.5.3 文法二义性的消除,2.改写文法G为G,S S1|S2,S1 if b S1 else S1|A,S2 if b S|if b S1 else S2,G:,Sif b S,|if b S else S,|A(其它语句),G:,2.5.3 文法二义性的消除,这是因为通过分析,得知引起二义性的原因是:ifelse 语句的 if 后可以是if型,因此改写文法时规定:if else之间只能是ifelse语句或其他语句。,2.5.3 文法二义性的消除,S S1|S2,S1 if b S1 else
11、 S1|A,S2 if b S|if b S1 else S2,对改写后的文法,句子 if b if b A else A 只对应唯一的一棵语法树。,通常我们只说文法的二义性,而不说语言的二义性,这是因为可能有两个不同的文法G和G,而且其中一个是二义性的,另一个是无二义性的,但却有L(G)=L(G),即这两个文法所产生的语言是相同的。,2.5.3 文法二义性的消除,应该指出的是文法的二义性和语言的二义性是两个不同的概念。,2.5.3 文法二义性的消除,将一个语言说成是二义性的,是指对它不存在无二义性的文法,这样的语言称为先天二义性的语言。例如 L=ai bj ck|i=j 或 j=k 且 i,
12、j,k1便是这种语言。,2.6 文法和语言的分类,著名的语言学家乔姆斯基(Chomsky)将文法和语言分为四大类,即0型、1型、2型、3型。划分的依据是对文法中的规则施加不同的限制。,2.6 文法和语言的分类,0型文法(无限制文法),若文法G=(VN,VT,P,S)中的每条规则 是这样一种结构:,而且中至少含一个非终结符,则称G 是0型文法。,(VNVT)+,(VNVT)*,0型文法描述的语言是0型语言。,0型文法没有加任何限制条件,又称为 无限制性文法,相应的语言称为无限制 性语言。,0型语言由图灵机识别。,2.6 文法和语言的分类,例如,有0型文法G=(VN,VT,P,S),其中:VN=A
13、,B,S,VT=0,1,其描述的 0 型语言为 L0(GS)=,P:S 0AB,1B 0,B SA|01,A1 SB1,A0 S0B STOP,2.6 文法和语言的分类,1型文法(上下文有关文法),1型文法也称为上下文有关文法,相应 的语言又称为上下文有关语言。,若文法G=(VN,VT,P,S)中的每一条规则的 形式为 A,其中:,(VNVT)*,AVN,则称G是1型文法。,1型文法描述的语言是1型语言。,1型语言由线性界限自动机识别。,(VNVT)+,2.6 文法和语言的分类,例如,有1型文法G=(VN,VT,P,S),其中:VN=S,A,B,VT=a,b,c,P:S aSAB|abB,BA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 短语 直接 句柄

链接地址:https://www.31ppt.com/p-6133351.html