网站大量收购独家精品文档,联系QQ:2885784924

第4单元 词法分析.pptVIP

  1. 1、本文档共147页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4单元 词法分析

第4章 词法分析 本章将讨论词法分析程序的功能和设计原则,然后引入正规式和其对单词的描述,接着讲述有穷自动机理论,最后给出词法分析程序的自动构造原理。 第3章教学内容 词法分析的任务; 单词,单词的分类,单词的输出形式 单词的描述工具: 正规文法; 正规式; 有穷自动机。 词法分析程序的自动构造原理: 正规式到有穷自动机的转换算法。 如何设计和实现词法分析程序。 一、词法分析的任务 人们要理解一篇文章或一句话,首先必须了解这篇文章或这句话的结构,文章包含哪些段落,每个段落包含哪些句子,每个句子又包含哪些词。这些过程对于人来说没有什么难度,但对于计算机来说就不同了,输入一段话或一个程序,计算机得到的只是一串符号,要对这段话或这段程序进行分析,计算机首先必须知道这段话由哪些词组成,或这个程序由哪些单词符号构成。这个过程就是词法分析。 识别单词 词法分析的任务是:从左到右逐个字符地对源程序进行扫描和分解,根据语言的词法规则识别出一个个的单词符号。 词法分析是编译的基础。执行词法分析的程序就是词法分析器(扫描器),其功能是输入源程序,输出单词符号。 词法分析程序的主要任务: 扫描源程序,识别出单词 其他任务: 滤掉空格,跳过注释、换行符 追踪换行标志,复制出错源程序, 宏展开,…… 二、与语法分析程序的接口方式 方式1:词法分析程序作为单独的程序,输入源程序,输出单词文件,提供给语法分析程序使用。 方式2:词法分析程序作为语法分析程序的子程序,提供给语法分析程序调用,不产生中间文件。 词法分析程序作为子程序 三、单词的分类 【单词】单词是语言中具有独立意义的最小语法单位,包括保留字、标识符、运算符、标点符号和常量等。 【例如】a+b是表达式,不是单词。 a,b是标识符,+是运算符,都是单词。 五类单词 程序设计语言的单词符号一般可分成下列5种: ①关键字(基本字,保留字):具有固定意义的标识符,如PASCAL语言中的begin,end,if和while等。 ②标识符:用来表示各种名字,如常量名、变量名和过程名等。 ③ 常数:各种类型的常数,如25,3.1415,TRUE和“ABC”等。 ④ 运算符:如+,*,=等。 ⑤ 界符:如逗点,分号,括号等。 单词的输出形式 二元组表示:(单词种别,单词自身的值)。 示例 单词的种别可以用整数编码表示,假如保留字编码为1,标识符为2,常数为3,运算符为4,界符为5,程序段 if y= =5 x=y+100;在经词法分析器扫描后输出的单词符号和它们的输出表示如下: - 保留字if (1,‘if’) - 标识符y (2,‘y’) - 等号= = (4,‘= =’) - 常数5 (3,‘5’) - 标识符x (2,‘x’) - 赋值号= (4,‘=’) - 标识符 y (2,‘y’) - 加号+ (4,‘+’) - 常数100 (3,‘100’) - 分号; (5,;)   单词种别的编码方案 单词的种别表示单词的种类,它是语法分析需要的信息。通常的方法是让每种单词对应一个整数码,其目的是最大限度地把各个单词区别开来。 关键字:一字一种; 标识符:统一归为一种; 常数:按类型(整型、实型、布尔型等)分种,一类一种; 运算符和界符:一符一种。 单词自身的值 单词自身的值是编译中其它阶段所需要的信息。可采用如下的方法来确定它的值: (1)如果一个种别只含一个单词符号,种别编码就完全代表它自身的值; (2)如果一个种别只含多个单词符号,那么除了给出种别编码外,还需给出单词符号的自身值。如“标识符”的表示形式: (标识符,指向该标识符所在符号表中位置的指针) 示例 【例如】C程序段: while (i=j) i- -; 经词法分析器处理后转换的单词序列为: while的种别码, - (的种别码, - id的种别码,指向i的符号表项的指针 〉 =的种别码, - id的种别码,指向j的符号表项的指针 )的种别码, - id的种别码,指向i的符号表项的指针 - -的种别码, - ;的种别码, - 四、单词的三种描述工具 单词有三种描述工具: 正规文法 正规式 有穷自动机 1.正规文法 正规文法的形式: 右线性文法: A→aB或A→a 其中,A、B为单个的非终结符,a为单个的终结符。 标识符的文法 PASCAL语言中的标识符是字母开头,后跟字母数字串。 设l表示a~z中的任何一英文字母,d表示0~9中的任一数字。 描述标识符的文法为: G

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档