编译原理(第二版)第4章 词法分析.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《编译原理(第二版)第4章 词法分析.ppt》由会员分享,可在线阅读,更多相关《编译原理(第二版)第4章 词法分析.ppt(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章 词法分析词法分析n教学要求:教学要求:本章介绍编译程序的第一个阶本章介绍编译程序的第一个阶段词法分析的设计原理,要求掌握正则文段词法分析的设计原理,要求掌握正则文法、法、DFADFA、NFANFA、正规式和正规集的基本概、正规式和正规集的基本概念和词法分析器的设计原理。念和词法分析器的设计原理。n教学重点:教学重点:词法分析器的任务与设计,状词法分析器的任务与设计,状态转换图。态转换图。4.1 4.1 词法分析程序的设计词法分析程序的设计回顾:回顾:1 1、词法分析的任务:、词法分析的任务:逐个读入源程序字符并按逐个读入源程序字符并按照构词规则切分成一系列单词。照构词规则切分成一
2、系列单词。2 2、词法分析程序:实现词法分析的程序。、词法分析程序:实现词法分析的程序。一一.词法与语法分析程序的接口词法与语法分析程序的接口方式方式1 1、作为独立的一遍、作为独立的一遍2 2、语法分析结合在一起作为一遍、语法分析结合在一起作为一遍单词符号单词符号n单词符号一般可分为下列五种:单词符号一般可分为下列五种:n n基本字基本字基本字基本字(关键字关键字关键字关键字):):begin,end,if,whilebegin,end,if,while等等n n标识符标识符标识符标识符:各种名称,如常量名、变量名、过程:各种名称,如常量名、变量名、过程名等名等n n常数常数常数常数(量):
3、(量):25,3.1415,25,3.1415,TRUE,“ABC”TRUE,“ABC”等等n n运算符运算符运算符运算符:如:如+-*/=+-*/=等等n n界符界符界符界符:逗号,分号,括号等:逗号,分号,括号等二、输出表示:(单词种别,单词自身的值)二、输出表示:(单词种别,单词自身的值)A:=B+2A:=B+2(id,(id,指向指向A A的符号表的入口指针)的符号表的入口指针)(id,(id,指向指向B B的符号表的入口指针的符号表的入口指针)(num,2)num,2)三、词法分析工作独立的原因:三、词法分析工作独立的原因:1 1、简化设计、简化设计2 2、改进编译效率、改进编译效率
4、3 3、增加编译系统的可移植性、增加编译系统的可移植性 4.2 4.2 单词的描述工具单词的描述工具一、正规文法:一、正规文法:文法文法G=G=(V VN N,V VT T,P P,S S),),P P中每一中每一产生式的形式都为:产生式的形式都为:AaBAaB或或AaAa,其中其中AVAVN N ,BVBVN N ,aVaVT T几类单词的描述几类单词的描述n n标识符标识符标识符标识符:标识符标识符标识符标识符l|ll|ll|ll|l字母数字字母数字字母数字字母数字字母数字字母数字字母数字字母数字l|d|ll|d|ll|d|ll|d|l字母数字字母数字字母数字字母数字|d d d d字母数
5、字字母数字字母数字字母数字n n无符号整数无符号整数无符号整数无符号整数:无符号整数无符号整数无符号整数无符号整数d|dd|dd|dd|d无符号整数无符号整数无符号整数无符号整数n n运算符运算符运算符运算符:运算符运算符运算符运算符+|-|*|/|=|=|-|*|/|=|=|-|*|/|=|=|-|*|/|=|=n n界符界符界符界符:界符界符界符界符,|;|(|)|,|;|(|)|,|;|(|)|,|;|(|)|二、正规式二、正规式(regular expression)regular expression)(一)定义(一)定义(一)定义(一)定义(正规式正规式正规式正规式和它所表示的和它
6、所表示的和它所表示的和它所表示的正规集正规集正规集正规集):):):):设字母表为设字母表为设字母表为设字母表为 ,辅助字母表,辅助字母表,辅助字母表,辅助字母表 =,(,)。1 1 1 1、和和和和 都是都是都是都是 上的正规式,它们所表示的正规集分别为上的正规式,它们所表示的正规集分别为上的正规式,它们所表示的正规集分别为上的正规式,它们所表示的正规集分别为 和和和和 ;2 2 2 2、任何、任何、任何、任何a a a a ,a a a a是是是是 上的一个正规式,它所表示的正规集上的一个正规式,它所表示的正规集上的一个正规式,它所表示的正规集上的一个正规式,它所表示的正规集为为为为 aa
7、aa;3 3 3 3、假定假定假定假定e e e e1 1 1 1和和和和e e e e2 2 2 2都是都是都是都是 上的正规式,它们所表示的正规集分上的正规式,它们所表示的正规集分上的正规式,它们所表示的正规集分上的正规式,它们所表示的正规集分别为别为别为别为L(eL(eL(eL(e1 1 1 1)和和和和L(eL(eL(eL(e2 2 2 2),那么,那么,那么,那么,(e e e e1 1 1 1),),),),e e e e1 1 1 1 e e e e2 2 2 2,e e e e1 1 1 1 e e e e2 2 2 2,e e e e1 1 1 1 也都也都也都也都是正规式是
8、正规式是正规式是正规式,它们所表示的正规集分别为它们所表示的正规集分别为它们所表示的正规集分别为它们所表示的正规集分别为L(eL(eL(eL(e1 1 1 1),L(e),L(e),L(e),L(e1 1 1 1)L)L)L)L(e(e(e(e2 2 2 2),L(e),L(e),L(e),L(e1 1 1 1)L(e)L(e)L(e)L(e2 2 2 2)和和和和(L(eL(eL(eL(e1 1 1 1)。4 4 4 4、仅由有限次使用上述三步骤而定义的表达式才是、仅由有限次使用上述三步骤而定义的表达式才是、仅由有限次使用上述三步骤而定义的表达式才是、仅由有限次使用上述三步骤而定义的表达式才
9、是 上的上的上的上的正规式,仅由这些正规式所表示的字集才是正规式,仅由这些正规式所表示的字集才是正规式,仅由这些正规式所表示的字集才是正规式,仅由这些正规式所表示的字集才是 上的正规上的正规上的正规上的正规集。集。集。集。正规式中的符号说明:正规式中的符号说明:正规式中的符号说明:正规式中的符号说明:“”读为读为读为读为“或或或或”(也有使用也有使用也有使用也有使用“+”“+”“+”“+”代替代替代替代替 “”的)的)的)的)“”读为读为读为读为“连接连接连接连接”;“”读为读为读为读为“闭包闭包闭包闭包”(即,任意有限次的自重复连接)。(即,任意有限次的自重复连接)。(即,任意有限次的自重复
10、连接)。(即,任意有限次的自重复连接)。在不致混淆时,括号可省去,但规定算符的优先顺序为:在不致混淆时,括号可省去,但规定算符的优先顺序为:在不致混淆时,括号可省去,但规定算符的优先顺序为:在不致混淆时,括号可省去,但规定算符的优先顺序为:“”、“”、“”。连接符连接符连接符连接符“”一般可省略不写。一般可省略不写。一般可省略不写。一般可省略不写。“”、“”和和和和“”都是左结合的。都是左结合的。都是左结合的。都是左结合的。正规集是正规语言的另一种表示。正规集是正规语言的另一种表示。正规集是正规语言的另一种表示。正规集是正规语言的另一种表示。如:如:如:如:字母字母字母字母(数字数字数字数字|
11、字母字母字母字母)表示标识符。表示标识符。表示标识符。表示标识符。例令例令例令例令 =a a,b b,上的正规式和相应的正规集上的正规式和相应的正规集上的正规式和相应的正规集上的正规式和相应的正规集的例子有:的例子有:的例子有:的例子有:正规式正规式正规式正规式 正规集正规集正规集正规集a a aaa a b b a,ba,b abab abab(a(a b)(ab)(a b)b)aa,ab,ba,bbaa,ab,ba,bb a a ,a,aaa,aa,任意个任意个任意个任意个a a的串的串的串的串(a a b)b),a,b,aa,aba,b,aa,ab 所有由所有由所有由所有由a a 和和和
12、和b b组成的串组成的串组成的串组成的串(a a b)b)(aa(aa bb)(abb)(a b)b)上所有含有两个相上所有含有两个相上所有含有两个相上所有含有两个相继继继继 的的的的a a或两个相或两个相或两个相或两个相继的继的继的继的b b组成组成组成组成 的串的串的串的串 例例例例 =l l l l,dddd,r r r r=l(ll(ll(ll(l d)d)d)d)定义的正规集定义的正规集定义的正规集定义的正规集:l,ll,ld,lddl,ll,ld,lddl,ll,ld,lddl,ll,ld,ldd,(标识符)标识符)标识符)标识符)其中:其中:其中:其中:l l l l代表字母代表
13、字母代表字母代表字母,d d d d代表数字代表数字代表数字代表数字,正规式即是正规式即是正规式即是正规式即是 字母字母字母字母(字母字母字母字母|数字数字数字数字)它表示的正规集是它表示的正规集是它表示的正规集是它表示的正规集是“字母打头的字母数字串字母打头的字母数字串字母打头的字母数字串字母打头的字母数字串”。例例例例4.3 4.3 4.3 4.3 =d d d d,.,e e e e,+,-,-,-,-,则则则则 上的正规式上的正规式上的正规式上的正规式 :d d d d (.dd(.dd(.dd(.dd )(e(+)(e(+)(e(+)(e(+-)dddddddd )表示的是无符号数的
14、集合。其中:表示的是无符号数的集合。其中:表示的是无符号数的集合。其中:表示的是无符号数的集合。其中:d d d d为为为为0-90-90-90-9的数字。的数字。的数字。的数字。(二)两个正规式(二)两个正规式等价等价n n若两个正规式若两个正规式e e1 1和和e e2 2所表示的所表示的正规集相同正规集相同,则说则说e e1 1和和e e2 2等价等价,写作写作e e1 1=e e2 2。例如:例如:例如:例如:e e e e1 1 1 1=(a=(a=(a=(a b)b)b)b),e e e e2 2 2 2=b=b=b=b a a a a又如:又如:又如:又如:b(abb(abb(a
15、bb(ab)=(=(=(=(ba)ba)ba)ba)b b b b (a (a (a (a b)b)b)b)=(a=(a=(a=(a b b b b )(三)正规式的运算律(三)正规式的运算律n设设r,s,tr,s,t为正规式,正规式服从的代数规律有:为正规式,正规式服从的代数规律有:1 1、r r s=ss=s r r “或或”服从交换律服从交换律2 2、r r(s s t)=(t)=(r r s s)t “t “或或”的可结合律的可结合律3 3、(rs)trs)t=r(str(st)“连接连接”的可结合律的可结合律4 4、r(sr(s t)=t)=rsrs rtrt (s(s t)rt)r
16、=srsr trtr 分配律分配律 5 5、r=r,rr=r,r=r=r 是是“连接连接”的恒等元素的恒等元素6 6、r r r=rr=rr r=r r rrrr “或或”的抽取律的抽取律 三、正规文法到正规式三、正规文法到正规式n n1.1.1.1.将正规式转换成正规文法将正规式转换成正规文法将正规式转换成正规文法将正规式转换成正规文法 V V V VT T T T=,S S S S V V V VN N N N,(1 1 1 1)对正规式)对正规式)对正规式)对正规式r r r r,生成生成生成生成正规产生式正规产生式正规产生式正规产生式 S S S Sr r r r (2 2 2 2)若
17、)若)若)若x x x x和和和和y y y y都是正规式都是正规式都是正规式都是正规式 对形如对形如对形如对形如A A A Axyxyxyxy的的的的正规产生式:正规产生式:正规产生式:正规产生式:A A A AxBxBxBxB,B B B By y y y,B B B B V V V VN N N N 对形如对形如对形如对形如A A A Ax x x x y y y y的的的的正规产生式:正规产生式:正规产生式:正规产生式:A A A AxBxBxBxB,A A A Ay y y y,B B B BxBxBxBxB,B B B By y y y,B B B B V V V VN N N N
18、 对形如对形如对形如对形如A A A Ax x x x y y y y的的的的正规产生式正规产生式正规产生式正规产生式:A A A Ax x x x,A A A Ay y y y 不断应用上述规则做变换,直到每个产生式右端只含一个不断应用上述规则做变换,直到每个产生式右端只含一个不断应用上述规则做变换,直到每个产生式右端只含一个不断应用上述规则做变换,直到每个产生式右端只含一个V V V VT T T T对对对对 上的正规式上的正规式上的正规式上的正规式r,r,r,r,存在一个存在一个存在一个存在一个G=(VN,VT,P,S)G=(VN,VT,P,S)G=(VN,VT,P,S)G=(VN,VT
19、,P,S)使得使得使得使得L(G)=L(G)=L(G)=L(G)=L(rL(rL(rL(r),反之亦然。反之亦然。反之亦然。反之亦然。n例例 r=a(a d)VT=a,d Sa(a d)SaA A(a d)A(a d)B A B(a d)B BGsGs:S SaAaA A A V VT T=a,da,d A AaBaBV VN N=S,A,B=S,A,B A AdBdB B BaBaB B BdBdB B Bn n2.2.2.2.将正规文法转换成正规式将正规文法转换成正规式将正规文法转换成正规式将正规文法转换成正规式 使用如下规则,最后只剩下一个开始符号定义使用如下规则,最后只剩下一个开始符号
20、定义的产生式,并且右部不含非终结符。的产生式,并且右部不含非终结符。规则规则1 1:A-A-xB,BxB,B-y =A=-y =A=xyxy规则规则2 2:A-A-xA|yxA|y =A=x =A=x*y y规则规则3 3:A-x,A-y =A=A-x,A-y =A=x|yx|y例如:文法例如:文法GSGS为:为:S-S-aAaA,S-a,A-,S-a,A-aAaA,A-,A-dAdA,A-a,A-d,A-a,A-dS=S=aA|aaA|aA=(A=(aA|dA)|(a|daA|dA)|(a|d)A=(A=(a|d)A|(a|da|d)A|(a|d)A=(A=(a|da|d)*(a|da|d)
21、=()=(a|da|d)+A A代入代入S S得:得:S=S=a(a|d)a(a|d)+|a|aS=S=a(a|d)a(a|d)+|)S=S=a(a|da(a|d)*所以,对应正规式为:所以,对应正规式为:a(a|da(a|d)*4.3 4.3 有穷自动机有穷自动机 有穷自动机有穷自动机(也称有限自动机也称有限自动机)是识别正规是识别正规集的装置。集的装置。一、确定的有穷自动机(一、确定的有穷自动机(一、确定的有穷自动机(一、确定的有穷自动机(DFADFADFADFA)1 1 1 1、定义、定义、定义、定义:一个确定的有穷自动机(一个确定的有穷自动机(一个确定的有穷自动机(一个确定的有穷自动机
22、(DFADFADFADFA)M M M M是一个五元组:是一个五元组:是一个五元组:是一个五元组:M=M=M=M=(K K K K,f f f f,S S S S,Z Z Z Z)其中其中其中其中1.1.1.1.K K K K是一个有穷集,它的每个元素称为一个状态;是一个有穷集,它的每个元素称为一个状态;是一个有穷集,它的每个元素称为一个状态;是一个有穷集,它的每个元素称为一个状态;2.2.2.2.是一个有穷字母表,它的每个元素称为一个输入符号,是一个有穷字母表,它的每个元素称为一个输入符号,是一个有穷字母表,它的每个元素称为一个输入符号,是一个有穷字母表,它的每个元素称为一个输入符号,所以也
23、称所以也称所以也称所以也称为输入符号字母表;为输入符号字母表;为输入符号字母表;为输入符号字母表;3.3.3.3.f f f f是转换函数,是在是转换函数,是在是转换函数,是在是转换函数,是在K K K KK K K K上的映射,即如上的映射,即如上的映射,即如上的映射,即如f(ki,af(ki,af(ki,af(ki,a)=)=)=)=kjkjkjkj,(ki(ki(ki(kiK K K K,kjkjkjkjK)K)K)K)就意味着,当前状态为就意味着,当前状态为就意味着,当前状态为就意味着,当前状态为kikikiki,输入符为输入符为输入符为输入符为a a a a时,将转换为下一个状态时,
24、将转换为下一个状态时,将转换为下一个状态时,将转换为下一个状态kjkjkjkj,我们把我们把我们把我们把kjkjkjkj称作称作称作称作kikikiki的一个后的一个后的一个后的一个后继状态;继状态;继状态;继状态;4.4.4.4.S S S SK K K K是唯一的一个初态;是唯一的一个初态;是唯一的一个初态;是唯一的一个初态;5.5.5.5.Z Z Z Z K K K K是一个终态集,终态也称是一个终态集,终态也称是一个终态集,终态也称是一个终态集,终态也称可接受状态可接受状态可接受状态可接受状态或或或或结束状态结束状态结束状态结束状态。例:例:DFA M=DFA M=(S,U,V,Q,S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理第二版第4章 词法分析 编译 原理 第二 词法 分析
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内