词法分析(编译原理陈火旺)

词法分析(编译原理陈火旺)

ID:46569840

大小:1.41 MB

页数:108页

时间:2019-11-25

词法分析(编译原理陈火旺)_第1页
词法分析(编译原理陈火旺)_第2页
词法分析(编译原理陈火旺)_第3页
词法分析(编译原理陈火旺)_第4页
词法分析(编译原理陈火旺)_第5页
资源描述:

《词法分析(编译原理陈火旺)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、词法分析是编译的第一个阶段,在单词的级别上分析和翻译源程序。理论基础:①有限自动机理论②有限自动机理论与正规文法、正规式之间在描述语言方面有一一对应的关系。第3章词法分析1内容:状态转换图、正规式和有限自动机、词法分析器的自动生成掌握:正规式、状态转换图,DFN的概念、NFA的概念,将NFA转换为DFA、DFA的化简、正规式与有限自动机间的转换。理解:正规文法与有穷自动机间的转换词法分析器的自动产生工具LEX第3章词法分析教学要求2本章在编译程序中的地位表格管理词法分析器语法分析器语义分析与中间代码产生优化器目标代码生成器

2、源程序单词符号语法单位中间代码中间代码目标代码出错处理3执行词法分析的程序称为又称为词法分析器或扫描器.词法分析的任务:从左至右逐个地扫描源程序的字符串,按照词法规则识别出一个个正确的单词,并转换为相应的二元式形式,交给语法分析使用。把作为字符串的源程序改造成单词符号串的词法分析是编译的基础。3.1设计词法分析器时应考虑的几个问题43.1.1词法分析阶段的必要性词法分析的工作纳入整个语法分析中一揽子地进行,原则上是可行的。在设计一个编译程序时,通常是把对源程序的结构分析分为词法分析和语法分析两个相对独立的阶段来完成。第一,

3、描述单词的结构比描述源程序的其它语法结构要简单得多,仅使用3型文法也就基本够用了。第二,由于把词法分析和语法分析分开,可使编译程序各部分的功能更为单一,整个编译程序的结构也更加清晰,从而有利于编译程序的编写和调整。上述词法分析和语法分析两个阶段的划分,仅仅是对整个编译程序的逻辑功能而言,而不一定指的是编译程序的执行流程。53.1.2词法分析器的输出形式词法分析器输出的单词常常表示为二元式形式(单词种别,单词符号的属性值)单词种别提供给语法分析程序使用;单词符号的属性值提供给语义分析程序使用。具体的分类设计方法以方便语法分析

4、程序使用为原则。63.1.2词法分析器的输出形式程序语言的单词符号一般分为五种:关键字(保留字或基本字):如if,then,else,while,do等标识符:用来表示各种名字,如x1常量:如256,3.14,true,’abc’运算符:如+、-、*、/等等分界符:如逗号,分号,冒号等73.1.2词法分析器的输出形式单词种别:一个语言的单词符号如何分类、分为几类、如何编码主要取决于处理上的方便。通常,每种单词对应一个整数码。注意:保留字、运算符和界符的个数确定,标识符和常数的个数不确定。保留字:可全体视为一种,也可一字一种

5、;标识符:统归为一种;常数:统归为一种,或按整、实、布尔等再分;运算符和界符:一符一种,或统归为一种。83.1.2词法分析器的输出形式单词符号的属性值单词符号的属性是指单词符号的特征值。如果一个种别只含有一个单词符号,那么对于这个单词符号,种别编码就完全代表它自身了,因而不需要属性值。若一个种别含有多个单词符号,那么,对于它的每个单词符号,除了给出种别编码之外,还应给出有关单词符号的属性值。93.1.2词法分析器的输出形式单词符号的属性值标识符和常数标识符的内部码(如ASCII码等等)和常数本身的值(二进制,逻辑值等)来表

6、示。标识符的符号表入口地址作为其单词符号的属性值,常量在其常量表中的入口地址作为其单词符号的属性值。每个基本字占一个单词种别,单词符号的属性值缺省。对于界符,运算符通常一个符号一个种别,单词符号的属性值缺省例:参见P42.表3.1单词符号及种别编码103.1.3词法分析器作为独立子程序词法分析可采用如下两种处理结构:把词法分析程序作为主程序。将词法分析作为独立的一遍来完成。把词法分析程序作为语法分析程序调用的子程序。每当语法分析器需要一个单词符号时就调用这个子程序。每一次调用,词法分析器从源程序字符串中识别出一个单词符号,

7、并把它的内部表示二元组交给语法分析器处理。113.1.4源程序的输入、预处理及超前搜索词法分析器工作的第一步是输入源程序文本。输入串一般放在一个输入缓冲区中。词法分析器的工作可以直接在输入缓冲区中进行。但在许多情况下,可以先预处理输入串,识别工作将更方便。(参见P40图3.1)123.1.4源程序的输入、预处理及超前搜索预处理的原因①源程序中包含回车,换行,多余空白符,注释行等编辑字符,它们对程序逻辑功能无任何影响,在词法分析之前,首先要剔除掉这些符号,使得词法分析更为简单。②一行语句结束应配上一个特殊字符说明。③有些语言

8、要识别标号区,区分标号语句,找出续行符连接成完整语句等。④输出源程序清单以便复核。预处理子程序任务①从输入缓冲区中读取源程序,预处理后送入扫描缓冲区。此时,扫描缓冲区的字符都是有效字符。②词法分析程序这时可以再对扫描缓冲区进行扫描。133.1.4源程序的输入、预处理及超前搜索超前搜索对于有些语言,关键字

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

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

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