第三章上下文无关语法_精品文档PPT资料.ppt

上传人:b****2 文档编号:15485000 上传时间:2022-11-01 格式:PPT 页数:56 大小:1.04MB
下载 相关 举报
第三章上下文无关语法_精品文档PPT资料.ppt_第1页
第1页 / 共56页
第三章上下文无关语法_精品文档PPT资料.ppt_第2页
第2页 / 共56页
第三章上下文无关语法_精品文档PPT资料.ppt_第3页
第3页 / 共56页
第三章上下文无关语法_精品文档PPT资料.ppt_第4页
第4页 / 共56页
第三章上下文无关语法_精品文档PPT资料.ppt_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

第三章上下文无关语法_精品文档PPT资料.ppt

《第三章上下文无关语法_精品文档PPT资料.ppt》由会员分享,可在线阅读,更多相关《第三章上下文无关语法_精品文档PPT资料.ppt(56页珍藏版)》请在冰豆网上搜索。

第三章上下文无关语法_精品文档PPT资料.ppt

#,0#1,00#11,000#111,用文法生成的所有字符串的集合称为文法的语言。

L(G1)表示文法G1产生的语言。

L(G1)=0n#1n|n0用上下文无关文法产生的语言叫上下文无关语言。

文法G1的简写:

A0A1|BB#,7,上下文无关文法的形式化定义,定义2.1,上下文无关文法是一个4元组(V,R,S),且

(1)V是一个有穷集合,称为变元集。

(2)是一个与V不相交的有穷集合,称为终结符集。

(3)R是一个有穷规则集,每条规则由一个变元和一个由变元及终结符组成的字符串构成。

(4)SV是起始变元。

8,CFG的术语,假设u与v由变元及终结符构成的字符串,Aw是文法的一条规则,称uAv生成uwv,记作uAvuwv。

如果u=v,或者存在u1,u2,uk,k0使得uu1u2ukv,则称u派生v,记作u*v。

文法G=(V,R,S)的语言为L(G)=w*|S*w,9,上下文无关文法举例,例2.1考虑文法G=(S,a,b,R,S),其中规则集R为:

SaSb|SS|。

该文法生成abab,aaabbb,aababb,如果将a看作(,将b看作),L(G)是所有正常嵌套的括号字符串构成的语言。

10,设计上下文无关文法,设计如下语言的上下文无关文法0n1n|n01n0n|n00n1n|n01n0n|n0设计技巧化繁为简,利用正则,考察子串,利用递归。

11,设计上下文无关文法,CFGforL1=0n1n|n0S0S1|CFGforL2=1n0n|n0S1S0|CFGforL1L2SS1|S2S10S11|S21S20|CFGforL3=02n13n|n0?

S00S111|,12,上下文无关文法与正则语言,任何正则语言可以由CFG描述。

如果(qi,a)=qj,则增加规则VjaVi如果qi是接受状态,则增加规则Vi如果q0是起始状态,则V0是起始变元。

CFG,G=(V0,V1,0,1,R,V0)V00V0|1V1|V11V1|0V0,13,最左派生,对于文法G中的一个字符串w的派生,如果在每一步都是替换左边剩下的变元,则称这个派生是最左派生。

例如G=(S,(,),R,S),其中规则为S(S)|SS|SSS(S)S()S()(S)()()SSSS(S)(S)(S)()(S)()(),14,歧义性,一个串可能有两个甚至更多的最左派生。

例如CFGG=(S,+,*,a,R,S),其中规则为SS+S|S*S|a产生串a+a*aSS+Sa+Sa+S*Sa+a*Sa+a*aSS*SS+S*Sa+S*Sa+a*Sa+a*a,15,歧义性,定义2.4,如果字符串w在上下文无关文法G中有两个或两个以上不同的最左派生,则称G歧义地(ambiguously)产生字符串w,如果文法G歧义地产生某个字符串,则称G是歧义的。

某些上下文无关语言只能用歧义文法产生,这样的语言是固有二义的。

16,乔姆斯基范式,定义2.5,称一个上下文无关文法是为乔姆斯基范式(Chomskynormalform),如果它的每一个规则具有如下形式:

ABCAa其中a是任意的终结符,A、B和C是任意的变元,且B和C不能同时是起始变元。

此外,允许规则S,其中S是起始变元。

17,乔姆斯基范式,定理2.6,任一上下文无关语言都可以用一个乔姆斯基范式的上下文无关文法产生。

Step1:

增加起始变元S0和规则S0S,其中S是原来的起始变元。

Step2:

考虑所有的规则。

对于A,删去每个A都会产生一个新规则。

例如RuAvAwRuAvw,RuvAw,Ruvw,18,乔姆斯基范式,定理2.6,任一上下文无关语言都可以用一个乔姆斯基范式的上下文无关文法产生。

Step3:

考虑单一产生式AB。

例如:

AB,BaC,BCC,则增加AaC,ACC。

Step4:

考虑Au1u2uk,其中k2且ui是变量或终结符。

