07-第三章有限自动机与词法器探究.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.2 确定有穷自动机(续) 接受偶数个0 3.2 确定有穷自动机(续) 思考与练习 奇数个0? 偶数个0和偶数个1? 3.2 确定有穷自动机(续) 确定有穷自动机状态表 状态转换可以使用函数来表示 转换函数Φ:SS X Σ →SS; 状态转换可以使用图形来表示 状态转换图 状态转换还可以使用表来表示 3.2 确定有穷自动机(续) 状态转换表示例 0 1 S0 * S1 S2 S1 S0 * S3 * S2 S3 * S0 * S3 * S2 S1 1 确定有穷自动机(续) 状态表说明 主要状态:第一列 输入字符:第一行 终结状态:带有*号 每个单元的状态表示某个状态接受某个字符后的状态 状态表便于机器处理 3.2 确定有穷自动机(续) 有向图与状态表的区别 DFA的两种表示形式 有向图: 直观 易于理解 状态表 便于计算和处理 便于计算机表示 总结 内容 词法分析功能 确定有穷自动机 重点 确定有穷自动机的概念 作业 P60 3.1 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * 第三章 有穷自动机与词法分析器 任课教师 王养廷 主要内容 词法分析 有穷自动机 3.1 词法分析 词法分析功能 源程序文件 ASCII编码 文本文件 例如:“A1”保存为4131 单词 源程序的语法成分 例如:if, (, … 3.1 词法分析 词法分析功能 Token 单词的内部表示,例如: 程序表示 ASCII码 Token.class Token.seman If 6966 01 6966 then 7468656e 02 7468656e begin 626569676e 03 626569676e end 656e64 04 656e64 + 2b 05 2b ( 28 06 28 3.1 词法分析 词法分析功能 标识符 用户定义的符号 作为一类来处理 常量 可以作为一类或多类 保留字 用来分隔语法成分 一般每个一类 与保留字的区别(算法设计?) 3.1 词法分析 词法分析功能 词法分析输入:源程序 词法分析输出:Token序列 词法分析功能:把源程序转换成Token序列 词法分析器种类 作为语法分析的一个子程序,每次产生一个Token 作为编译器独立的一遍、生成Token序列 3.1 词法分析 词法分析功能 单词识别 从字符串中分离出单个单词 主要的单词 标识符 正整数 保留字 符号 …… 3.1 词法分析 词法分析功能 词法分析复杂性,例子: DO 10 I = 1 , 100 DO 10 I = 1. 100 3.1 词法分析(续) 单词内部表示 标识符的内部表示 指针方法 其它符号的内部表示 为什么单独处理标识符 $id x1 $id ...... x1z12 ...... 3.1 词法分析(续) 保留字 什么识保留字 分析保留子的方法 保留字表,数据实现 非保留字表,程序实现 空格、制表符、换行符 它们可以作为分隔符 有的语言空格符无词法意义 例如:下面两行等价 beginx begin x 字符串中的空格需要单独处理 换行可以用于行计数 3.1 词法分析(续) 括号类配对 Pascal语言中的括号类 begin ......end record......end if......then [......] (......) {......} 检查配对 使用计数器 更准确地方法如何实现? 3.1 词法分析(续) 向前看多个字符 词法分析有时需要向前看多个字符,例如: 10 10.12 10..12 有时需要看到第一个‘.’后的字符才能确定 处理技术 沿着收到的字符倒退到终态 把回退字符集如缓冲区,以便下一次扫描 引入Token标志 例如:12.3e+q的分析 3.1 词法分析(续) 字符串空间 字符串的存储问题 一般方法 使用缓冲区记录开始地址和长度 注意检查是否有重复存储的字符串 字符编码问题 m a r t m a s k w o r d mart: 1 4 mask: 5 4 word: 9 4 3.1 词法分析(续) 词法错误校正 目的:发现更多的错误,分析继续下去 手段: 删去已读过的字符 删去已读过的第一个字符 特别注意越行字符串的处理 3.1 词法分析(续) 词法分析结束 使用程序结束标志 例如:Pascal中的end.

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档