编译原理之有限自动机_第1页
编译原理之有限自动机_第2页
编译原理之有限自动机_第3页
编译原理之有限自动机_第4页
编译原理之有限自动机_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、源程序源程序字符流字符流词法词法单元单元词法词法记号记号非形式非形式化描述化描述形式化形式化描述描述正规式正规式字母字母串串语言语言字母表字母表名名字字词法记号的识别词法记号的识别词法记号的识别等同于对字符串的匹配过程这个匹配过程可以基于有限状态机来完成 简单的正则式d-a 正则式d-ab 正则式d-a|b正规式d-a*自动机的定义自动机的定义正规式d-a?字符a出现一次或者0次练习练习正规式d-a(a|b)*请画出它的状态转换图 051624837return(relop, LE)return(relop, NE)return(relop, LT)return(relop, GE)retur

2、n(relop, GT)return(relop, EQ)开始开始=*otherother91011开始开始letterother*letter或或digitreturn(install_id( )id letter (letter | digit )*开始开始1912131415161718digitdigitdigitdigitdigitdigitother.E+/ Edigitotherotherreturn( install_num( ) )*num digit+ (. .digit+)? (E (+ | )? digit+)? delim blank | tab | newline

3、ws delim+2122开始开始delimother*delim20正规式正规式状态转换图状态转换图识别器:是一个程序,取串x作为输入,当x是语言的句子时,它回答“是”,否则回答“不是”。状态转换图(有限自动机)识别器确定/不确定有限自动机时空权衡问题确定有限自动机:快,空间大12开始开始a0abb12开始开始a0abb12开始开始a0abb34 12开始开始a0abbab 19开始开始 0ab ab6782345 19开始开始 0ab ab6782345 19开始开始 0ab ab6782345 19开始开始 0ab ab6782345 19开始开始 0ab ab6782345 19开始开

4、始 0ab ab6782345 19开始开始 0ab ab6782345 19开始开始 0ab ab6782345 19开始开始 0ab ab6782345 19开始开始 0ab ab6782345 19开始开始 0ab ab6782345 BD开始开始aAabbabCba19开始开始 0ab ab6782345 _不是NFA的成分.(北航2000硕士研究生入学考题)A.有穷字母表 B.初始状态集合 C.终止状态集合 D.有限状态集合词法分析器的输入是_.A.单词符号 B.源程序 C.语法单位 D.目标程序正规式M1和M2 等价是指_AM1和M2 的状态数相等.BM1和M2的有向弧条数相等.C

5、M1和M2所表示的语言集相等.DM1和M2的有向弧条数与状态数相等.设=0,1,则上所有以1开头,后跟至少1个010的字符的集合对应的正规式为_.A.1(010)* B. 1(010)+ C. (010)*1 D. (010)+ 12.3.3 NFA到到DFA的变换(方法的变换(方法2) 子集构造法子集构造法1、DFA的一个状态是的一个状态是NFA的一个状态集合的一个状态集合2、读了输入、读了输入a1 a2 an后后, NFA能到达的所有状态:能到达的所有状态:s1, s2, , sk,则则 DFA到达状态到达状态s1, s2, , sk12a开始开始0abb00, 1a2.3 有 限 自 动

6、 机 2.3.3 NFA到到DFA的变换的变换 子集构造法子集构造法1、DFA的一个状态是的一个状态是NFA的一个状态集合的一个状态集合2、读了输入、读了输入a1 a2 an后后, NFA能到达的所有状态:能到达的所有状态:s1, s2, , sk,则则 DFA到达状态到达状态s1, s2, , sk12a开始开始0abb00, 1ab2.3 有 限 自 动 机 2.3.3 NFA到到DFA的变换的变换 子集构造法子集构造法1、DFA的一个状态是的一个状态是NFA的一个状态集合的一个状态集合2、读了输入、读了输入a1 a2 an后后, NFA能到达的所有状态:能到达的所有状态:s1, s2,

7、, sk,则则 DFA到达状态到达状态s1, s2, , sk12a开始开始0abb00, 1aba2.3 有 限 自 动 机 2.3.3 NFA到到DFA的变换的变换 子集构造法子集构造法1、DFA的一个状态是的一个状态是NFA的一个状态集合的一个状态集合2、读了输入、读了输入a1 a2 an后后, NFA能到达的所有状态:能到达的所有状态:s1, s2, , sk,则则 DFA到达状态到达状态s1, s2, , sk12a开始开始0abb00, 1aba0, 2b2.3 有 限 自 动 机 2.3.3 NFA到到DFA的变换的变换 子集构造法子集构造法1、DFA的一个状态是的一个状态是NF

8、A的一个状态集合的一个状态集合2、读了输入、读了输入a1 a2 an后后, NFA能到达的所有状态:能到达的所有状态:s1, s2, , sk,则则 DFA到达状态到达状态s1, s2, , sk12a开始开始0abb00, 1aba0, 2b2.3 有 限 自 动 机 abBD开始开始aAabbabCba19开始开始 0ab ab6782345 BD开始开始aAabbabCba12开始开始a0abbab19开始开始 0ab ab6782345 BD开始开始aAabbabCba12开始开始a0abbab19开始开始 0ab ab6782345 12开始开始a0abbDFA化简的途径根据状态是否

9、可以区分,将状态划分成若干个集合,每个集合内的状态之间都不可区分,而任意两个集合中的元素都是可以互相区分的。依据原始的DFA,在合并后的状态基础上,建立新的状态转换关系。BD开始开始aAabbaa, bCbaEbBD开始开始aAabbabCbaBD开始开始aAabbabCbaBD开始开始aAabbabCbaBD开始开始aAabbabCba12开始开始a0abbab正规式正规式状态转换图状态转换图i开始开始 识别正规式识别正规式 的的NFAafif开始开始识别正规式识别正规式a的的NFA fi开始开始识别正规式识别正规式s | t的的NFAN (s)N (t) iN (s)f开始开始识别正规式识

10、别正规式st 的的NFAN (t)N (s)f开始开始识别正规式识别正规式s* 的的NFAi 19开始开始 0ab ab6782345 r9r7r8r4r3r5r6*)(r2r1a|bab19开始开始 0ab ab6782345 r9r7r8r4r3r5r6*)(r2r1a|bab 19开始开始 0ab ab6782345 r9r7r8r4r3r5r6*)(r2r1a|bab19开始开始 0ab ab6782345 r9r7r8r4r3r5r6*)(r2r1a|bab19开始开始 0ab ab6782345 r9r7r8r4r3r5r6*)(r2r1a|bab19开始开始 0ab ab6782345 r9r7r8r4r3r5r6*)(r2r1a|bab19开始开始 0ab ab6782345 r9r7r8r4r3r5r6*)(r2r1a|bab12开始开始a0abb19开始开始 0ab ab6782345 0123开始开始40123开始开始400123开始开始4100123开始开始41000123开始开始410010123开始开始4100100123开始开始41001010123开始开始410010100123开始开始410010

温馨提示

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

评论

0/150

提交评论