替换该规则Au1A1,A1u2A2,A2u3A3,Ak-2uk-1uk,19,例题,SASA|aBAB|SBb|,S0SSASA|aBAB|SBb|,20,例题,Afterthat,weremoveB,S0SSASA|aBAB|SBb|,S0SSASA|aB|aAB|S|Bb,BeforeremovingB,AfterremovingB,21,例题,Afterthat,weremoveA,S0SSASA|aB|aAB|S|Bb,BeforeremovingA,AfterremovingA,S0SSASA|aB|a|SA|AS|SAB|SBb,22,例题,Then,weremoveSSandS0S,AfterremovingSS,AfterremovingS0S,S0SSASA|aB|a|SA|ASAB|SBb,S0ASA|aB|a|SA|ASSASA|aB|a|SA|ASAB|SBb,23,例题,Then,weremoveAB,BeforeremovingAB,AfterremovingAB,S0ASA|aB|a|SA|ASSASA|aB|a|SA|ASAB|SBb,S0ASA|aB|a|SA|ASSASA|aB|a|SA|ASAb|SBb,24,例题,Then,weremoveAS,BeforeremovingAS,AfterremovingAS,S0ASA|aB|a|SA|ASSASA|aB|a|SA|ASAb|SBb,S0ASA|aB|a|SA|ASSASA|aB|a|SA|ASAb|ASA|aB|a|SA|ASBb,25,例题,Then,weapplyStep4,BeforeStep4,AfterStep4GrammarisinCNF,S0ASA|aB|a|SA|ASSASA|aB|a|SA|ASAb|ASA|aB|a|SA|ASBb,S0AA1|UB|a|SA|ASSAA1|UB|a|SA|ASAb|AA1|UB|a|SA|ASBbA1SAUa,26,作业,W5:

3.3、3.6,27,主要内容,2.1上下文无关文法概述2.1.1上下文无关文法的形式化定义2.1.2上下文无关文法举例2.1.3设计上下文无关文法2.1.4歧义性2.1.5乔姆斯基范式2.2下推自动机2.2.1下推自动机的形式化定义2.2.2下推自动机举例2.2.1与上下文无关文法的等价性2.3非上下文无关语言,28,下推自动机,考虑语言0n1n|n0的识别装置,状态控制器,栈,下推自动机(pushdownautomata)PDA=NFA+stackwithunlimitedsize确定型PDA和非确定型PDA的语言识别能力不相同。

29,下推自动机(PDA)的形式化定义,定义2.8,下推自动机是6元组(Q,q0,F)

(1)Q是一个有穷集合,称为状态集。

(2)是一个有穷集合,称为输入字母表。

(3)是一个有穷集合,称为栈字母表。

(4):

QP(Q)是转移函数,其中=,=(5)q0Q是起始状态。

(6)FQ是接受状态集。

PDA的形式化定义没有提供检验空栈的直接手段。

约定PDA在开始时就把一个特殊符号$放入栈中。

30,PDA的计算过程,PDAM=(Q,q0,F)接受输入串w,如果能够把w写成w1w2wm,其中wi存在状态序列r0,r1,rmQ存在s0,s1,sm*满足下述3个条件,字符串si是M在计算的接受分支中的栈内容序列。

(1)r0=q0,s0=

(2)对于i=0,1,m-1,有(ri+1,b)(ri,wi+1,a),其中si=at,si+1=bt,a,b(3)rmF,31,下推自动机举例,例2.9描述识别语言0n1n|n0的PDAM。

q1,q2,q3,q4,$,1,0,0,0,1,0,$,M=(q1,q2,q3,q4,0,1,0,$,q1,q1,q4),(q1,)=(q2,$),(q2,0,)=(q2,0)(q2,1,0)=(q3,),(q3,1,0)=(q3,)(q3,$)=(q4,),(q,x,y)=,32,下推自动机举例,例2.10构造识别语言aibjck|i,j,k0且i=j或i=k的PDAM。

q1,q2,q5,q6,$,a,a,$,q7,q3,q4,$,b,c,a,c,b,a,33,下推自动机举例,例2.11构造识别语言wwR|w0,1*的PDAM。

q1,q2,q3,q4,$,0,01,1,0,01,1,$,34,PDA与上下文无关文法的等价性,35,PDA与上下文无关文法的等价性,设A是一个CFL,根据定义,存在一个CFGG产生它。

如何把G转换成一台等价的PDAP。

通过确定是否存在关于输入w的派生,当G产生w时,PDAP接受这个输入。

设计P,以确定是否有一系列使用G的规则替换。

36,由CFG构造PDA,P的非形式化描述如下:

(1)把标记符$和起始变元放入栈中。

(2)重复下述步骤:

a)如果栈顶是变元A,则非确定地选择一个关于A的规则,并且把A替换成这条规则右边的字符串。

b)如果栈顶是终结符a,则读输入中的下一个符号,并且把它与a进行比较。

如果它们匹配,则重复,否则,这个非确定性分支被拒绝。

c)如果栈顶是符号$,则进入接受状态,如果此刻收入已全部读完,则接受这个输入串。

37,由CFG构造PDA,输入:

1100CFG:

SSS|1S0|10,1100,Atthebeginning,1100,PDAusestheruleS1S0,100,Inputcharismatched,Nextchar,Nextchar,Nextchar,38,由CFG构造PDA,输入:

SSS|1S0|10,100,PDAusestheruleS10,00,Inputcharismatched,0,Inputcharismatched,Nextchar,Nextchar,Nextchar,39,由CFG构造P

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1