CH03--词法分析

CH03--词法分析

ID:37695271

大小:527.08 KB

页数:59页

时间:2019-05-29

CH03--词法分析_第1页
CH03--词法分析_第2页
CH03--词法分析_第3页
CH03--词法分析_第4页
CH03--词法分析_第5页
资源描述:

《CH03--词法分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第3章词法分析LIWensheng,SCST,BUPT基础知识:PASCAL、C语言、正规表达式正规文法、有限自动机知识点:词法分析器的作用、地位记号、模式词法分析器的状态转换图词法分析简介3.1词法分析程序与语法分析程序的关系3.2词法分析程序的输入与输出3.3记号的描述和识别3.4词法分析程序的设计与实现3.5软件工具LEX小结WenshengLiBUPT2简介¢词法分析任务由词法分析程序完成¢本章内容安排讨论用手工方式设计并实现词法分析程序的方法和步骤–词法分析程序的作用–词法分析程序的地位–源程序的输入与词法分

2、析程序的输出–单词符号的描述及识别–词法分析程序的设计与实现WenshengLiBUPT词法分析程序自动生成工具LEX简介3词法分析程序的作用¢词法分析程序的作用:扫描源程序字符流按照源语言的词法规则识别出各类单词符号产生用于语法分析的记号序列词法检查创建符号表把识别出来的标识符插入符号表中与用户接口的一些任务:WenshengLiBUPT–跳过源程序中的注释和空白–把错误信息和源程序联系起来43.1词法分析程序与语法分析程序的关系¢词法分析程序与语法分析程序之间的三种关系–词法分析程序作为独立的一遍–词法分析程序作为

3、语法分析程序的子程序–词法分析程序与语法分析程序作为协同程序WenshengLiBUPT5词法分析程序作为独立的一遍字符记号字符串源程序词法分析程序记号流源程序¢输出放入一个中间文件磁盘文件WenshengLiBUPT内存文件6词法分析程序作为语法分析程序的子程序取下一记号字符串字符词法语法源程序分析程序分析程序记号符号表¢避免了中间文件WenshengLiBUPT¢省去了取送符号的工作¢有利于提高编译程序的效率7词法分析程序与语法分析程序作为协同程序¢协同程序:P1P2如果两个或两个以上的程序,它们之间交叉地执行,这

4、些程序称为协同程唤醒P2序。唤醒P1唤醒P2唤醒P1词法分析程序与语法分析程序在同一遍中,以生产者和WenshengLiBUPT消费者的关系同步运行。8分离词法分析程序的好处¢可以简化设计–词法程序很容易识别并去除空格、注释,使语法分析程序致力于语法分析,结构清晰,易于实现。¢可以改进编译程序的效率–利用专门的读字符和处理记号的技术构造更有效的词法分析程序。¢可以加强编译程序的可移植性WenshengLiBUPT–在词法分析程序中处理特殊的或非标准的符号。93.2词法分析程序的输入与输出一、词法分析程序的实现方法二、设

5、置缓冲区的必要性三、配对缓冲区四、词法分析程序的输出WenshengLiBUPT10一、词法分析程序的实现方法¢利用词法分析程序自动生成器–从基于正规表达式的规范说明自动生成词法分析程序。–生成器提供用于源程序字符流读入和缓冲的若干子程序¢利用传统的系统程序设计语言来编写–利用该语言所具有的输入/输出能力来处理读入操作WenshengLiBUPT¢利用汇编语言来编写–直接管理源程序字符流的读入11二、设置缓冲区的必要性¢为了得到某一个单词符号的确切性质,需要超前扫描若干个字符。¢有合法的FORTRAN语句:DO99K=

6、1,10和DO99K=1.10¢为了区别这两个语句,必须超前扫描到等号后的第一个分界符处。WenshengLiBUPT¢Pascal语言中:do99、:=、(*¢C语言中:==、/*、//、++、for_loop12三、配对缓冲区¢把一个缓冲器分为相同的两半,每半各含N个字符,一般N=1KB或4KB。……ifx=ythenj:=j+2;eof…开始指针向前指针WenshengLiBUPT13测试指针的过程(1)IF(向前指针在左半区的终点){读入字符串,填充右半区;向前指针前移一个位置;}ELSEIF(向前指针在右半区

7、的终点){读入字符串,填充左半区;向前指针移到缓冲区的开始位置;}ELSE向前指针前移一个位置;WenshengLiBUPT14每半区带有结束标记的缓冲器…ifx=ytheofenj:=j+2;eofeof开始指针向前指针WenshengLiBUPT15测试指针的过程(2)向前指针前移一个位置;IF(向前指针指向eof){IF(向前指针在左半区的终点){读入字符串,填充右半区;向前指针前移一个位置;};ELSEIF(向前指针在右半区的终点){读入字符串,填充左半区;向前指针指向缓冲区的开始位置;WenshengLiBU

8、PT};ELSE终止词法分析;}16四、词法分析程序的输出——记号¢记号、模式和单词–记号:是指某一类单词符号的种别编码,如标识符的记号为id,数的记号为num等。–模式:是指某一类单词符号的构词规则,如标识符的模式是“由字母开头的字母数字串”。–单词:是指某一类单词符号的一个特例,如position是标识符。¢记号的属性Wens

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

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

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