编译原理第四章词法分析

上传人:新** 文档编号:457423874 上传时间:2023-08-04 格式:DOC 页数:33 大小:320.52KB
返回 下载 相关 举报
编译原理第四章词法分析_第1页
第1页 / 共33页
编译原理第四章词法分析_第2页
第2页 / 共33页
编译原理第四章词法分析_第3页
第3页 / 共33页
编译原理第四章词法分析_第4页
第4页 / 共33页
编译原理第四章词法分析_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《编译原理第四章词法分析》由会员分享,可在线阅读,更多相关《编译原理第四章词法分析(33页珍藏版)》请在金锄头文库上搜索。

1、第四章 词法分析课前索引 【课前思考】 词法分析程序的功能是什么? PL/0词法分析程序识别哪几种单词? 画出PL/0词法分析程序的流程图。 C语言,PASCAL语言的标识符和数的表示分别有什么规定? 编写一个程序(C的,或PASCAL的)识别C+语言的标识符。【学习目标】 明确词法分析在编译过程所处的阶段和作用。 掌握词法分析程序的手工实现方法。 理解通常的单词分类和构词规则。 会使用单词的描述和识别机制。 掌握词法分析程序的自动构造原理。【学习指南】词法分析程序是编译程序的一个构成成分,它的主要任务是扫描源程序,按构词规则识别单词,并报告发现的词法错误。词法分析也是语法分析的一部分,把词法

2、分析从语法分析中独立出来是为了使编译程序结构清晰,也是为了便于使用自动构造工具,提高编译效率。 本章首先介绍词法分析程序的功能和设计原则,然后引入正规式和其对单词的描述,接着讲述有穷自动机理论,最后给出词法分析程序的自动构造原理。【难重点】 如何设计和实现词法分析程序 正规式的定义-如何用作单词的描述工具 有穷自动机的定义和分类-如何用作单词的识别系统 正规式到有穷自动机的转换算法-词法分析程序的自动构造原理 【知识结构】词法分析是编译的第一个阶段,它的主要任务是从左至右逐个字符地对源程序进行扫描,产生一个个单词序列,用以语法分析。执行词法分析的程序称为词法分析程序或扫描程序。本章我们将讨论词

3、法分析程序的设计原则,单词的描述技术,识别机制及词法分析程序的自动构造原理。词法分析程序的主要任务:- 读源程序,产生单词符号词法分析程序的其他任务:- 滤掉空格,跳过注释、换行符- 追踪换行标志,复制出错源程序,- 宏展开, 本章要点:- 告诉你掌握词法分析程序的设计和实现的办法- 首先需要描述和刻画程序设计语言中的原子单位-单词,其次需要识别单词和执行某些相关的动作。- 描述程序设计语言的词法的机制是正则表达式,识别机制是有穷状态自动机。4.1 词法分析程序首先讨论词法分析程序与语法分析程序的接口方式词法分析程序完成的是编译第一阶段的工作。词法分析工作可以是独立的一遍,把字符流的源程序变为

4、单词序列,输出在一个中间文件上,这个文件做为语法分析程序的输入而继续编译过程。然而,更一般的情况,是将词法分析程序设计成一个子程序,每当语法分析程序需要一个单词时,则调用该子程序。词法分析程序每得到一次调用,便从源程序文件中读入一些字符,直到识别出一个单词,或说直到下一单词的第一个字符为止。这种设计方案中,词法分析程序和语法分析程序是放在同一遍里,而省掉了中间文件,象第2章介绍的PL/0编译程序那样.也是大多数编译程序采用的方案。实现词法分析(lexical analysis)的程序逐个读入源程序字符并按照构词规则切分成一系列单词。 单词是语言中具有独立意义的最小单位,包括保留字、标识符、运算

5、符、标点符号和常量等。 词法分析是编译过程中的一个阶段,在语法分析前进行 。也可以和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。词法分析程序和语法分析程序的关系f4-1-1.swf词法分析程序的主要功能是从字符流的源程序中识别单词,它要从左至右逐个字符地扫描源程序,因此它还可完成其它一些任务。比如,滤掉源程序中的注释和空白(由空格,制表或回车换行字符引起的空白);又比如,为了使编译程序能将发现的错误信息与源程序的出错位置联系起来,词法分析程序负责记录新读入的字符行的行号,以便行号与出错信息相联;再有,在支持宏处理功能的源语言中,可以由词法分析程序完成

6、其预处理等等。接着讨论词法分析程序的输出词法分析程序的功能是读入源程序,输出单词符号。单词符号是一个程序设计语言的基本语法符号。程序设计语言的单词符号一般可分成下列5种: 保留字,也称关键字,如PASCAL语言中的begin,end,if,while和var等。 标识符,用来表示各种名字,如常量名、变量名和过程名等。 常数,各种类型的常数,如25,3.1415,TRUE和ABC等。 运算符,如+,*,0)符号串集合:若集合A中的一切元素都是某字母表上的符号串,则称A为字母表上的符号串集合。两个符号串集合A和B的乘积定义如下:AB=xy|xA且yB,即AB是满足x属于A,y属于B的所有符号串xy

7、所组成的集合。例如,若A=a,b,B=c,d,则集合AB=ac,ad,bc,bd。因为对任意符号串x有x=x=x,所以有A=A=A。指定字母表之后,使用* 表示上的一切符号串(包括)组成的集合。* 称为的闭包。上的除外的所有符号串组成的集合记为+。 + 称为的正闭包。+ =* -=* =23* =2例:=a,b* =,a,b,aa,ab,ba,bb,aaa,aab,+ =a,b,aa,ab,ba,bb,aaa,aab,我们用以描述单词符号的工具是正规式。正规表达式(regular expression)是说明单词的模式(pattern)的一种重要的表示法(记号),是定义正规集的工具。 正规式也称正则表达式

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号