LIWensheng,SCST,BUPT第3章词法分析基础知识:PASCAL、C语言、正规表达式正规文法、有限自动机知识点:词法分析器的作用、地位记号、模式词法分析器的状态转换图WenshengLiBUPT@20082/76词法分析简介3.1词法分析程序与语法分析程序的关系3.2词法分析程序的输入与输出3.3记号的描述和识别3.4词法分析程序的设计与实现3.5软件工具LEX小结WenshengLiBUPT@20083/76简介词法分析任务由词法分析程序完成本章内容安排讨论用手工方式设计并实现词法分析程序的方法和步骤–词法分析程序的作用–词法分析程序的地位–源程序的输入与词法分析程序的输出–单词符号的描述及识别–词法分析程序的设计与实现词法分析程序自动生成工具LEX简介WenshengLiBUPT@20084/76词法分析程序的作用词法分析程序的作用:扫描源程序字符流按照源语言的词法规则识别出各类单词符号产生用于语法分析的记号序列词法检查*创建符号表*把识别出来的标识符插入符号表中与用户接口的一些任务:–跳过源程序中的注释和空白–把错误信息和源程序联系起来WenshengLiBUPT@20085/763.1词法分析程序与语法分析程序的关系词法分析程序与语法分析程序之间的三种关系–词法分析程序作为独立的一遍–词法分析程序作为语法分析程序的子程序–词法分析程序与语法分析程序作为协同程序分离词法分析程序的好处WenshengLiBUPT@20086/76词法分析程序作为独立的一遍输出放入一个中间文件磁盘文件内存文件字符串源程序字符词法分析程序记号记号流源程序WenshengLiBUPT@20087/76词法分析程序作为语法分析程序的子程序避免了中间文件省去了取送符号的工作有利于提高编译程序的效率语法分析程序词法分析程序取下一记号字符串源程序字符记号符号表WenshengLiBUPT@20088/76词法分析程序与语法分析程序作为协同程序协同程序:如果两个或两个以上的程序,它们之间交叉地执行,这些程序称为协同程序。词法分析程序与语法分析程序在同一遍中,以生产者和消费者的关系同步运行。P1P2唤醒P2唤醒P1唤醒P2唤醒P1WenshengLiBUPT@20089/76分离词法分析程序的好处可以简化设计–词法程序很容易识别并去除空格、注释,使语法分析程序致力于语法分析,结构清晰,易于实现。可以改进编译程序的效率–利用专门的读字符和处理记号的技术构造更有效的词法分析程序。可以加强编译程序的可移植性–在词法分析程序中处理特殊的或非标准的符号。WenshengLiBUPT@200810/763.2词法分析程序的输入与输出一、词...