形式语言自动机——上下文无关文法与下推自动机(三)

上传人:痛*** 文档编号:176396162 上传时间:2022-12-21 格式:PPT 页数:25 大小:311.52KB
收藏 版权申诉 举报 下载
形式语言自动机——上下文无关文法与下推自动机(三)_第1页
第1页 / 共25页
形式语言自动机——上下文无关文法与下推自动机(三)_第2页
第2页 / 共25页
形式语言自动机——上下文无关文法与下推自动机(三)_第3页
第3页 / 共25页
资源描述:

《形式语言自动机——上下文无关文法与下推自动机(三)》由会员分享,可在线阅读,更多相关《形式语言自动机——上下文无关文法与下推自动机(三)(25页珍藏版)》请在装配图网上搜索。

1、1College of Computer Science&Technology,BUPT4.3 Chomsky范式和范式和Greibach范式范式nChomsky范式定义:n 2型文法型文法G(N,T,P,S),),若生成式形式都若生成式形式都是是ABC和和Aa,A、B、CN,aT,则则G是是Chomsky范式。若范式。若L(G),),则则S是是P的一的一个生成式,但个生成式,但S不能在任何其它生成式的右边。不能在任何其它生成式的右边。n每个上下文无关文法都具有等效的每个上下文无关文法都具有等效的CNF(定理定理4.3.1)2College of Computer Science&Techno

2、logy,BUPTCNF 的构成步骤的构成步骤1.用算法用算法1、2、3、4消除消除生成式、无用符号、单生成式生成式、无用符号、单生成式2.对生成式对生成式AD1D2Dn n2 若若DiT,则引入新生成式则引入新生成式BiDi,Bi是新非终结符是新非终结符 若若DiN,则令则令BiDi,从而将原生成式变化为从而将原生成式变化为 AB1B2Bn n2 当当n2 时,再将其变为时,再将其变为 AB1C1,C1B2C2,C2B3C3,Cn1Bn1Bn Ci是新引入的非终结符。是新引入的非终结符。定理证明定理证明自学自学3College of Computer Science&Technology,B

3、UPTCNF 的构成例的构成例 例例:(书书P148 例例1)设设G(A,B,S,a,b,P,S)是无是无、无循环、无无循环、无无用符号、无单生成式的文法。无用符号、无单生成式的文法。P:SaAB BA ABBB a BAS b 求等效的求等效的CNF G1解解:SBASBA,AaAa,BAS,BbBAS,Bb已是已是CNFCNF 加入到加入到P P1 1中中对对SSaABaAB,将其变换为将其变换为SCSCa aC C1 1,C Ca aaa,C C1 1ABAB 将将ABBBABBB变换为变换为ABCABC2 2,C C2 2BBBB.4College of Computer Scienc

4、e&Technology,BUPTCNF 的构成例的构成例 例例:2 2型文法型文法G G(AA,B B,SS,aa,bb,P P,S S)P:S P:SbAbAaB aB AAbAAbAAaSaSa Ba BaBBaBBbSbSbb 求等效的求等效的CNFCNF解解:SSC Cb bA AC Ca aB B,增加增加C Cb bbb,C C2 2aa A AC Cb bD DC Ca aS Saa,增加增加DAADAA B BC Ca aE EC Cb bS Sbb,增加增加EBBEBB5College of Computer Science&Technology,BUPTGreibachG

5、reibach范式范式n Greibach范式(GNF)定义:n2型文法G(N,T,P,S),若生成式的形式都是Aa,AN,aT,N*,且G不含生成式,则称G为Greibach范式,记为GNF。n 任何2型文法都具有等效的GNF(定理4.3.2)6College of Computer Science&Technology,BUPTGNF 的构成步骤的构成步骤1.将将2 2型文法变换为型文法变换为CNFCNF。(。(AaAa,ABCABC形式)形式)2.2.将非终结符排序将非终结符排序,再进行代换。再进行代换。对形如对形如A Ai iA Aj j(jijili)。)。3.3.消左递归。消左递归

6、。对最高的对最高的A An nAAn n进行变换,使进行变换,使A An n生成式变为终结符开头。生成式变为终结符开头。4.4.回代。回代。将将A An n生成式回代入生成式回代入A An n1 1生成式,使其右部首符为终结符,生成式,使其右部首符为终结符,将将A An n1 1生成式回代入生成式回代入A An n2 2生成式,使其右部首符为终结符生成式,使其右部首符为终结符 5.5.最后将消直接左递归时引入的最后将消直接左递归时引入的A A1 1、A A2 2、A An n生成式右部生成式右部进行代换。使其首符变为终结符。进行代换。使其首符变为终结符。7College of Computer

