陈火旺 编译原理 chapter3.ppt

陈火旺 编译原理 chapter3.ppt

ID:48052460

大小:992.50 KB

页数:103页

时间:2020-01-12

陈火旺 编译原理 chapter3.ppt_第1页
陈火旺 编译原理 chapter3.ppt_第2页
陈火旺 编译原理 chapter3.ppt_第3页
陈火旺 编译原理 chapter3.ppt_第4页
陈火旺 编译原理 chapter3.ppt_第5页
资源描述:

《陈火旺 编译原理 chapter3.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章词法分析词法分析的主要任务:自左至右逐个字符地对源程序进行扫描,产生一个个单词符号,把作为字符串的源程序改造为单词符号串的中间程序。P1©张捷§3.1对于词法分析器的要求3.1.1词法分析器的功能和输出形式(1)词法分析器的功能:输入源程序,输出单词符号把构成源程序的字符串转换成语义上关联的单词符号的序列5种单词符号:⑴关键字:程序语言定义的具有固定意义的标识符。⑵标识符:表示各种名字。⑶常数:整型、实型、布尔型、文字型。⑷运算符:如+、-、*、/⑸界符:如,;()/**/等P2©张捷(2)单词符号:一个程序语言的基本语法符号,输出的单词符号常表示成二元式:(单词种

2、别,单词符号属性值)单词种别标识符一种常数一种,整数、实数、布尔用整数编码关键字全体视为一种或一字一种算符一符一种界符一符一种单词符号属性值如果一个种别只含一个单词符号,那么,对于这个单词符号,种别编码就完全代表它自身了。若一个种别含有多个单词符号,那么,对于它的每个单词符号,除了给出种别编码之外,还应给出有关单词符号的属性信息。单词符号属性是指单词符号的特性或特征,属性值则是反应特性或特征的值。P3©张捷例如:某个标识符常将存放其相关信息的符号表项指针作为其属性值;某个常数则将存放它的常数表项的指针作为其属性值。P4©张捷例如:C++代码段:while(i>=j)i--

3、;经过词法分析器处理后转换为这样的单词符号序列:<(,-><>=,-><),-><--,-><;,->P5©张捷6【课堂练习】写出下面程序的单词符号序列while(*p!=''){p++;}while(<(,->*<*,->p!='')<),->{<{,->p++<++,->;<;,->}<},->P6©张捷3.1.2词法分析器作为一个独立子程序

4、在实现编译程序时,常将词法分析程序从语法分析中独立出来,作为一个独立的阶段。这样做有什么好处?可使编译程序结构更简洁,清晰和条理化可用更有效的特殊方法和工具进行处理/改进编译程序的效率有利于集中力量考虑其他枝节问题/增强编译程序的可移植性但不一定是独立的一遍(如果独立一遍则要保存源程序的内码形式),可设计一个独立的子程序(语法分析器调用之)。P7©张捷§3.2词法分析器的设计3.2.1输入、预处理输入缓冲区(输入串存放其中)。预处理(注释、没有意义的空格、跳格、回车、换行等)预处理子程序:当词法分析器调用时处理一串确定长度的输入字符并装入扫描缓冲区。词法分析器对扫描缓冲区

5、扫描时采用2个指示器:一个指向当前单词的开始位置(起点指示器);另一个用于向前搜索以寻找单词的终点(搜索指示器)。P8©张捷扫描缓冲区的设计:起点指示器搜索指示器输入缓冲区预处理子程序扫描器扫描缓冲区输入单词符号列表图3.1词法分析器P9©张捷二、扫描器——词法分析的主要部分扫描器的构造原理设置二个指示器(起点指示器、搜索指示器),一个可以互补使用的一分为二的扫描缓冲区,一个指向当前正在识别的单词的开始位置(指向新单词的首字符),另一个用于向前搜索以寻找单词的终点。扫描缓冲区总长度为2×120个字符,扫描器单词长度的要求是单词长度≤1/2扫描缓冲区长度。P10©张捷2.扫

6、描器的工作原理调用预处理子程序,把120个输入字符装进扫描缓冲区的某半区,搜索指针从起点指针开始向前寻找单词的终点,若在该半区内查找到单词的终点,便输出二元式,再把起点指针移到此处的后一个字符,继续搜索下一个单词,如果在搜索到该半区的边缘,尚未到达单词终点,那么就调用预处理子程序,把后续的120个字符装进另半区,继续搜索。P11©张捷3.2.2单词符号的识别:超前搜索超前搜索:识别的单词符号的简单方法关键字的识别:象FORTRAN这样的语言,对关键字不加保护,关键字的识别较麻烦。例如:FORTRAN中的如下代码1DO99K=1,102IF(5.EQ.M)I=103DO99

7、K=1.104IF(5)=551、2是DO和IF语句,3、4是赋值语句。P12©张捷标识符的识别:后跟算符或界符;常数的识别:算术常数、布尔常数、字符串;算符和界符的识别:对于复合运算符,超前搜索;了解某个源语言的词法规则就可以为它设计一个词法分析器了。设计词法分析器的一种非常好的工具就是状态转换图。P13©张捷三、状态转换图-设计词法分析器的好工具(好途径)1.转换图是一张有限方向图结点代表状态,用圆圈表示箭弧状态之间的连接,箭弧上的标记(字符)代表在射出结点状态下可能出现的输入字符或字符类。初态识别出某一类字符串的开始,初

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。