编译原理之有限自动机_第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)* 请画出它的状态转换图 0 5 1 6 2 4 8 3 7 return(relop, LE) return(relop, NE) ret

2、urn(relop, LT) return(relop, GE) return(relop, GT) return(relop, EQ) 开始开始 = = * * other other 91011 开始开始 letterother * letter或或digit return(install_id( ) id letter (letter | digit )* 开始开始 19 12 131415161718 digit digit digit digit digit digit other . E+/ E digit other other return( install_num( ) )

3、* num digit+ (. .digit+)? (E (+ | )? digit+)? delim blank | tab | newline ws delim+ 21 22 开始开始delimother * delim 20 正规式正规式状态转换图状态转换图 识别器:是一个程序,取串x作为输入,当 x是语言的句子时,它回答“是”,否则回 答“不是”。 状态转换图(有限自动机)识别器 确定/不确定有限自动机时空权衡问题 确定有限自动机:快,空间大 12 开始开始a 0 a b b 12 开始开始a 0 a b b 12 开始开始 a 0 a b b 3 4 12 开始开始a 0 a b b

4、 a b 1 9 开始开始 0 a b ab 678 23 45 1 9 开始开始 0 a b ab 678 23 45 1 9 开始开始 0 a b ab 678 23 45 1 9 开始开始 0 a b ab 678 23 45 1 9 开始开始 0 a b ab 678 23 45 1 9 开始开始 0 a b ab 678 23 45 1 9 开始开始 0 a b ab 678 23 45 1 9 开始开始 0 a b ab 678 23 45 1 9 开始开始 0 a b ab 678 23 45 1 9 开始开始 0 a b ab 678 23 45 1 9 开始开始 0 a b

5、ab 678 23 45 BD 开始开始a A a b b a b C b a 1 9 开始开始 0 a b ab 678 23 45 _不是NFA的成分.(北航2000硕士研究生入学考题) A.有穷字母表 B.初始状态集合 C.终止状态集合 D.有限状 态集合 词法分析器的输入是_. A.单词符号 B.源程序 C.语法单位 D.目标程序 正规式M1和M2 等价是指_ AM1和M2 的状态数相等. BM1和M2的有向弧条数相等. CM1和M2所表示的语言集相等. DM1和M2的有向弧条数与状态数相等. 设=0,1,则上所有以1开头,后跟至少1个010的字符 的集合对应的正规式为_. A.1(0

6、10)* B. 1(010)+ C. (010)*1 D. (010)+ 1 2.3.3 NFA到到DFA的变换(方法的变换(方法2) 子集构造法子集构造法 1、DFA的一个状态是的一个状态是NFA的一个状态集合的一个状态集合 2、读了输入、读了输入a1 a2 an后后, NFA能到达的所有状态:能到达的所有状态:s1, s2, , sk,则则 DFA到达状态到达状态s1, s2, , sk 1 2 a 开始开始 0 a b b00, 1 a 2.3 有 限 自 动 机 2.3.3 NFA到到DFA的变换的变换 子集构造法子集构造法 1、DFA的一个状态是的一个状态是NFA的一个状态集合的一个

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

8、00, 1 a b a 2.3 有 限 自 动 机 2.3.3 NFA到到DFA的变换的变换 子集构造法子集构造法 1、DFA的一个状态是的一个状态是NFA的一个状态集合的一个状态集合 2、读了输入、读了输入a1 a2 an后后, NFA能到达的所有状态:能到达的所有状态:s1, s2, , sk,则则 DFA到达状态到达状态s1, s2, , sk 1 2 a 开始开始 0 a b b00, 1 a b a 0, 2 b 2.3 有 限 自 动 机 2.3.3 NFA到到DFA的变换的变换 子集构造法子集构造法 1、DFA的一个状态是的一个状态是NFA的一个状态集合的一个状态集合 2、读了输

9、入、读了输入a1 a2 an后后, NFA能到达的所有状态:能到达的所有状态:s1, s2, , sk,则则 DFA到达状态到达状态s1, s2, , sk 1 2 a 开始开始 0 a b b00, 1 a b a 0, 2 b 2.3 有 限 自 动 机 a b BD 开始开始a A a b b a b C b a 1 9 开始开始 0 a b ab 678 23 45 BD 开始开始a A a b b a b C b a 12 开始开始a 0 a b b a b 1 9 开始开始 0 a b ab 678 23 45 BD 开始开始a A a b b a b C b a 12 开始开始a

10、 0 a b b a b 1 9 开始开始 0 a b ab 678 23 45 12 开始开始a 0 a b b DFA化简的途径 根据状态是否可以区分,将状态划分成若干个 集合,每个集合内的状态之间都不可区分,而 任意两个集合中的元素都是可以互相区分的。 依据原始的DFA,在合并后的状态基础上,建 立新的状态转换关系。 BD 开始开始a A a b b a a, b C b a E b BD 开始开始a A a b b a b C b a BD 开始开始a A a b b a b C b a BD 开始开始a A a b b a b C b a BD 开始开始a A a b b a b C

11、 b a 12 开始开始a 0 a b b a b 正规式正规式状态转换图状态转换图 i 开始开始 识别正规式识别正规式 的的NFA a fif 开始开始 识别正规式识别正规式a的的NFA f i 开始开始 识别正规式识别正规式s | t的的NFA N (s) N (t) i N (s) f 开始开始 识别正规式识别正规式st 的的NFA N (t) N (s) f 开始开始 识别正规式识别正规式s* 的的NFA i 1 9 开始开始 0 a b ab 678 23 45 r9 r7 r8 r4 r3 r5 r6 * )( r2r1 a | b a b 1 9 开始开始 0 a b ab 67

12、8 23 45 r9 r7 r8 r4 r3 r5 r6 * )( r2r1 a | b a b 1 9 开始开始 0 a b ab 678 23 45 r9 r7 r8 r4 r3 r5 r6 * )( r2r1 a | b a b 1 9 开始开始 0 a b ab 678 23 45 r9 r7 r8 r4 r3 r5 r6 * )( r2r1 a | b a b 1 9 开始开始 0 a b ab 678 23 45 r9 r7 r8 r4 r3 r5 r6 * )( r2r1 a | b a b 1 9 开始开始 0 a b ab 678 23 45 r9 r7 r8 r4 r3 r

13、5 r6 * )( r2r1 a | b a b 1 9 开始开始 0 a b ab 678 23 45 r9 r7 r8 r4 r3 r5 r6 * )( r2r1 a | b a b 1 2 开始开始a 0 a b b 1 9 开始开始 0 a b ab 678 23 45 0123 开始开始 4 0123 开始开始 4 0 0123 开始开始 4 1 0 0123 开始开始 4 1 0 0 0123 开始开始 4 1 0 0 1 0123 开始开始 4 1 0 0 1 0 0123 开始开始 4 1 0 0 1 0 1 0123 开始开始 4 1 0 0 1 0 1 0 0123 开始开始 4 1 0 0 1 0 1 0 1 0123 开始开始 4 1

温馨提示

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

评论

0/150

提交评论