7、 Science&Technology,BUPTGNF 的构成例的构成例 例例:(书书P149 例例2)设已有设已有CNF:ABCABC,BCAb BCAb,CABa CABa,将其变换为将其变换为GNF。解解:按其非终结符排列为按其非终结符排列为A A、B B、C C,A A是低位,是低位,C C是高位。是高位。、中,右部首符序号高于左部的非终结符、中,右部首符序号高于左部的非终结符 无需变换。无需变换。对,需要变换,对,需要变换,将代入得将代入得 CBCBa CBCBa ,仍需变换,仍需变换,将代入得将代入得 CCACBCCACBbCBbCBa a 8College of Computer

8、 Science&Technology,BUPTGNF 的构成例的构成例 对上述变换后所得结果消直接左递归对上述变换后所得结果消直接左递归 对对CCCCACBACBbCBbCBa a 变换为变换为 1 1 1 1 2 2 C C1 12 21 1CC2 2CCC C 1 11 1 C C即即 CCbCBbCBaabCBCbCBC aCaC CACBACBC CACBACBC 9College of Computer Science&Technology,BUPTGNF 的构成例的构成例 回代回代将将C C的生成式回代入的生成式回代入B B的生成式的生成式 BBC CAb Ab 被变换为被变换为

9、 BBbCBAbCBAaAaAbCBCbCBCAAaCaCAb Ab 将新的将新的B B生成式回代入生成式回代入A A的生成式的生成式 AAB BC C 被变换为被变换为 AAbCBACbCBACaACaACbCBCbCBCACACaCaCACACbC bC 再将新的再将新的A A生成式代入新引入的生成式代入新引入的CC生成式生成式 CCA ACBCBA ACBC CBC 被变换为被变换为 (略)略)注意:新引入的注意:新引入的A Ai i相当于排在最低位。相当于排在最低位。10College of Computer Science&Technology,BUPT4.4 下推自动机(下推自动机

10、(PDA)n主要内容nPDA的基本概念。nPDA的构造举例。n用终态接受语言和用空栈接受语言的等价性。nPDA是上下文无关语言的接收器。n重点nPDA的基本定义及其构造nPDA与上下文无关语言等价n难点n根据PDA构造上下文无关文法。11College of Computer Science&Technology,BUPT问题的引出问题的引出 类似于an bn 的语言无法由一般的有限自动机识别。有限有限状态识别器中必须有无限个无限个状态 (不允许不允许!)!)需要扩充机器的能力。需要扩充机器的能力。aaaaabbbbbb识别an bn 的无限状态自动机 12College of Compute

11、r Science&Technology,BUPT下推自动机的结构下推自动机的结构n扩充办法:引入一个下推栈 足够简单 可解决许多有意义的问题,如识别有效的程序n下推自动机PDA(Push Down Automaton)由一条输入带,一个有限状态控制器和一个下推栈组成nPDA的动作 在有限状态控制器的控制下根据它的当前状态、栈顶符号、以及输入符号作出相应的动作。有时,不需要考虑输入符号(空转移)。n栈:后进先出表对栈的操作(压入、弹出)均在栈顶进行。13College of Computer Science&Technology,BUPT下推自动机的定义下推自动机的定义nNPDA的形式定义:七

12、元组 M(Q,T,q0,z0,F)其中:Q:有限控制器的状态集合 T:有限输入字母表 :有限下推栈字母表 :Q (T)Q*当前状态 当前输入 当前栈顶符号 有限子集 q0:初始状态,q0Q z0:下推栈的起始符号,z0 F:终态集合,F Q14College of Computer Science&Technology,BUPT下推自动机的下推自动机的转换函数转换函数n转换函数(q,a,Z)(p,)q、pQ,aT,Z,*表示在状态q,输入字符a,且栈顶符Z时,转入状态p,栈顶符Z由代替,同时读头右移一格。n约定:的最左符号放在栈顶。表示下推栈的顶符被弹出 如 (q,a,Z)(p,)(q,Z)(

13、p,)称为转换。即不考虑当前输入字符,读头不移动,但控制器状态可以改变且栈顶符可以调整。15College of Computer Science&Technology,BUPT下推自动机的下推自动机的格局格局n格局:用于描述PDA的瞬时工作状况PDA格局(q,)其中*,*q 当前状态 待输入串(时,表示输入字符已读完)下推栈中的内容(时表示栈已弹空)n(q,a,Z)(p,r)用格局可表示为 (q,a,Z)(p,r)对PDA而言,初始格局为(q0,z0)终止格局为(q,)qF,*16College of Computer Science&Technology,BUPT下推自动机接受的下推自动机

