《编译原理》第三章词法分析.ppt
《《编译原理》第三章词法分析.ppt》由会员分享,可在线阅读,更多相关《《编译原理》第三章词法分析.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 词法分析第三章 词法分析n主要章节主要章节l3.1 词法分析与词法分析程序l3.2 词法分析程序的设计与实现l3.3 词法分析程序的自动生成3.1 词法分析程序的功能词法分析程序的功能n词法分析的词法分析的功能功能l从左至右逐个字符地对源程序进行扫描,产生一个个单词符号,再转换成词标流的过程z3词法分析器源程序源程序 单词序列单词序列 z4while (i=j)if(ij)ii-j;else j=j-i while,(,i,=,j,),if,(,i,j ,),i,=,i,-,j ,;,else,j ,=,j,-,i,;词法分析器3.1 词法分析程序的功能3.2 3.2 词法分析器的设计
2、与实现词法分析器的设计与实现n3.2.1 单词与属性字单词与属性字n1.单词单词n单词是语言中具有独立意义的最小语法单位。l要素 l独立的意义l最小的语法单位z5n例lA*B,单词是“A”、“*”和“B”。lint int1,单词是“int”和“int1”。lA+*B,单词是“A”、“+”、“*”和“B”。复习n流行语言词法规则的表示:流行语言词法规则的表示:lBNF或EBNF;l3型文法;l正规式n例例l-int|float|for|#include|char|l-|lV=(|)*z6n 1关键字(保留字或基本字):l关键字一般是语言系统本身定义的,通常是由字母组成的字符串。z7n2标识符:
3、用来表示各种名字l如,变量名,数组名,结构名,函数名,文件名等。3.2.1 单词与属性字n 3常数:256,3.14,true,abcn 4运算符:如,、*、/等等n 5分界符:如逗号,分号,括号,单双引号等z83.2.1 单词与属性字3.2.1 单词与属性字n注意:注意:l(1)同一个字符开头+后续字符-跨多个单词类;z9l(2)非单词成分和预处理成分;例:源程序注释;/*.*/l预处理指令:#define#include3.2.1 单词与属性字l2.属性字l对所识别的单词的数据结构表示。L1=L1=(T T,C C)属性字属性字z10刻画单词类别(单词性质)刻画单词类别(单词性质)如如:标
4、识符;运算符;标识符;运算符;单词的内码值(可空)单词的内码值(可空)Token Code Token Code 说明z11l单词类别通常用整数编码l单词类别提供给语法分析程序使用l单词符号属性信息记录单词符号的特征或特性l单词的属性值提供给语义分析程序使用l编码形式:l一类一种:关键字、标识符、常数、运算符、界符l一字一种:关键字、运算符、分界符各一码例题例题(一类一种)(一类一种)nint x=10,y;z12 单词类别单词类别 单词属性值单词属性值1int2指向x的符号表入口指针4=3105,2指向y的符号表入口指针5;注:通常将标识符的属性放在符号表中,因此常把指向存放标识符有关信息的
5、符号表入口的指针作为标识符的属性值z13源程序经词法分析器的输出while,id,指向i的符号表入口的指针relationalop ,id,指向j的符号表入口的指针do,if,id,指向i的符号表入口的指针 id,指向j的符号表入口的指针 while,i,j,do,if,i,j ,then,i,:=,i,-,j ,else,j ,:=,j,-,i 例题例题(一字一种)(一字一种)3.2.2 3.2.2 源程序的输入与预处理源程序的输入与预处理n1输入缓冲区输入缓冲区l成对且对半互补的输入缓冲区模式。即将一个缓冲区分为两个半区,每个半区长度为n(n一般为磁盘块或簇长的整倍数),其结构如图所示。z
6、14ln:取2的整次幂;l每个半区的末尾设置标志“eof”表示读入该半区的源程序的结束;lB:单词w开始指针;l F:扫描w的指针;n两半区互补功能算法:两半区互补功能算法:lif (F=前“eof”)重新分配、装入后半区;F+;lelse if (F=后“eof”)l 重新分配、装入前半区;F=1;lelse F+;z152两个缓冲区的输入模式n 控制线 数据线nX:固定长度的存储空间;z16n预处理程序(作用)预处理程序(作用)l(1)减少内存空间占用;l(2)减轻扫描器实质性处理的负担;n预处理程序主要任务:预处理程序主要任务:l(1)滤掉源程序中的非单词成分(如无用空格;换行符等);l
7、(2)实际的预处理工作z17滤掉注释;宏替换;文件包含的嵌入;条件编译的嵌入;n 设计工具设计工具 FAl作为扫描器的状态转换图的构造:lstep1:对语言的各类单词分别构造状态图;lstep2:将各类状态图合并合并,构成一个能识别该语言所有单词的状态图。z18(1)将各类单词的状态图的初态合并为一个惟一初态;(2)调整冲突编号。n例3.2 设某语言由标识符和无符号正整数两类单词构成,标识符和无符号正整数的词法规则:lL a|b|z|A|B|ZlD 0|1|9l L(L|D|_)*l DD*z19step1:对语言的各类单词分别构造状态图;z202LL|D|_13other1DD02other
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 编译 原理 第三 词法 分析
限制150内