欢迎来到天天文库
浏览记录
ID:16373668
大小:1019.00 KB
页数:101页
时间:2018-08-09
《《编译原理实践及应用》ppt教学课件第3章词法分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、词法分析第三章主要内容:词法分析的任务,手工实现词法分析程序,正规式与有穷自动机,词法分析程序的自动生成重点掌握:词法分析器的功能和接口,用状态转换图设计和实现词法分析程序,正规文法、正规式和有穷自动机的概念及相互转换本章要求词法分析程序所处的位置:语法分析器词法分析器符号表编译程序的后续部分token取下一个单词语法树3.1词法分析器的功能功能:逐个读入源程序字符并按照构词规则切分成一系列单词主要任务:读入源程序,识别出各个单词符号,并输出其他任务:滤掉程序中的无用成分,如空格、注释、换行符调用符号
2、管理程序,对识别出的符号进行管理追踪换行标志,指出源程序出错的行列位置关键:找出单词的分隔符源程序词法分析程序Token串语法分析程序单词:是语言中具有独立意义的最小单位,常用单词分类:保留字:具有固定意义的标识符运算符界符标识符:表示各种名字常数对于一个程序设计语言,保留字、运算符和界符都是确定的,可以给以固定的编号(种别码)。标识符是根据构词规则定义的,常数是符合定义的各种类型的常数种别码:是对能识别的单词的分类编码有多种编码方式:标识符一般统一为一种:一个编号常数按类型分别编码:整数、实数、布尔
3、、字符关键字一般一字一种运算符一般一符一种界符一般一符一种某语言单词的种别码定义举例单词种别码单词种别码单词种别码and1procedure21*41array2program22*/42begin3read23+43bool4real24,44call5repeat25—45case6set26、46char7then27··47constant8to28/48do9true29/*49else10until30:50end11var31:=51false12while32;52for13write
4、33<53if14标识符34<=54input15整常数35<>55integer16实常数36=56not17字符常数37>57of18‘38>=58or19(39[59output20)40]60词法分析器的输出1.Token串:输出源文件中各个有用的单词格式:(单词的种别码,单词符号的属性值)单词种别:是对能识别的单词的分类编码(P42)单词符号的属性值:单词的某种特性或特征常数的值,标识符的名字等保留字、运算符、分界符的属性值可以省略文件存放最好有格式,如每个单词占一行方便“语法分析”程序调用
5、{thisisasampleprogramwritinginsimplelanguage}programexample1;{usedforillustratingcompilingprocess}vara,b,c:integer;x:char;beginif(a+c*3>b)and(b>3)thenc:=3;end.programexample1;vara,b,c:integer;x:char;beginif(a+c*3>b)and(b>3)thenc:=3;end.源程序token文件注意token
6、文件的格式举例2.符号表各种常数和标识符一般放在符号表中,在输出的token文件中的单词属性值则存放单词在符号表中的指针符号表的格式:字符串if(a>b2)test:=3;格式1:(数组)入口单词名及长度类型种属值内存地址1a1整简单变量未知未知2b22整简单变量未知未知3test4实简单变量未知未知……格式2:(用指针){thisisasampleprogramwritinginsimplelanguage}programexample1;{usedforillustratingcompilingp
7、rocess}vara,b,c:integer;x:char;beginif(a+c*3>b)and(b>3)thenc:=3;End.源程序符号表举例3.其它输出:错误信息和源程序清单错误信息应该详细,准确,指出出错的具体行、列位置,发生了哪类错误等,方便用户修改错误处理应尽可能发现更多的错误处理方式每个程序段单独处理错误统一处理错误(商用软件系统)记录式的文件数据库统计表明,现代软件系统中,75%的程序代码都是用于处理错误与错误信息商业系统中错误处理的特点是:统一错误编号,编制文档指出错误信息的含
8、义、应对措施、解决方案词法错误类型非法字符单词拼写错误难以发现下面的错误fi(a=x)…在实数是a.b格式下,可以发现下面的错误123.词法分析是编译过程中的一个阶段,在语法分析前进行。可以作为一个独立的子程序,独立出来的原因:简化设计改进编译效率增加编译系统的可移植性可以和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。3.2词法分析程序的设计任务:组织源程序的输入;按规则拼单词,并转换成二元式形式;删除注解行、
此文档下载收益归作者所有