14、接受的语言语言n两种接受方式n终态接受:L(M)=(q0,z0)*(q,),qF,*n空栈接受:L(M)=(q0,z0)*(q,),qQ(当空栈接受时,终止状态可为Q中任意状态,换言之,终止状态集是与状态无关的。此时,取F)17College of Computer Science&Technology,BUPT下推自动机例下推自动机例n例:构造PDA M,接受语言L(M)=anbnn1n思路:把输入的字符a入栈,当开始输入b时,从栈中弹出a,若a、b个数相同,则到达终态,且栈中空。n解:设PDA M(Q,T,q0,z0,F),Qq0,q1,q2 q0 初态;接受a q1状态;接受b q2状态

15、;输入 回到q0 Ta,b,=z0,a,F=q0定义为:(q0,a,z0)=(q1,a z0)(q1,a,a)=(q1,aa)(q1,b,a)=(q2,)(q2,z0)=(q0,)(q2,b,a)=(q2,)18College of Computer Science&Technology,BUPT下推自动机的图形表示下推自动机的图形表示 n上例的图形表示:q a,Z/p表示(p,)(q,a,Z)注:栈空就不能再移动了 a,z0/az0 b,a/a,a/aa b,a/,z0/q0q2q1用格局表示aabb的识别过程:(q0,aabb,z0)(q1,abb,az0)(q1,bb,aaz0)(q2,

16、b,az0)(q2,z0)(q0,)终态接受终态接受19College of Computer Science&Technology,BUPT若对于每个输入字符,其后续状态都是确定的,就是DPDA(如前例)。nDPDA必须满足下述二个条件之一:对 qQ,z,aT有(q,a,z)最多含一个后续选择且(q,Z)或者(q,a,z)且(q,z)最多含一个元素。这两个限制防止了在动作和包含一个输入符号的动作之间做选择的可能性(即在同样状态,同样栈顶符号下最多只能有一个选择。)确定的下推自动机(确定的下推自动机(DPDADPDA)20College of Computer Science&Technolo

17、gy,BUPT例:例:构造PDA M,接受语言L(M)=cTa,b*.解题思路:解题思路:从状态q0接受句子,将输入存到栈中,状态不变,直到看到中心标记c。当达到c时,将状态变为q1,栈不变。将输入与下推栈匹配,状态不变,退栈,直至栈空。确定的下推自动机(确定的下推自动机(DPDADPDA)q0 c,Z/Z q1 ,z0/qf a,z/az a,a/b,z/bz b,b/该自动机的形式定义:见书P15721College of Computer Science&Technology,BUPT例:例:构造PDA M,接受语言L(M)=Ta,b*.(与前面的例子类似,区别在于中间没有标志”c”)解

18、:解:非确定的下推自动机(非确定的下推自动机(NPDANPDA)q0 ,Z/Z q1 ,z0/qf a,z/az a,a/b,z/bz b,b/把“c,z/z”改为“,z/z”就引进了非确定性。因为机器可在任何时刻进行这种转换。22College of Computer Science&Technology,BUPT例:例:构造PDA M,接受语言L(M)=ai bj ck i =j 或 i =k。解题思路:解题思路:与前例类似,利用不确定性,PDA可以猜想a应与b匹配还是与c匹配。所构造的NPDA M利用两个不确定的分支实现不同的猜想。解:解:非确定的下推自动机(非确定的下推自动机(NPDA

19、NPDA)23College of Computer Science&Technology,BUPT ,z1/z0z1 a,z0/,z/,z/,z/,z/MMfq0qfqeq1定理定理4.4.1 如果Lf是PDA Mf以终态接受的语言,必存在一个PDA M以空栈接受语言L,使LLf证明:证明:设Mf(Q,T,q0,z0,F)构造PDA Mf(Q qe,q1,T,z1,1,q1,z1,)用M模拟Mf空栈接受与终态接受的等价空栈接受与终态接受的等价 对所有qf F和z z1 1(q f,z)=(q e,)(当M f进入终态时,用转换进入qe状态,弹出栈顶)在q e状态下,若栈不为,则不断弹出栈顶符

20、,直至栈空 1定义:1(q1,z1)=(q0,z0z1)(将z1作为栈底符,进入Mf的起始状态)对所有qQ,aT,z令1(q,a,z)=(q,a,z)(即M模拟Mf的动作)24College of Computer Science&Technology,BUPT定理定理4.4.2 如果L是PDA M 以空栈接受的语言,必存在一个PDA M f 以终态接受语言L,使 Lf L证明:证明:设M(Q,T,q0,z0,)构造PDA Mf(Q q0f,qf,T,z1,f,q 0f,z1,qf)空栈接受与终态接受的等价空栈接受与终态接受的等价 f 定义:f(q0f,z1)=(q0,z0z1)f(q,a,z)=(q,a,z)f(q,z1)=(qf,)q 0f ,z1/z0z1 q0 a,z0/,z1/q f 空栈接受 MMf25College of Computer Science&Technology,BUPT作业:作业:ch4ch4习题习题.11 11、1515

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!