形式语言自动机-上下文无关文法与下推自动机.ppt
《形式语言自动机-上下文无关文法与下推自动机.ppt》由会员分享,可在线阅读,更多相关《形式语言自动机-上下文无关文法与下推自动机.ppt(25页珍藏版)》请在三一办公上搜索。
1、1,College of Computer Science&Technology,BUPT,4.3 Chomsky范式和Greibach范式,Chomsky范式定义:2型文法G(N,T,P,S),若生成式形式都是ABC和Aa,A、B、CN,aT,则G是Chomsky范式。若L(G),则S是P的一个生成式,但S不能在任何其它生成式的右边。每个上下文无关文法都具有等效的CNF(定理4.3.1),2,College of Computer Science&Technology,BUPT,CNF 的构成步骤,1.用算法1、2、3、4消除生成式、无用符号、单生成式2.对生成式AD1D2Dn n2 若Di
2、T,则引入新生成式BiDi,Bi是新非终结符 若DiN,则令BiDi,从而将原生成式变化为 AB1B2Bn n2 当n2 时,再将其变为 AB1C1,C1B2C2,C2B3C3,Cn1Bn1Bn Ci是新引入的非终结符。定理证明自学,3,College of Computer Science&Technology,BUPT,CNF 的构成例,例:(书P148 例1)设G(A,B,S,a,b,P,S)是无、无循环、无无用符号、无单生成式的文法。P:SaABBA ABBBa BASb 求等效的CNF G1解:SBA,Aa,BAS,Bb已是CNF 加入到P1中对SaAB,将其变换为SCaC1,Caa
3、,C1AB 将ABBB变换为ABC2,C2BB.,4,College of Computer Science&Technology,BUPT,CNF 的构成例,例:2型文法G(A,B,S,a,b,P,S)P:SbAaB AbAAaSa BaBBbSb 求等效的CNF解:SCbACaB,增加Cbb,C2a ACbDCaSa,增加DAA BCaECbSb,增加EBB,5,College of Computer Science&Technology,BUPT,Greibach范式,Greibach范式(GNF)定义:2型文法G(N,T,P,S),若生成式的形式都是Aa,AN,aT,N*,且G不含生成
4、式,则称G为Greibach范式,记为GNF。任何2型文法都具有等效的GNF(定理4.3.2),6,College of Computer Science&Technology,BUPT,GNF 的构成步骤,1.将2型文法变换为CNF。(Aa,ABC形式)2.将非终结符排序,再进行代换。对形如AiAj(ji)。3.消左递归。对最高的AnAn进行变换,使An生成式变为终结符开头。4.回代。将An生成式回代入An1生成式,使其右部首符为终结符,将An1生成式回代入An2生成式,使其右部首符为终结符 5.最后将消直接左递归时引入的A1、A2、An生成式右部进行代换。使其首符变为终结符。,7,Coll
5、ege of Computer Science&Technology,BUPT,GNF 的构成例,例:(书P149 例2)设已有CNF:ABC,BCAb,CABa,将其变换为GNF。解:按其非终结符排列为A、B、C,A是低位,C是高位。、中,右部首符序号高于左部的非终结符 无需变换。对,需要变换,将代入得 CBCBa,仍需变换,将代入得 CCACBbCBa,8,College of Computer Science&Technology,BUPT,GNF 的构成例,对上述变换后所得结果消直接左递归 对CCACBbCBa 变换为 1 1 2 C121C2CC 11 C即 CbCBabCBC aC
6、 CACBACBC,9,College of Computer Science&Technology,BUPT,GNF 的构成例,回代将C的生成式回代入B的生成式 BCAb 被变换为 BbCBAaAbCBCAaCAb 将新的B生成式回代入A的生成式 ABC 被变换为 AbCBACaACbCBCACaCACbC 再将新的A生成式代入新引入的C生成式 CACBACBC 被变换为(略)注意:新引入的Ai相当于排在最低位。,10,College of Computer Science&Technology,BUPT,4.4 下推自动机(PDA),主要内容PDA的基本概念。PDA的构造举例。用终态接受语
7、言和用空栈接受语言的等价性。PDA是上下文无关语言的接收器。重点PDA的基本定义及其构造PDA与上下文无关语言等价难点根据PDA构造上下文无关文法。,11,College of Computer Science&Technology,BUPT,问题的引出,类似于an bn 的语言无法由一般的有限自动机识别。,有限状态识别器中必须有无限个状态(不允许!)需要扩充机器的能力。,识别an bn 的无限状态自动机,12,College of Computer Science&Technology,BUPT,下推自动机的结构,扩充办法:引入一个下推栈 足够简单 可解决许多有意义的问题,如识别有效的程序下
8、推自动机PDA(Push Down Automaton)由一条输入带,一个有限状态控制器和一个下推栈组成PDA的动作 在有限状态控制器的控制下根据它的当前状态、栈顶符号、以及输入符号作出相应的动作。有时,不需要考虑输入符号(空转移)。栈:后进先出表对栈的操作(压入、弹出)均在栈顶进行。,13,College of Computer Science&Technology,BUPT,下推自动机的定义,NPDA的形式定义:七元组 M(Q,T,q0,z0,F)其中:Q:有限控制器的状态集合 T:有限输入字母表:有限下推栈字母表:Q(T)Q*当前状态 当前输入 当前栈顶符号 有限子集 q0:初始状态,q
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形式语言 自动机 上下文 无关 文法 下推自动机

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