编译原理及编译程序构造课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《编译原理及编译程序构造课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 编译程序 构造 课件
- 资源描述:
-
1、编译原理及编译程序构造 2023-1-262第三章 词法分析本章主要内容结构RgReNFADFAMinDFA算法结构2023-1-2633.1 正规文法与有限自动机 一、正规文法、正规集、正规式1、正规文法(Rg:Chomsky 3型文法):只能含有产生式:(左线性文法)或者 (右线性文法)二者不能同时存在 举例|a|b|z|A|B|Z|_0|1|2|3|4|5|6|7|8|92023-1-2643.1 正规文法与有限自动机 一、正规文法、正规集、正规式2、正规集 由正规文法产生的语言集合,称为正规集.正规集是集合,可有穷也可无穷。可通过正规式(Re:Regular Expression)来形
2、式化表示2023-1-2653.1 正规文法与有限自动机 一、正规文法、正规集、正规式3、正规式(Re):正规文法所产生的语言用一种表达式来表示,称为正规式。定义:设A是非空的有限字母表,A=ai|i=1,2,n,则 1),和ai(i=1,2,n)都是正规式。2)若、是正规式,则|、*、*也是正规式。3)正规式只能通过有限次使用1,2规则获得 注意:仅由字母表A=ai|i=1,2,n上的正规式所组成的语言称作正规集,记作L()利用正规集相同,可用来证明相应正规式等价“|”读作为“或”,也可写作为“+”或“,”;“”读作连接2023-1-2663.1 正规文法与有限自动机 一、正规文法、正规集、
3、正规式3、正规式(Re)例:A=ai|i=1,2,n,则,a1,a1|a5a7,a5(a3|a2)*,都是A上的ReV=0,1,则,0,1,0011,(01)*10,(01)*|1)*,等二进制字符串都是V上的Re2023-1-2673.1 正规文法与有限自动机 一、正规文法、正规集、正规式例:证明b(ab)*=(ba)*b证明:L(b(ab)*)=b,bab,babab,L(ba)*b)=b,bab,babab,由于正规集的前n项相同可知它们的正规集是相等的 正规式 b(ab)*=(ba)*b2023-1-2683.1 正规文法与有限自动机 一、正规文法、正规集、正规式定理1:令,是Re,则
4、(1)+=+(2)+(+)=(+)+()=()(3)(+)=+(+)=+(4)=(5)(*)*=*(6)*=*=*(7)(+)*=(*+*)*=(*)*2023-1-2693.1 正规文法与有限自动机 一、正规文法、正规集、正规式定理2:设若、是字母表A上的正规式,且L(),则:=|当且仅当=*=|当且仅当=*2023-1-26103.1 正规文法与有限自动机 一、正规文法、正规集、正规式4、如何由正规文法得到对应的正规式?1)由正规文法G的各个产生式写出对应的正规方程式,得到联立方程组 2)把方程组中的非终结符当作变元 3)求此正规式方程组的解,得到关于开始符号S的解:S=,VT*,就是所求
5、正规式。2023-1-26113.1 正规文法与有限自动机例:已知正规文法G1的产生式,求出它所定义的正规式。产生式为:SaS|aB BbB|bA AcA|c 解:由产生式写出对应的联立方程组:SaS|aB(1)BbB|bA(2)AcA|c(3)运用定理2求解(1)(2)(3):2023-1-26123.1 正规文法与有限自动机 二、有限自动机(FA:Finite Automata)1、说明:有限自动机是具有离散输入输出系统的数学模型。它具有有限有限数目的内部状态,系统可以根据当前所处的状态和面临的输入字符决定系统的后继行为。其当前状态概括了过去输入处理的信息 a b c d e 有限状态控制
6、器输入带读头2023-1-26133.1 正规文法与有限自动机 二、有限自动机电梯是典型的有限状态自动机那电梯如何描述呢?电梯的程序又如何构造呢?2023-1-26143.1 正规文法与有限自动机 二、有限自动机分别讲解2、确定有限自动机(DFA)确定有限自动机DFA是一个五元组 M(S,f,s0,Z),其中:S:有限状态集:有限字母表 f:S S上的单值映射,f(s,a)=s s0:唯一的初态,s0 S Z:终止状态集,ZS2023-1-26153.1 正规文法与有限自动机 二、有限自动机2、确定有限自动机(DFA)注解:1)用矩阵表示转换便于计算机处理,但不直观,而用状态转换图表示比较直观
7、 2)在整个状态转换图中只有一个初始状态结点,用“”射入的结点表示初始状态。可有若干终止状态(也可能没有),用双圆圈表示 3)若初始状态结点同时又是终止状态结点,则表示空串可为相应DFA识别1012023-1-26163.1 正规文法与有限自动机 例:DFA M=(0,1,2,3,a,b,f,0,3)f:f(0,a)=1 f(0,b)=2 f(1,a)3 f(1,b)2 f(2,a)=1 f(2,b)=3 f(3,a)3 f(3,b)3 输入 状态 a b 0 1 2 1 3 2 2 1 3 3 3 3 1 a a0 3 2 b b a bab2023-1-26173.1 正规文法与有限自动机
8、 例:构造一个DFA M,它接受字母表a,b,c上,以a或b开始的字符串,或以c开始但所含的a不多于一个的字符串:解:01 a bb c a2 cc b 3 ac b体现了直观性2023-1-26183.1 正规文法与有限自动机故:DFA:M=(0,1,2,3,a,b,c,f,0,1,2,3)其中:f:f(0,a)=1 f(0,b)=1 f(0,c)=1 f(1,a)=1 f(1,b)=1 f(1,c)=1 f(2,a)=3 f(2,b)=2 f(2,c)=2 f(3,b)=3 f(3,c)=32023-1-26193.1 正规文法与有限自动机 二、有限自动机2、确定有限自动机(DFA)一步操
9、作:每读一个字符,状态就向前进至下一状态。记为:“”K 表示自动机做了K步动作*表示自动机做了0步动作或0步以上动作+表示自动机做了1步动作或1步以上动作2023-1-26203.1 正规文法与有限自动机 二、有限自动机2、确定有限自动机(DFA)DFA识别字符串:串*为 DFA M=(S,f,s0,Z)所识别,当且仅当(s0,)*(s,),且s Z 与文法中的S*类似 能被DFA M所接受的字符串的集合,称为自动机M所能识别的语言,记为L(M)不能被DFA识别的两种情形:(s0,)*(s,),且s Z 在读过程中出现不存在的映射,使自动机无法继续动作2023-1-26213.1 正规文法与有
10、限自动机S0S1S2S311110000板书”110101”、”11100”的识别过程例2023-1-2622作业2023-1-26233.1 正规文法与有限自动机 构造一个DFA,使它识别0,1上以00结尾的字符串。(国防科技大学考博题)2023-1-26243.1 正规文法与有限自动机 二、有限自动机3、不确定有限自动机(NFA)定义:不确定有限自动机是一个五元式M=(S,f,S0,Z)其中:S:有限状态集(同DFA):有限字母表(同DFA)f:S2S(S的子集)上的映射 S0:非空的初态集,S0 S(与DFA的区别)Z:终止状态集,ZS,可为空集 注:“不确定”指后继状态可有多个 DFA
11、是NFA的特例2023-1-26253.1 正规文法与有限自动机 例:设NFA M(q0,q1,0,1,f,q0,q1)f映射为:字符状态01q0 q0 q1q1 q0,q1 q0q0q111000f(q1,0)=q0,q1f(q0,0100)=?2023-1-26263.1 正规文法与有限自动机 二、有限自动机3、不确定有限自动机(NFA)不同自动机FA M,M之间的等价问题:若它们识别的语言相同,L(M)=L(M)2023-1-26273.1 正规文法与有限自动机 二、有限自动机4、NFADFA(NFA的确定化)重点内容 子集法 实质:f(q1,0)=q0,q1=f(q1,0)=q0,q1
12、=f(s0,0)=s1 转化理论 设L是由一NFA接受的正规集,则存在一个DFA接受L2023-1-26283.1 正规文法与有限自动机 二、有限自动机算法:NFA M=(S,f,S0,Z)DFA M=(Q,I0,F)1.取I0=S0 2.若状态集Q中有状态Ii=s0,s1,sj,skS,0 kj;而且M机中有f(s0,s1,sj,a)=f(s0,a)f(s1,a)f(sj,a)=s0,s1,st=It,若It不在Q中,则将It加入Q。3.重复第(2)步,直至Q中没有新的状态加入 4.取终态F=I|I Q,且I Z 2023-1-26293.1 正规文法与有限自动机 例:解:列表将NFA确定化
13、为DFA:Q01I0=q0I0=q0I1=q1I1=q1I2=q0,q1I0=q0I2=q0,q1I2=q0,q1I2=q0,q12023-1-26303.1 正规文法与有限自动机01I0I0I1 I1 I2I0I2I2I2F=I1,I2,所得DFA的状态转换图:I0I111000I212023-1-26313.1 正规文法与有限自动机 二、有限自动机4、NFADFA(NFA的确定化)以P52 3-4为例强化理解 解:Q01I0=SI1=A,CI2=B,CI1=A,CI3=A,C,ZI2=B,CI2=B,CI1=A,CI4=B,C,ZI3=A,C,ZI3=A,C,ZI4=B,C,ZI4=B,C
14、,ZI3=A,C,ZI4=B,C,Z2023-1-26323.1 正规文法与有限自动机I0I1I2I3I401010101012023-1-26333.1 正规文法与有限自动机5.Re=DFA 两核心理论(关系定理):定理3:上的NFA M所能识别的语言L(M)可以用上的正规式Re来表示 对上的NFA M,可构造一个正规式,使得L()=L(M)定理4:上任何正规式,存在DFA M使得L(M)=L()即:由 正规式可以构造一个DFA M,使得L(M)L()构造步骤:Re=NFA=DFA 构造证明上述两定理2023-1-26345.Re=DFA 构造的步骤:Re=NFA=DFA2023-1-263
展开阅读全文