CH03--词法分析..pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 词法分析 基础知识:PASCAL、C语言、正规表达式 正规文法、有限自动机 知识点:词法分析器的作用、地位 记号、模式 词法分析器的状态转换图 词法分析 简介 3.1 词法分析程序与语法分析程序的关系 3.2 词法分析程序的输入与输出 3.3 记号的描述和识别 3.4 词法分析程序的设计与实现 3.5 软件工具LEX 小结 简介 词法分析任务由词法分析程序完成 本章内容安排 讨论用手工方式设计并实现词法分析程序的方法和步骤 词法分析程序的作用 词法分析程序的地位 源程序的输入与词法分析程序的输出 单词符号的描述及识别 词法分析程序的设计与实现 词法分析程序自动生成工具LEX简介 词法分析程序的作用 词法分析程序的作用: 扫描源程序字符流 按照源语言的词法规则识别出各类单词符号 产生用于语法分析的记号序列 词法检查 * 创建符号表 * 把识别出来的标识符插入符号表中 与用户接口的一些任务: 跳过源程序中的注释和空白 把错误信息和源程序联系起来 3.1 词法分析程序与语法分析程序的关系 词法分析程序作为独立的一遍 输出放入一个中间文件 磁盘文件 内存文件 词法分析程序作为语法分析程序的子程序 避免了中间文件 省去了取送符号的工作 有利于提高编译程序的效率 词法分析程序与语法分析程序作为协同程序 协同程序: 如果两个或两个以上的程序,它们之间交叉地执行,这些程序称为协同程序。 分离词法分析程序的好处 可以简化设计 词法程序很容易识别并去除空格、注释,使语法分析程序致力于语法分析,结构清晰,易于实现。 可以改进编译程序的效率 利用专门的读字符和处理记号的技术构造更有效的词法分析程序。 可以加强编译程序的可移植性 在词法分析程序中处理特殊的或非标准的符号。 3.2 词法分析程序的输入与输出 一、词法分析程序的实现方法 二、设置缓冲区的必要性 三、配对缓冲区 四、词法分析程序的输出 一、词法分析程序的实现方法 利用词法分析程序自动生成器 从基于正规表达式的规范说明自动生成词法分析程序。 生成器提供用于源程序字符流读入和缓冲的若干子程序 利用传统的系统程序设计语言来编写 利用该语言所具有的输入/输出能力来处理读入操作 利用汇编语言来编写 直接管理源程序字符流的读入 二、设置缓冲区的必要性 为了得到某一个单词符号的确切性质,需要超前扫描若干个字符。 有合法的FORTRAN语句: DO 99 K=1,10 和 DO 99 K=1.10 为了区别这两个语句,必须超前扫描到等号后的第一个分界符处。 Pascal语言中:do99、:=、(* C语言中:==、/*、//、++、for_loop 三、配对缓冲区 把一个缓冲器分为相同的两半,每半各含N个字符,一般N=1KB或4KB。 测试指针的过程(1) IF (向前指针在左半区的终点) { 读入字符串,填充右半区; 向前指针前移一个位置; } ELSE IF (向前指针在右半区的终点) { 读入字符串,填充左半区; 向前指针移到缓冲区的开始位置; } ELSE 向前指针前移一个位置; 每半区带有结束标记的缓冲器 测试指针的过程(2) 向前指针前移一个位置; IF (向前指针指向 eof ) { IF (向前指针在左半区的终点) { 读入字符串,填充右半区; 向前指针前移一个位置; }; ELSE IF (向前指针在右半区的终点) { 读入字符串,填充左半区; 向前指针指向缓冲区的开始位置; }; ELSE 终止词法分析; } 四、词法分析程序的输出——记号 记号、模式和单词 记号:是指某一类单词符号的种别编码,如标识符的记号为id,数的记号为num等。 模式:是指某一类单词符号的构词规则,如标识符的模式是“由字母开头的字母数字串”。 单词:是指某一类单词符号的一个特例,如position是标识符。 记号的属性 记号的属性 词法分析程序在识别出一个记号后,要把与之有关的信息作为它的属性保留下来。 记号影响语法分析的决策,属性影响记号的翻译。 在词法分析阶段,对记号只能确定一种属性 标识符:单词在符号表中入口的指针 常数:它所表示的值 关键字:(一符一种、或一类一种) 运算符:(一符一种、或一类一种) 分界符:(一符一种、或一类一种) total:=total+

文档评论(0)

didala + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档