下载此文档

郑州大学编译原理课件第3章.ppt


文档分类:IT计算机 | 页数:约78页 举报非法文档有奖
1/78
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/78 下载此文档
文档列表 文档介绍
第三章第三章词法分析词法分析l词法分析的任务:从左到右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成单词符号串的中间程序。l执行词法分析的程序称为词法分析器。l本章讨论词法分析器的构造。§§ 对于词法分析器的要求对于词法分析器的要求●词法分析器的功能输入源程序,输出单词符号。单词符号是一个程序语言的基本语法符号。●程序语言的单词符号分类关键字(for while) 标识符( x1 xname)运算符( + * ) 界符( { } ;)常数( 23‘abcdf’)功能和输出形式单词符号单词符号一个程序语言的关键字、运算符和界符都是确定的。但对于标识符和常数的使用是灵活的。●词法分析器所输出的单词符号形式:(单词种别,属性值)单词种别通常用整数编码。属性值是反映单词符号特性或特征的值。本书假定●关键字、运算符和界符都是一符一种;●标识符为一种;●常数按类型分种。例如:的代码段的代码段while (x>=y) x--;< while , - >< ( , - >< id , 指向x的指针>< >= , - >< id , 指向y的指针>< ) , - >< id , 指向x的指针>< -- , - >< ; , - >经词法分析器处理后,输出如下序列:词法分析器作为一个独立子程序词法分析器作为一个独立子程序●安排词法分析器为一个独立阶段的好处:它可使整个编译程序的结构更简单、清晰和条理化。因为词法分析比语法分析要简单得多,可用更有效的特殊方法和工具进行处理。●是否也把词法分析器作为独立一遍呢?不尽然。常常是作为一个子程序由语法分析器调用。(P38)§ 词法分析器的设计常常按词法分析的任务和作为一个独立子程序来考虑它的设计。、预处理词法分析器的第一步工作是输入源程序文本到一个输入缓冲区中。这样,词法分析的工作可以直接在这个缓冲区中进行。在许多情况下,常常把输入串预处理一下,目的是为了方便单词符号的识别。预处理的工作是将源程序中多余的空白符、跳格符、回车符、换行符等编辑性字符以及注释部分剔除掉,并将结果存入扫描缓冲区中。预处理子程序预处理子程序预处理子程序就是完成上述任务的。每当词法分析器调用它时,它就处理一串确定长度的输入字符,并装入扫描缓冲区中。预处理子程序词法分析器单词符号输入缓冲区扫描缓冲区源程序扫描缓冲区扫描缓冲区词法分析器对扫描缓冲区进行扫描时,一般用两个指示器(P1 , P2):一个指向当前正在识别的单词的开始位置,另一个用于向前搜索以寻找单词的终点。P1 P2120个字符120个字符假设|标识符|〈=120个字符|常数| 〈=120个字符… while(x>100)…单词符号的识别单词符号的识别------超前搜索超前搜索?关键字的识别例如:(1) do99k=1,10do 99 k=1,10 (2) do99k= 是变量?标识符的识别?常数的识别例如:(1) -8 5-8 (2) 5=M?算符和界符的识别例如:++ , += , >=状态转换图状态转换图状态转换图是设计词法分析程序的一个好途径。转换图是一张有限的有向图。结点代表状态,用圆圈表示,状态之间用箭弧连接。箭弧上的标记代表在射出结点状态下可能出现的输入字符或字符类。一张转换图只能含有有限个状态,其中一个被认为是初态,可以有一个或多个终态(双圈)。例如:(P41)一个状态转换图可用于识别(或接受)一定的字符串。

郑州大学编译原理课件第3章 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息