编译原理与技术.ppt
《编译原理与技术.ppt》由会员分享,可在线阅读,更多相关《编译原理与技术.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译原理与技术词法分析(2)12/28/20221编译原理与技术讲义有限自动机有限自动机(Finite AutomataFA)是种更一般化的状态转换图。分为NFA和DFA。词法分析器自动生成:正规式 NFA DFA 词法程序 非确定有限自动机确定的有限自动机12/28/20222编译原理与技术讲义非确定有限自动机NFANFA Mn 是一个五元组 Mn=(,S,S0,F,),其中:有限字母表(输入符号集)S有限状态集S0非空初态集合,S0SF终态集合,F S 状态转换函数,状态转换函数,S x S x *2 2S S12/28/20223编译原理与技术讲义确定的有限自动机DFADFA Md 是一
2、个五元组 Md=(,S,S0,F,),其中:,S,S0,F 同NFA中的定义,而定义如下:S x S x S S ,为一单值映射函数。为一单值映射函数。12/28/20224编译原理与技术讲义有限自动机的表示1)状态转换图开始状态一般状态终态s(s,a)=ttas(s,)=tt12/28/20225编译原理与技术讲义有限自动机的表示2)状态转换矩阵(表)*状态(集)abSiSjSj(Si,a)=Sj12/28/20226编译原理与技术讲义有限自动机的表示e.g.7 NFA Mn=(,S,S0,F,),其中:=0,1 ,S=S0,S1,S2,S3,S4,F=S2,S4(S0,0)=S0,S3 (
3、S0,1)=S0,S1 (S1,0)=(S1,1)=S2 (S2,0)=S2 (S2,1)=S2 (S3,0)=S4 (S3,1)=(S4,0)=S4 (S4,1)=S4 12/28/20227编译原理与技术讲义有限自动机的表示e.g.7 中NFA的状态转换图如下:S0S3S10,1000,1110,1S2S412/28/20228编译原理与技术讲义有限自动机的表示e.g.7 中NFA的状态转换矩阵(表)如下:*状态(集)01S0S0,S3 S0,S1 S1S2S2S2S2S3S4S4S4S412/28/20229编译原理与技术讲义有限自动机识别的语言e.g.8 下面FA识别(接受)的串是什么
4、?S0S1S201FA识别(接受)串*,如果存在一个从FA的初态到某个终态的(状态)转换路径,该路径上所有标记的字符依次连接为。FA M 所识别的语言 L(M)L(M)=|M 识别*12/28/202210编译原理与技术讲义有限自动机识别的语言e.g.9 下面DFA M识别的语言L(M)是什么?S2S101S0S3111000S1012/28/202211编译原理与技术讲义有限自动机识别的语言e.g.9 L(M)=含偶数个0和偶数个1的0,1串S2S101S0S3111000S2S1S0S3偶数个“0”与偶数个“1”的0,1串偶数个“0”与奇数个“1”的0,1串奇数个“0”与偶数个“1”的0,
5、1串奇数个“0”与奇数个“1”的0,1串12/28/202212编译原理与技术讲义有限自动机识别的语言e.g.10 下面DFA M识别的语言L(M)是什么?S2S1S001010112/28/202213编译原理与技术讲义有限自动机识别的语言e.g.10 L(M)=能被“3”整除的二进制数(串)S2S1S0010101S2S1S0能被3整除被3整除余1被3整除余212/28/202214编译原理与技术讲义有限自动机识别的语言e.g.10 L(M)=能被“3”整除的二进制数(串)二进制串 10010,即十进制18的识别过程:S2S1S001010输入串 1001012/28/202215编译原理
6、与技术讲义比较 DFA 和 NFA(1)DFANFA:S x S x S S :S x S x 2 2S S 没有 转换有 转换对*,DFA的“识别”路径唯一且完全由确定对*的“识别”路径可能存在多条不同的路径对于正规式R,均有DFA Md和NFA Mn,使得L(Md)=L(Mn)=L(R),即两者识别正规语言能力相同(等价)12/28/202216编译原理与技术讲义比较 DFA 和 NFA(2)DFANFA容易实现当输入串结束时(或不存在相应状态转换)时,若当前状态为终态即为接受“已读入”的串,否则拒绝。由于面临同样输入符号存在多重状态转换或存在转换的选择,实现较为复杂。一般地,NFA接受串
7、如果它在读完串后“能够能够”到达某终态。识别相同正规集的DFA和NFA:DFA的规模(在状态数和状态转换上)一般比相应的NFA复杂(可以达到指数级)12/28/202217编译原理与技术讲义比较 DFA 和 NFA(3)e.g.11 识别正规式(0|1)*01的DFA和NFAS2S1S00011NFA:S2S1S0101100DFA:12/28/202218编译原理与技术讲义对于上正规式R,存在一个NFA M,使得L(M)=L(R),反之亦然。Thopmson 方法:R=R=R=a正规式与有限自动机S0S1S0S1S0a只引入初态S0和终态S1,他们之间无状态转换12/28/202219编译原
8、理与技术讲义正规式与有限自动机R=R1|R2 (1)SifiSjfjR1对应的NFA,Si为初态,fi为终态R2对应的NFA,Sj为初态,fj为终态12/28/202220编译原理与技术讲义正规式与有限自动机R=R1|R2 (2)S0SifiSjfj引入新的初态S0和(S0,)=Si和(S0,)=Sj12/28/202221编译原理与技术讲义正规式与有限自动机R=R1|R2(3)S0f0SifiSjfj引入新的终态f0和(fi,)=f0和(fj,)=f012/28/202222编译原理与技术讲义正规式与有限自动机R=R1 R2(1)SifiSjfjR1对应的NFA,Si为初态,fi为终态R2对
9、应的NFA,Sj为初态,fj为终态12/28/202223编译原理与技术讲义正规式与有限自动机R=R1 R2(2)SifiSjfjS0引入新的初态S0和(S0,)=Si12/28/202224编译原理与技术讲义正规式与有限自动机R=R1 R2(3)SifiSjfjS0引入新的状态转换(fi,)=Sj12/28/202225编译原理与技术讲义正规式与有限自动机R=R1 R2(4)SifiSjfjS0引入新的终态f0和状态转换(fj,)=f0f012/28/202226编译原理与技术讲义正规式与有限自动机R=R1*(1)SifiR1对应的NFA,Si为初态,fi为终态12/28/202227编译原
10、理与技术讲义正规式与有限自动机R=R1*(2)SifiS0引入新的初态S0和(S0,)=Si12/28/202228编译原理与技术讲义正规式与有限自动机R=R1*(3)SifiS0引入新的终态f0和状态转换(fi,)=f0f012/28/202229编译原理与技术讲义正规式与有限自动机R=R1*(4)SifiS0引入新的状态转换(fi,)=Sif012/28/202230编译原理与技术讲义正规式与有限自动机R=R1*(5)SifiS0引入新的状态转换(S0,)=f0f012/28/202231编译原理与技术讲义正规式与有限自动机R=(R1)SifiR1对应的NFA,它也是(R1)对应的NFA1
11、2/28/202232编译原理与技术讲义e.g.12 构造(0|1)*01的对应的FA。(1)0 0 1 1 0|1 0112/28/202233编译原理与技术讲义e.g.12 构造(0|1)*01的对应的FA。(2)(0|1)同 0|1(0|1)*0112/28/202234编译原理与技术讲义e.g.12 构造(0|1)*01的对应的FA。(3)(0|1)*001012/28/202235编译原理与技术讲义e.g.12 构造(0|1)*01的对应的FA。(4)(0|1)*0 1001112/28/202236编译原理与技术讲义e.g.12 构造(0|1)*01的对应的FA。(5)R1R2|R
12、301()R4*R5R7R9R60R8112/28/202237编译原理与技术讲义Thompson方法所构造的NFA的状态数和转换较多。可以采用下面方法减少之:R=R1|R2R1R2 R=R1 R2R1R2 R=R1*R1 RRR112/28/202238编译原理与技术讲义e.g.13 构造(0|1)*01的对应的FA简化版(0|1)*0 11)(0|1)*012)(0|1)*13)014)00|112/28/202239编译原理与技术讲义e.g.13 构造(0|1)*01的对应的FA简化版14)00|115)00112/28/202240编译原理与技术讲义NFA的确定化(转换到DFA)子集构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 技术
限制150内