哈工大编译原理(II)

哈工大编译原理(II)

ID:41879533

大小:440.51 KB

页数:32页

时间:2019-09-04

哈工大编译原理(II)_第1页
哈工大编译原理(II)_第2页
哈工大编译原理(II)_第3页
哈工大编译原理(II)_第4页
哈工大编译原理(II)_第5页
资源描述:

《哈工大编译原理(II)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章词法分析编译器的各个阶段:编译器是分阶段执行的。每个阶段将源程序从一种表示转换成另一种表示源程序词法分析器错误处理器符号管理表语法分析器语义分析器中间代码生成器代码优化器代码生成器编译的各个阶段23.2词法分析器的手工构造:用DFA能识别3.3词法分析程序自动构造工具LEX简介3.1词法分析程序的设计:词法分析器的功能,输出,把它组织成单独程序3=80;0134256eniL字母字母字母字母数字数字数字==;;0124563Line=80;id(25),‘Line’=(36),num(27),‘80’;(45),数字字母字母

2、11==0003;;1输入输出有穷控制器单词的词类和属性(词类符号,单词的属性)43.1词法分析程序的设计二、扫描器的任务一、词法分析程序的功能源程序单词序列词法分析器1、组织源程序的输入2、转换成机内表示形式3、删除注释行、空格及无用符号4、查填符号表5、检查词法错误5<12,><25,符号表入口><39,><25,符号表入口><20,><25,符号表入口><36,><26,常数表入口><8,><25,符号表入口><36,><26,常数表入口>ifi>jtheni:=0elsej:=1词法分析ifI>JThenI=0elsej=16三、词类和属性2.标

3、识符:用来表示各种名字3.字面常数:256,3.14,true,‘abc’4.运算符:如,+、-、*、/等等5.分界符:如逗号,分号,冒号等程序语言单词的分类:1.关键字(保留字或基本字):begin,end7界符和运算符:词法分析器的输出:(词类编码,单词自身的属性值)关键字可分成一类,也可以一个关键字分成一类。常数可统归一类,也可按类型(整型、实型、布尔型等),每个类型的常数划分成一类。所有的标识符分为一类。词类编码原则:一字一码。一类型一码。一类一码。一字一码。8表3.1单词词类编码9对于关键字、界符、运算符来说,它们的词类编码就可以表示其完整的信

4、息,故对于这类单词,其单词自身的属性值通常为空而对于标识符,词类编码所反映的信息不够充分,标识符的具体特性还要通过单词自身的属性进行互相区分。标识符的单词自身的属性常用其在符号表中的入口指针来表示10对于常数,其单词自身的属性常用其在常数表中的入口指针来表示11以语句子a=b+c*d为例,假设按表3.1为单词编码,词法分析后的结果为:Token字符号表a=b+c*da25<25,><36,--------><25,><32,--------><25,>B25<25,>C25D25<31,-------->12四、词法分析的设计形式(1)设计成一个独立程序

5、,完成词法分析的任务,结果以文件的形式组织,做为语法分析的输入源程序词法分析符号表TOKEN字错误信息13词法分析语法分析语义分析和中间代码生成源程序中间代码符号表管理错误的诊查处理(2)作为语法分析和语义分析的子程序14五、词法分析程序的设计框图SCANNEROUTPUTsort字母RECOGID数字RECOGDIG/HANDLCOMRECOGDEC界符’RECOGSTRLOOKUP1532词法分析器的手工构造为了构造词法分析器,要研究构词法,每种词类的结构模式以及识别它的数学模型——有穷自动机。它的模拟程序可以作为词法分析器的控制程序。321确

6、定的有限自动机(DFA)322构造识别单词的DFA323编写词法分析程序16分析程序的设计框图SCANNEROUTPUTsort字母RECOGID数字RECOGDIG/HANDLCOMRECOGDEC界符’RECOGSTRLOOKUP17一、手工构造识别单词的DFAm根椐DFA识别单词的定义,在研究给定程序语言单词结构的基础上,能直接构造出识别它的DFAm。例如:对于C语言整数:非空数字串。无符号实数(用d表示数字):(a)dd.ddE(+-)ddddE(+-)dd(c)dd.dd0.1e+1412e-43.141592

7、(d)dd…dd100018IBTTa-a,d其它例:C语言的标识符标识符:字母开始的字母数字串。19例:C语言实常数的文法描述01234567dddEdEd-+dd10003.141512e-40.1e+14.20在识别标识符的过程中,要拼写出来,并和保留字区别开来;识别出的标识符要填入符号表中二、编写词法分析程序根据画出的状态转换图(识别单词的)构造词法分析程序,每个状态对应一段程序,完成到达此状态的工作;在识别常数的过程中,要把它转换成机器表示以作为属性值,记录到常数表中。词法分析程序的控制程序模拟状态转换图的状态转换。21programSCANN

8、ER;Begininitiate符号表,字符串表,行,列计数器;Open源文件,

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

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

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