西安电子科技大学编译原理.ppt_第1页
西安电子科技大学编译原理.ppt_第2页
西安电子科技大学编译原理.ppt_第3页
西安电子科技大学编译原理.ppt_第4页
西安电子科技大学编译原理.ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1 2 4 3最小化DFA 定义2 8对于任何两个状态t和s 若 从一状态出发接受输入字符串 而从另一状态出发不接受 或者从t出发和从s出发到达不同的接受状态 则称 对状态t和s是可区分的 反方向思考该定义 设想任何输入序列 对s和t均是不可区分的 则说明从s出发和从t出发 分析任何输入序列 均得到相同结果 因此 s和t可以合并成一个状态 先引入一个 可区分 的概念 正规式 NFA DFA 2 2 4 3最小化DFA 续1 算法2 6最小化DFA的状态数输入DFAD S move s0 F 输出等价的D S move s0 F D 状态数最少 方法执行如下步骤 1 初始划分 S F F 3 if new then final 且转4 else new且转2 所有的非终态 所有的终态 这里和教材不同 2 应用下述过程构造新的划分 new 令 new 需增加此行 for 的每一个组Gloop划分G G的两个状态s和t仍在同一组中的充要条件是 a move s a Gi move t a Gi Gi是 中的组用新划分的组替代中 new的G 形成新的划分 endloop 3 2 4 3最小化DFA 续2 4 在 final每个组Gi中选一个代表si 使得D中从Gi所有状态出发的状态转移在D 中均从si 出发 D中所有转向Gi中的状态转移在D 中均转向si 5 删除D 的死状态 即不是终态且对所有输入字符均转向其自身 并删除从初态不可到达的状态 D D 含有D中s0的状态组G0的代表s0 成为D 的初态 final所有含F中状态的组Gk的代表sk 构成D 的终态集F 4 2 4 3最小化DFA 续3 最小化DFA算法的主要步骤 初始划分 终态组 非终态组 利用可区分的概念 反复分裂划分中的组Gi 直到不可再分裂 由最终划分构造D 关键是选代表和修改状态转移 消除可能的死状态和不可达状态 5 2 4 3最小化DFA 续4 例2 17用算法2 6化简DFA 所有状态转移 m A a B m A b Cm B a B m B b Dm C a B m C b Cm D a B m D b E 1 初始化划分 1 ABCD E 2 根据算法中步骤2 反复分裂划分中的组 m D b E 2 ABC D E m B b D 3 AC B D E 3 3 于是 final 3 AC B D E 4 根据 final构造D 选代表 用A代表AC组 修改状态转移 6 2 4 3最小化DFA 续4 例2 17用算法2 6化简DFA 所有状态转移 m A a B m A b Cm B a B m B b Dm C a B m C b Cm D a B m D b Em E a B m E b C 1 初始化划分 1 ABCD E 2 根据算法中步骤2 反复分裂划分中的组 m D b E 2 ABC D E m B b D 3 AC B D E 3 3 于是 final 3 AC B D E 用0 1 2 3代替A B D E A A A A A 图2 8 p25 4 根据 final构造D 选代表 用A代表AC组 修改状态转移 7 从NFA构造DFA 算法2 5 子集构造法最小化DFA 算法2 6 1 用正规式描述模式2 正规式 NFA Thompson算法 算法2 2 5 从DFA构造词法分析器 模拟DFA 算法2 1 3 4 构造词法分析器的步骤 8 2 4 5由DFA构造词法分析器 表驱动型的词法分析器 其中 需要 1 有适当的数据结构存放DFA 2 修改算法2 1 适应实际输入 识别整个文件 而不是一个记号 满足最长匹配原则 对于输入序列 result a b正确的识别 id id id错误的识别 1 仅识别一个 id result 2 不满足最长匹配 idid r或re或res 9 直接编码的词法分析器 在表驱动的词法分析器中 DFA是数据 用于指导驱动器 模拟DFA的代码 对输入序列的分析 直接编码的词法分析器 将DFA和识别输入序列的过程合并在一起 直接用程序代码模拟DFA识别输入序列的过程 问题 如何用程序模拟DFA识别输入序列的过程 即如何用程序模拟DFA的状态和它的状态转移 1 状态和状态转移与语句的对应关系 初态 程序的开始 存于一个状态变量 当前状态的判定 分支 case if 状态转移 根据输入修改状态变量 case if 扫描输入串 循环语句 loop 返回时 满足最长匹配原则 这里介绍不同于教材的方法 10 直接编码的词法分析器 续1 2 识别 a b abb的程序框架 voidmain charbuf aba ptr buf intstate 0 for ptr ptr 扫描输入if ptr a 11 两类分析器的比较 12 2 5本章小结 词法分析的两个重要环节 规定所有合法输入 识别合法输入重要内容 记号 模式与单词记号的说明 模式的形式化描述 正规式记号的识别 有限自动机NFA 与正规式有对应关系 易于构造 DFA 确定性便于记号识别 不易构造 记号识别的方法 模拟DFA 算法2 1模拟NFA 特殊情况下 算法2 3需要动态

温馨提示

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

评论

0/150

提交评论