编译原理第三章_词法分析.ppt

编译原理第三章_词法分析.ppt

ID:49224745

大小:589.00 KB

页数:46页

时间:2020-02-02

编译原理第三章_词法分析.ppt_第1页
编译原理第三章_词法分析.ppt_第2页
编译原理第三章_词法分析.ppt_第3页
编译原理第三章_词法分析.ppt_第4页
编译原理第三章_词法分析.ppt_第5页
资源描述:

《编译原理第三章_词法分析.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章词法分析(LexicalAnalysis)Lexical:oforrelatingtowordsorthevocabularyofalanguageasdistinguishedfromitsgrammarandconstruction词法分析在编译程序中的逻辑位置表处理错误处理目标代码生成中间代码优化中间代码生成语义分析语法分析词法分析目标程序源程序主要内容:词法分析程序的功能;单词分类及内部表示;词法分析程序的设计与实现步骤。3.1词法分析介绍例某程序片段如下:VARsum,first,count:r

2、eal;BEGINsum:=first+count*10END.VAR□sum,first,count:real;BEGINsum:=first+count*10END.源程序一般表现为字符序列的形式;例某程序片段如下:VARsum,first,count:real;BEGINsum:=first+count*10END.:=first+count;sum,count:realVARsum,first.*10ENDBEGIN期望的源程序表示形式:=:END3.1.1词法分析程序的功能单词是字符的序列,是指语言中

3、那些具有独立含义的最小语义单位。单词不是程序设计语言中的语法概念,是编译程序中引进的一个概念。编译程序的翻译工作为提高效率,编译应该在单词一级上进行;词法分析的主要任务:词法分析是编译的第一阶段,它的的主要任务是按语言的词法规则,从左至右逐个字符地对原程序进行扫描,从源程序中识别出每个单词,并把每个单词转换成它们的内部表示,即所谓的TOKEN,同时进行词法检查。词法分析程序:执行词法分析的程序称为词法分析程序,有时也称为词法分析器(LexicalAnalyzer)或者扫描器(Scanner)。3.1.2词法分析

4、程序的接口词法分析程序与语法分析程序的接口有两种形式:词法分析程序作为编译器的独立一遍遍(Pass):所谓“遍”就是对源程序或源程序的中间表示形式从头到尾扫描一次,并作加工处理,生成新的中间结果或目标程序。词法分析程序作为独立的一遍:读入源程序字符序列,识别出每一个单词并将其转换成相应的内部表示,形成一个TOKEN序列,这个TOKEN序列将作为语法分析程序的输入;词法分析程序作为语法分析程序的一个子程序语法分析程序每调用一次词法分析程序,词法分析程序就从源程序的字符序列中拼出一个单词,并将其TOKEN值返回给语

5、法分析程序。这种方式的好处是,它不需要存储源程序的内部表示。词法分析器的接口CharList独立词法分析器语法分析TokenList附属词法分析器语法分析callTokenCharList3.2词法分析程序的设计3.2.1单词分类一般常用程序设计语言的单词可以分为以下几类:保留字:保留字一般是由语言系统自身定义的,通常是由字母组成的字符串。如C语言中的int,if,for,do等等。这些字在语言中具有固定的意义,是编译程序识别各类语法成分的依据。标识符:用来标识程序中各个对象的名称。它们由用户定义,用来表示变量

6、名、常量名、数组名和函数名等。常量:主要包括整数常数、实数常数、字符常量、字符串常量等。特殊符号:包括运算符和界限符。运算符表示程序中算术运算、逻辑运算、字符运算、赋值运算的确定的字符或字符串。如各类语言通用的+、-、*、/、<、>=、<=等。界限符在语言中是作为语法上的分界符号使用的。如逗号、分号、单引号等。3.2.1单词分类(续)3.2.2单词的内部表示TOKEN结构图单词的内部表示TOKEN的结构一般由两部分组成:单词类别和语义信息。单词类别,又称词法信息,用来区分单词的不同种类,通常可以用整数编码来表示

7、。单词的语义信息,应该是唯一确定其本身内容的编码。词法信息语义信息一、标识符和常量的TOKEN结构给出标识符和常量类别编码;给出标识符和常量的语义信息。关于语义信息可以有两种处理方法:一种是在其TOKEN的语义信息部分直接存储这些值;另外一种是设置标识符表和常量表来存储其值,这时TOKEN的语义信息部分就是一个指向相应表项的一个指针。第一种方法处理起来比较简单,但是TOKEN的空间大小不好确定,可能造成空间浪费。因此,我们采取第二种策略。标识符种类编码语义信息常量种类编码语义信息二、保留字、界限符和运算符的处理

8、可以有两种处理方法:一种是保留字、界限符和运算符分别算作一类,除了要给出其类别外,还需在其TOKEN的语义信息部分直接存储这些值的串或整数编码;如:另外一种是保留字、界限符和运算符采用一符一类的方法,不输出单词的值(其TOKEN的语义信息部分为空),只输出其类别码即可。如:保留字种类编码if‘+’的编码单词名称类别编码(词法信息)类别编码的助记符标识符1$id无符号整数2$int,30

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

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

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