形式语言与自动机理论第六章(蒋宗礼)ppt课件.ppt
《形式语言与自动机理论第六章(蒋宗礼)ppt课件.ppt》由会员分享,可在线阅读,更多相关《形式语言与自动机理论第六章(蒋宗礼)ppt课件.ppt(108页珍藏版)》请在三一办公上搜索。
1、形式语言与自动机理论Formal Languages and Automata Theory,蒋宗礼,课程目的和基本要求,课程性质技术基础 基础知识要求 数学分析(或者高等数学),离散数学 主要特点 抽象和形式化 理论证明和构造性 基本模型的建立与性质,课程目的和基本要求,本专业人员4种基本的专业能力计算思维能力算法的设计与分析能力程序设计和实现能力计算机软硬件系统的认知、分析、设计与应用能力计算思维能力逻辑思维能力和抽象思维能力构造模型对问题进行形式化描述理解和处理形式模型,课程目的和基本要求,知识掌握正则语言、下文无关语言的文法、识别模型及其基本性质、图灵机的基本知识。能力培养学生的形式化
2、描述和抽象思维能力。使学生了解和初步掌握“问题、形式化描述、自动化(计算机化)”这一最典型的计算机问题求解思路。,主要内容,语言的文法描述。RLRG、 FA、RE、RL的性质 。CFLCFG(CNF、GNF)、PDA、CFL的性质。 TM基本TM、构造技术、TM的修改。CSLCSG、LBA。,教材及主要参考书目,蒋宗礼,姜守旭. 形式语言与自动机理论. 北京:清华大学出版社,2003年 John E Hopcroft, Rajeev Motwani, Jeffrey D Ullman. Introduction to Automata Theory, Languages, and Comput
3、ation (2nd Edition). Addison-Wesley Publishing Company, 2001 John E Hopcroft, Jeffrey D Ullman. Introduction to Automata Theory, Languages, and Computation. Addison-Wesley Publishing Company, 1979,第6章 上下文无关语言,Gbra:SS(S)| L(Gbra)不是RL,是CFL,高级程序设计语言的绝大多数语法结构都可以用上下文无关文法(CFG)描述。BNF(巴科斯范式:Backus normal fo
4、rm,又叫Backus-naur form)。,第6章 上下文无关语言,主要内容关于CFL的分析派生和归约、派生树CFG的化简 无用符、单一产生式、空产生式CFG的范式 CNFGNFCFG的自嵌套特性,第6章 上下文无关语言,重点CFG的化简。CFG到GNF的转换。 难点CFG到GNF的转换,特别是其中的用右递归替换左递归的问题。,6.1 上下文无关语言,文法G=(V,T,P,S)被称为是上下文无关的。 如果除了形如A的产生式之外,对于P,均有|,并且V成立。关键:对于AV,如果AP,则无论A出现在句型的任何位置,我们都可以将A替换成,而不考虑A的上下文。,6.1.1 上下文无关文法的派生树,
5、算术表达式的文法 Gexp1:EE+T|E-T|TTT*F|T/F|FFFP|PP(E)|N(L)|idNsin|cos|exp|abs|log|intLL,E|E,6.1.1 上下文无关文法的派生树,算术表达式x+x/y2的不同派生,EE+TT+TF+TP+Tx+Tx+T/Fx+F/Fx+P/Fx+x/Fx+x/FPx+x/PPx+x/yPx+x/y2,EE+TE+T/FE+T/FPE+T/F2E+T/P2E+T/y2 E+F/y2 E+P/y2 E+x/y2 T+x/y2 F+x/y2 P+x/y2x+x/y2,EE+TT+TT+T/FF+T/FF+T/FPP+T/FPx+T/FPx+F/
6、FPx+F/F2x+F/P2x+P/P2x+P/y2x+x/y2,6.1.1 上下文无关文法的派生树,文法Gexp1句子x+x/y2的结构。,6.1.1 上下文无关文法的派生树,派生树(derivation tree) 一棵(有序)树(ordered tree) 树的每个顶点有一个标记X,且XVT 树根的标记为S; 如果非叶子顶点v标记为A,v的儿子从左到右依次为v1,v2,vn,并且它们分别标记为X1,X2,Xn,则AX1X2XnP;如果X是一个非叶子顶点的标记,则XV;如果顶点v标记为,则v是该树的叶子,并且v是其父顶点的惟一儿子。,6.1.1 上下文无关文法的派生树,别称生成树分析树(p
7、arse tree)语法树(syntax tree) 顺序v1,v2是派生树T的两个不同顶点,如果存在顶点v,v至少有两个儿子,使得v1是v的较左儿子的后代,v2是v的较右儿子的后代,则称顶点v1在顶点v2的左边,顶点v2在顶点v1的右边。,6.1.1 上下文无关文法的派生树,结果(yield) 派生树T的所有叶子顶点从左到右依次标记为X1,X2,Xn,则称符号串X1X2Xn是T的结果。 一个文法可以有多棵派生树,它们可以有不同的结果。句型的派生树:“G的结果为的派生树”。,6.1.1 上下文无关文法的派生树,派生子树(subtree) 满足派生树定义中除了对跟结点的标记的要求以外各条的树叫派
8、生子树(subtree)。如果这个子树的根标记为A,则称之为A子树。 惟一差别是根结点可以标记非开始符号。,6.1.1 上下文无关文法的派生树,定理6-1 设CFG G=(V,T,P,S),S*的充分必要条件为G有一棵结果为的派生树。证明:证一个更为一般的结论:对于任意AV,A*的充分必要条件为G有一棵结果为的A-子树。 充分性:设G有一棵结果为的A-子树,非叶子顶点的个数n施归纳,证明A*成立。,6.1.1 上下文无关文法的派生树,设A-子树有k+1个非叶子顶点,根顶点A的儿子从左到右依次为v1,v2,vm,并且它们分别标记为X1,X2,Xm 。 AX1X2XmP 。 以X1,X2,Xm为根
9、的子树的结果依次为1,2,m 。 X1,X2,Xm为根的子树的非叶子顶点的个数均不大于k。,6.1.1 上下文无关文法的派生树,X1*1X2*2Xm*m而且=12m,6.1.1 上下文无关文法的派生树,AX1X2Xm *1X2Xm *12Xm *12m,6.1.1 上下文无关文法的派生树,6.1.1 上下文无关文法的派生树,必要性设An,现施归纳于派生步数n,证明存在结果为的A-子树。设nk(k1)时结论成立,往证当n=k+1时结论也成立:令Ak+1,则有:AX1X2Xm *1X2Xm *12Xm *12m,6.1.1 上下文无关文法的派生树,6.1.1 上下文无关文法的派生树,例6-1设Gb
10、ra:SS(S)|,()()和(S)(S)的派生树。,6.1.1 上下文无关文法的派生树,关于标记的结点,6.1.1 上下文无关文法的派生树,最左派生(leftmost derivation) 的派生过程中,每一步都是对当前句型的最左变量进行替换。左句型(left sentencial form)最左派生得到的句型可叫做左句型。最右归约(rightmost reduction)与最左派生对相的归约叫做最有归约。,6.1.1 上下文无关文法的派生树,最右派生(rightmost derivation) 的派生过程中,每一步都是对当前句型的最右变量进行替换。右句型(right sentencial
11、 form)最右派生得到的句型可叫做右句型。最左归约(leftmost reduction)与最左派生对相的归约叫做最右归约。,6.1.1 上下文无关文法的派生树,规范派生(normal derivation)最右派生。规范句型(normal sentencial form)规范派生产生的句型。规范归约(normal reduction)最左归约。,6.1.1 上下文无关文法的派生树,定理6-2 如果是CFG G的一个句型,则G中存在的最左派生和最右派生。证明:基本思路:对派生的步数n施归纳,证明对于任意AV,如果An,在G中,存在对应的从A到的最左派生:An左。,6.1.1 上下文无关文法的
12、派生树,AX1X2Xm *1X2Xm *12Xm *12m,A左X1X2Xm *左1X2Xm *左12Xm *左12m,同理可证,句型有最右派生。,6.1.1 上下文无关文法的派生树,定理6-3 如果是CFG G的一个句型,的派生树与最左派生和最右派生是一一对应的,但是,这棵派生树可以对应多个不同的派生。,6.1.2 二义性,简单算术表达式的二义性文法Gexp2:EE+E|E-E|E/E|E*EE EE|(E)|N(L)|idNsin|cos|exp|abs|log|intLL,E|E,6.1.2 二义性,E E+E x+E x+E/E x+x/E x+x/EEx+x/yEx+x/y2,句子x
13、+x/y2在文法中的三个不同的最左派生,E E/E E+E/E x+E/E x+x/E x+x/EE x+x/yE x+x/y2,E EE E/EE E+E/EE x+E/EE x+x/EE x+x/yE x+x/y2,6.1.2 二义性,对应3个不同的语法树,6.1.2 二义性,二义性(ambiguity) CFG G=(V,T,P,S),如果存在wL(G),w至少有两棵不同的派生树,则称G是二义性的。否则,G为非二义性的。二义性的问题是不可解的(unsolvable)问题。,6.1.2 二义性,例6-2 用其他方法消除二义性。Gifa:Sif E then S else S | if E
14、then SGifm:SU|MUif E then SUif E then M else UMif E then M else M|SGifh:STS|CSCif E thenT CS else,6.1.2 二义性,例 6-3 设Lambiguity=0n1n2m3m|n,m10n1m2m3n|n,m1可以用如下文法产生语言Lambiguity:G:SAB|0C3A01|0A1B23|2B3C0C3|12|1D2D12|1D2 语言Lambiguity不存在非二义性的文法。,6.1.2 二义性,固有二义性的(inherent ambiguity) 如果语言L不存在非二义性文法,则称L是固有二义
15、性的,又称L是先天二义性的。文法可以是二义性的。语言可以是固有二义性的。,6.1.3 自顶向下的分析和自底向上的分析,自顶向下的分析方法通过考察是否可以从给定文法的开始符号派生出一个符号串,可以判定一个符号串是否为该文法的句子。例SaAb|bBaAaAb|bBaBd,aabdabb的派生树的自顶向下的“生长”过程,6.1.3 自顶向下的分析和自底向上的分析,自底向上的分析方法通过考察是否可以将一个符号串归约为给定文法的开始符号,完成判定一个符号串是否为该文法的句子的任务。和归约与派生是互逆过程相对应,自顶向下的分析与自底向上的分析互逆的分析过程。,aabdabb的派生树的自底向上的“生长”过程
16、,6.2 上下文无关文法的化简,如下文法含有无用的“东西”G1:S0|0A|EA|0A|1A|BB_CC0|1|0C|1CD1|1D|2DE0E2|E02,去掉无用“东西”后的文法G2:S0|0AA|0A|1A|BB_CC0|1|0C|1C,6.2 上下文无关文法的化简,去掉产生式A后的文法G3:S0|0AA0|1|0A|1A|BB_CC0|1|0C|1C,去掉产生式AB后的文法G4:S0|0AA0|1|0A|1A| _CC0|1|0C|1C,可以去掉文法中的无用符号、 产生式和单一产生式。,6.2.1 去无用符号,无用符号(useless symbol) 对于任意XVT,如果存在wL(G),
17、X出现在w的派生过程中,即存在,(VT)*,使得S*X*w,则称X是有用的,否则,称X是无用符号。对CFG G=(V,T,P,S) G中的符号X既可能是有用的,也可能是无用的。当X是无用的时候,它既可能是终极符号,也可能是语法变量。,6.2.1 去无用符号, 对于任意XVT,如果X是有用的,它必须同时满足如下两个条件: 存在wT*,使得X*w; ,(VT)*,使得S*X。 注意到文法是语言的有穷描述,所以,集合V,T,P都是有穷的。从而我们有可能构造出有效的算法,来完成消除文法的无用符号的工作。,6.2.1 去无用符号,算法 6-1 删除派生不出终极符号行的变量。输入:CFG G=(V,T,P
18、,S)。输出:CFG G=(V,T,P,S),V中不含派生不出终极符号行的变量,并且L(G)=L(G)。 主要步骤:,6.2.1 去无用符号,(1) OLDV=;(2) NEWV=A|AwP且wT*;(3) while OLDVNEWV dobegin(4) OLDV=NEWV;(5) NEWV=OLDVA|AP且(TOLDV) *end(6) V=NEWV;(7) P= A| AP且 AV且(TV)*,6.2.1 去无用符号,第(3)条语句控制对NEWV进行迭代更新。第一次循环将那些恰经过两步可以派生出终极符号行的变量放入NEWV;第二次循环将那些恰经过三步和某些至少经过三步可以派生出终极符
19、号行的变量放入NEWV;,第n次循环将那些恰经过n步和某些至少经过n+1步可以派生出终极符号行的变量放入NEWV。这个循环一直进行下去,直到所给文法G中的所有可以派生出终极符号行的变量都被放入NEWV中。,6.2.1去无用符号,定理 6-4 算法6-1是正确的。 证明要点:首先证明对于任意AV,A被放入V中的充要条件是存在wT,An w。再证所构造出的文法是等价的。(1)对A被放入NEWV的循环次数n施归纳,证明必存在wT,满足A w。,6.2.1去无用符号,(2)施归纳于派生步数n,证明如果An w,则A被算法放入到NEWV中。实际上,对原教材所给的证明进行分析,同时考虑算法6-1的实际运行
20、,可以证明,A是在第n次循环前被放入到NEWV中的。(3)证明L(G)=L(G) 。显然有L(G) L(G),所以只需证明L(G)。,6.2.1 去无用符号,算法 6-2 删除不出现在任何句型中的语法符号。输入:CFG G=(V,T,P,S)。输出:CFG G=(V,T,P,S),VT中的符号必在G的某个句型中出现,并且有L(G)=L(G)。主要步骤:,6.2.1 去无用符号,主要步骤:(1) OLDV=;(2) OLDT=;(3) NEWV=SA|SAP;(4) NEWT=a|SaP;,6.2.1去无用符号,(5) while OLDVNEWV 或者OLDTNEWT do begin(6)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形式语言与自动机理论 第六章蒋宗礼ppt课件 形式语言 自动机 理论 第六 蒋宗礼 ppt 课件
链接地址:https://www.31ppt.com/p-1935638.html