欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第三章编译原理精选PPT.ppt

    • 资源ID:49403308       资源大小:6.24MB        全文页数:100页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第三章编译原理精选PPT.ppt

    第三章编译原理第1页,本讲稿共100页本章重点单词的描述工具单词的识别系统设计和实现词法分析程序首先需要描述和刻画程序设计语言中的原子单位单词,其次需要识别单词和执行某些相关的动作。描述程序设计语言的词法的机制是正则表达式,识别机制是有穷状态自动机。第2页,本讲稿共100页回顾回顾什麽是词法分析程序4实现词法分析(lexicalanalysis)的程序逐个读入源程序字符并按照构词规则切分成一系列单词。单词是语言中具有独立意义的最小单位,包括保留字、标识符、运算符、标点符号和常量等。词法分析是编译过程中的一个阶段,在语法分析前进行。也可以和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。第3页,本讲稿共100页词法分析程序和语法分析程序的关系源程序词法分析程序语法分析程序Tokengettoken.第4页,本讲稿共100页词法分析程序的主要任务:读源程序,产生单词符号词法分析程序的其他任务:滤掉空格,跳过注释、换行符追踪换行标志,复制出错源程序,宏展开,第5页,本讲稿共100页常常遇到的术语Token单词,词标,符号lexeme词素,词位pattern模式,式样第6页,本讲稿共100页帮助理解术语Ingeneral,thereisasetofstringsintheinputforwhichthesametokenisproducedasoutput.Thissetofstringsisdescribedbyarulecalledapatternassociatedwiththetoken.Thepatternissaidtomatcheachstringintheset.A lexemeisasequenceofcharactersinthesourceprogramthatismatchedbythepatternforatoken.e.g.Constpi=3.14159;中的pi是token“identifier”的lexeme,其pattern为letterfollowedbylettersand/ordigit.第7页,本讲稿共100页词法分析工作从语法分析工作独立出来的原因:简化设计改进编译效率增加编译系统的可移植性第8页,本讲稿共100页正规表达式与正规集(正规语言)程序设计语言中的单词是基本语法成分.单词符号的语法可以用有效的工具加以描述,并且基于这类描述工具,实现词法分析程序的自动构造.首先表述一些基本术语和概念.符号符号一个抽象实体,我们不再形式地定义它(就象几何中的”点”一样).例如字母是符号,数字也是符号。字母表字母表字母表是元素的非空有穷集合,我们把字母表中的元素称为符号,因此字母表也称为符号集。不同的语言可以有不同的字母表,例如汉语的字母表中包括汉字、数字及标点符号等。PASCAL语言的字母表是由字母、数字、若干专用符号及BEGIN、IF之类的保留字组成。第9页,本讲稿共100页符号串符号串 由字母表中的符号组成的任何有穷序列称为符号串,例如001110是字母表=0,1上的符号串.字母表A=a,b,c上的一些符号串有:a,b,c,ab,aaca。在符号串中,符号的顺序是很重要的,符号串ab就不同于ba,abca和aabc也不同。可以使用字母表示符号串,如x=STR表示“x是由符号S、T和R,并按此顺序组成的符号串”。符号串的长度符号串的长度 如果某符号串x中有m个符号,则称其长度为m,表示为x=m,如001110的长度是6。空符号串空符号串,即不包含任何符号的符号串,用表示,其长度为0,即=0。第10页,本讲稿共100页介绍有关符号串的一些运算。符号串的头符号串的头,尾,固有头和固有尾尾,固有头和固有尾:如果z=xy是一符号串,那么x是z的头,y是z的尾,如果x是非空的,那么y是固有尾;同样如果y非空,那么x是固有头。举个例子:设z=abc,那么z的头是,a,ab,abc,除abc外,其它都是固有头;z的尾是,c,bc,abc,z的固有尾是,c,bc。当对符号串z=xy的头感兴趣而对其余部分不感兴趣时,采用省略写法:z=x;如果只是为了强调x在符号串z中的某处出现,则可表示为:z=x;符号t是符号串z的第一个符号,则表示为z=t。第11页,本讲稿共100页符号串的连接符号串的连接:设x和y是符号串,它们的连接xy是把y的符号写在x的符号之后得到的符号串.由于的含义,显然有x=x =x。例如x=ST,y=abu,则它们的连接xy=STabu,看出x=2,y=3,xy=5符号串的符号串的方幂方幂:符号串自身连接n次得到的符号串 an 定义为 aaaa n个a a1=a,a2=aa且a0=例;若x=AB则:x0=x1=ABx2=ABABx3=ABABABxn=xxn-1=xn-1x(n0)第12页,本讲稿共100页 符号串集合符号串集合:若集合A中所有元素都是某字母表上的符号串,则称A为字母表上的符号串集合。两个符号串集合两个符号串集合A A和和B B的乘积的乘积 定义为AB=xy|xA且yB 若集合A=ab,cde 集合B=0,1 则AB=ab1,ab0,cde0,cde1使用*表示上的一切符号串(包括)组成的集合。*称为称为的闭包的闭包。上的除外的所有符号串组成的集合记为+。+称为称为的正闭包的正闭包。第13页,本讲稿共100页例:例:=a,b=a,b *=,a,b,aa,ab,ba,bb,aaa,aab,=,a,b,aa,ab,ba,bb,aaa,aab,+=a,b,aa,ab,ba,bb,aaa,aab,=a,b,aa,ab,ba,bb,aaa,aab,第14页,本讲稿共100页正规式正规式也称正则表达式,正规表达式(regularexpression)是说明单词的模式(pattern)的一种重要的表示法(记号),是定义正规集的数学工具。我们用以描述单词符号。下面是正规式和它所表示的正规集的递归定义。第15页,本讲稿共100页定义(正规式和它所表示的正规集):设字母表为,辅助字母表=,。1。和都是上的正规式,它们所表示的正规集分别为和;第16页,本讲稿共100页2。任何a,a是上的一个正规式,它所表示的正规集为a;3。假定e1和e2都是上的正规式,它们所表示的正规集分别为L(e1)和L(e2),那么,(e1),e1e2,e1e2,e1也都是正规式,它们所表示的正规集分别为L(e1),L(e1)L(e2),L(e1)L(e2)和(L(e1)。4。仅由有限次使用上述三步骤而定义的表达式才是上的正规式,仅由这些正规式所表示的集合才是上的正规集。第17页,本讲稿共100页正规式中的符号其中的“”读为“或”(也有使用“+”代替“”的);“”读为“连接”;“”读为“闭包”(即,任意有限次的自重复连接)。在不致混淆时,括号可省去,但规定算符的优先顺序为“”、“”、“”。连接符“”一般可省略不写。“”、“”和“”都是左结合的。第18页,本讲稿共100页例子令=a,b,上的正规式和相应的正规集的例子有:正规式正规集aaaba,babab(ab)(ab)aa,ab,ba,bba,a,a,任意个a的串第19页,本讲稿共100页正规式正规集(ab),a,b,aa,ab所有由a和b组成的串(ab)(aabb)(ab)上所有含有两个相继的a或两个相继的b组成的串第20页,本讲稿共100页讨论下面两个例子例3.1令=l,d,则上的正规式r=l(ld)定义的正规集为:l,ll,ld,ldd,其中l代表字母,d代表数字,正规式即是字母(字母|数字),它表示的正规集中的每个元素的模式是“字母打头的字母数字串”,就是Pascal和多数程序设计语言允许的的标识符的词法规则.例3.2=d,e,+,-,则上的正规式d(dd)(e(+-)dd)表示的是无符号数的集合。其中d为09的数字。程序设计语言的单词都能用正规式程序设计语言的单词都能用正规式 来定义来定义.第21页,本讲稿共100页4若两个正规式e1和e2所表示的正规集相同,则说e1和e2等价,写作e1=e2。例如:e1=(ab),e2=ba又如:e1=b(ab),e2=(ba)be1=(ab),e2=(ab)第22页,本讲稿共100页4设r,s,t为正规式,正规式服从的代数规律有:1。rs=sr“或”服从交换律2。r(st)=(rs)t“或”的可结合律3。(rs)t=r(st)“连接”的可结合律4。r(st)=rsrt(st)r=srtr分配律第23页,本讲稿共100页5。r=r,r=r是“连接”的恒等元素零一律6。rr=rr=rrr“或”的抽取律第24页,本讲稿共100页有穷自动机有穷自动机有穷自动机(也称有限自动机)作为一种识别装置,它能准确地识别正规集,即识别正规文法所定义的语言和正规式所表示的集合,引入有穷自动机这个理论,正是为词法分析程序的自动构造寻找特殊的方法和工具。有穷自动机分为两类:确定的有穷自动机(DeterministicFiniteAutomata)和不确定的有穷自动机(NondeterministicFiniteAutomata)。第25页,本讲稿共100页关于有穷自动机有穷自动机我们将讨论如下题目确定的有穷自动机DFA不确定的有穷自动机NFANFA的确定化DFA的最小化第26页,本讲稿共100页确定的有穷自动机DFADFA定义:一个确定的有穷自动机(DFA)M是一个五元组:M=(K,f,S,Z)其中1.K是一个有穷集,它的每个元素称为一个状态;2.是一个有穷字母表,它的每个元素称为一个输入符号,所以也称为输入符号表;第27页,本讲稿共100页DFA定义3.f是转换函数,是在KK上的映射,即,如 f(ki,a)=kj,(kiK,kjK)就意味着,当前状态为ki,输入符为a时,将转换为下一个状态kj,我们把kj称作ki的一个后继状态;4.SK是唯一的一个初态;5.ZK是一个终态集,终态也称可接受状态或结束状态。第28页,本讲稿共100页一个DFA的例子:DFAM=(S,U,V,Q,a,b,f,S,Q)其中f定义为:f(S,a)=Uf(V,a)=Uf(S,b)=Vf(V,b)=Qf(U,a)=Qf(Q,a)=Qf(U,b)=Vf(Q,b)=Q第29页,本讲稿共100页一个DFA可以表示成一个状态图(或称状态转换图)。假定DFAM含有m个状态,n个输入字符,那么这个状态图含有m个结点,每个结点最多有n个弧射出,整个图含有唯一一个初态结点和若干个终态结点,初态结点冠以双箭头“=”或标以“-”,终态结点用双圈表示或标以“+”,若f(ki,a)=kj,则从状态结点ki到状态结点kj画标记为a的弧;第30页,本讲稿共100页DFA的状态图表示bSUVQaaaba,b第31页,本讲稿共100页一个DFA还可以用一个矩阵表示,该矩阵的行表示状态,列表示输入字符,矩阵元素表示相应状态行和输入字符列下的新状态,即k行a列为f(k,a)的值。用双箭头“=”标明初态;否则第一行即是初态,相应终态行在表的右端标以1,非终态标以0。第32页,本讲稿共100页DFA 的矩阵表示的矩阵表示字符状态0001第33页,本讲稿共100页为了说明DFA如何作为一种识别机制,我们还要理解下面的定义*上的符号串上的符号串t t在在DFA MDFA M上运行上运行一个输入符号串t,(将它表示成Tt1的形式,其中T,t1*)在DFAM=(K,f,S,Z)上运行运行的定义为:f(Q,Tt1)=f(f(Q,T),t1)其中QK扩充转换函数f为 K*K上的映射,且:f(ki,)=ki第34页,本讲稿共100页*上的符号串上的符号串t t被被DFADFA M M接受接受M=(K,f,S,Z)若t*,f(S,t)=P,其中S为M的开始状态,PZ,Z为终态集。则称t为DFAM所接受接受(识别识别).第35页,本讲稿共100页例例:证明证明t=baab被下图的被下图的DFA所接受所接受。f(S,baab)=f(f(S,b),),aab)=f(V,aab)=f(f(V,a),),ab)=f(U,ab)=f(f(U,a),),b)=f(Q,b)=QQ属于终态。属于终态。得证。得证。bSUVQabba,baa第36页,本讲稿共100页DFAM所能接受的符号串的全体记为L(M).对于任何两个有穷自动机M和M,如果L(M)=L(M),则称M与M是等价的.结论:上一个符号串集V是正规的,当且仅当存在一个上的确定有穷自动机M,使得V=L(M)。第37页,本讲稿共100页DFA的确定性表现在转换函数f:KK是一个单值函数,也就是说,对任何状态kK,和输入符号a,f(k,a)唯一地确定了下一个状态。从状态转换图来看,若字母表含有n个输入字符,那末任何一个状态结点最多有n条弧射出,而且每条弧以一个不同的输入字符标记。第38页,本讲稿共100页DFA的行为很容易用程序来模拟.DFAM=(K,f,S,Z)的行为的模拟程序K:=S;c:=getchar;whileceofdoK:=f(K,c);c:=getchar;ifKisinZthenreturn(yes)elsereturn(no)第39页,本讲稿共100页reviewRegularexpressionsonthealphabetaredefinedbythefollowingrecursiverules:1)Everysymbolof isaregularexpression2)and f isaregularexpression3)ifr1 andr2 areregularexpressions,soare(r1)r1 r2 r1|r2 r1*4)Nothingelseisaregularexpression.=0,1,2,3,4,5,6,7,8,9(1|2|3|4|5|6|7|8|9|0)*is a regular expression(1|2|3|4|.8|9|0)(1|2|3.|8|9|0)*is a regular expression(1|2|3.|8|9|0)+第40页,本讲稿共100页reviewDFAM=(K,f,S,Z)1)A finite set of states,one of which is designated the initial state or start state,and some of which are designated as final states.2)An alphabet of possible input symbols.3)A finite set of transitions that specifies for each state and for each symbol of the input alphabet,which state to go to next.第41页,本讲稿共100页DFA第42页,本讲稿共100页DFA =digit,not digit第43页,本讲稿共100页DFAM所能接受的符号串的全体记为L(M).对于任何两个有穷自动机M和M,如果L(M)=L(M),则称M与M是等价的.结论:上一个符号串集V是正规的,当且仅当存在一个上的确定有穷自动机M,使得V=L(M)。第44页,本讲稿共100页FA等价第45页,本讲稿共100页不确定的有穷自动机NFA定义NFAM=K,f,S,Z,其中K为状态的有穷非空集,为有穷输入字母表,f为K*到K的子集(2K)的一种映射,SK是初始状态集,ZK为终止状态集.第46页,本讲稿共100页例子NFAM=(S,P,Z,0,1,f,S,P,Z)其中f(S,0)=Pf(Z,0)=Pf(P,1)=Zf(Z,1)=Pf(S,1)=S,Z第47页,本讲稿共100页状态图表示SPZ00,1111第48页,本讲稿共100页矩阵表示矩阵表示简化为第49页,本讲稿共100页f为K*到K的子集(2K)的一种映射具有转移的不确定的有穷自动机123abc第50页,本讲稿共100页有如下定理:对任何一个具有转移的不确定的有穷自动机NFAN,一定存在一个不具有转移的不确定的有穷自动机NFA,使得L(M)=L(N)。与上例等价的一个NFA.2acbb31acacbb第51页,本讲稿共100页类似DFA,对NFAM=K,f,S,Z也有如下定义*上的符号串t在NFAM上运行.一个输入符号串t,(我们将它表示成Tt1的形式,其中T,t1*)在NFAM上运行运行的定义为:f(Q,Tt1)=f(f(Q,T),t1)其中QK.*上的符号串t被NFAM接受若t*,f(S0,t)=P,其中S0S,PZ,则称t为NFAM所接受接受(识别识别)第52页,本讲稿共100页*上的符号串t被NFA M接受也可以这样理解对于中的任何一个串t,若存在一条从某一初态结到某一终态结的道路,且这条道路上所有弧的标记字依序连接成的串(不理采那些标记为的弧)等于t,则称t可为NFAM所识别(读出或接受)。若M的某些结既是初态结又是终态结,或者存在一条从某个初态结到某个终态结的道路,其上所有弧的标记均为,那么空字可为M所接受。第53页,本讲稿共100页00011110100011100000010001100第54页,本讲稿共100页NFAM所能接受的符号串的全体记为L(M)结论:上一个符号串集V是正规的,当且仅当存在一个上的不确定的有穷自动机M,使得V=L(M)。第55页,本讲稿共100页(0|1)*(000|111)(0|1)第56页,本讲稿共100页DFA是NFA的特例.对每个NFAN一定存在一个DFA,使得L(M)=L(N)。对每个NFAN存在着与之等价的DFAM。有一种算法,将NFA转换成接受同样语言的DFA.这种算法称为子集法子集法.与某一与某一NFA等价的等价的DFA不唯一不唯一.第57页,本讲稿共100页从NFA的矩阵表示中可以看出,表项通常是一状态的集合,而在DFA的矩阵表示中,表项是一个状态,NFA到相应的DFA的构造的基本思路是:DFADFA的每一个状态对的每一个状态对应应NFA的一组状态.DFA使用它的状态去记录在NFA读入一个输入符号后可能达到的所有状态.第58页,本讲稿共100页NFA确定化算法:假设NFAN=(K,f,K0,Kt)按如下办法构造一个DFAM=(S,d,S0,St),使得L(M)=L(N):1.M的状态集S由K K的一些子集的一些子集组成。用S1S2.Sj表示S的元素,其中S1,S2,.Sj是K的状态。并且约定,状态S1,S2,.Sj是按某种规则排列的,即对于子集S1,S2=S2,S1,来说,S的状态就是S1S2;第59页,本讲稿共100页2M和N的输入字母表是相同的,即是;3转换函数是这样定义的:d(S1S2,.Sj,a)=R1R2.Rt 其中R1,R2,.,Rt=-closure(move(S1,S2,.Sj,a)4S0=-closure(K0)为M的开始状态;5St=SiSk.Se,其中SiSk.SeS且Si,Sk,.SeKt第60页,本讲稿共100页定义对状态集合I的几个有关运算:1.状态集合状态集合I I的的-闭包闭包,表示为-closure(I),定义为一状态集,是状态集I中的任何状态S经任意条弧而能到达的状态的集合。状态集合I的任何状态S都属于-closure(I)。2.状态集合状态集合I I的的a a弧转换弧转换,表示为move(I,a)定义为状态集合J,其中J是所有那些可从I中的某一状态经过一条a弧而到达的状态的全体。第61页,本讲稿共100页状态集合I的有关运算的例子I=1,-closure(I)=1,2;I=5,-closure(I)=5,6,2;move(1,2,a)=5,3,4-closure(5,3,4)=2,3,4,5,6,7,8;12534687aaa第62页,本讲稿共100页构造NFAN的状态状态K K的子集的子集的算法:假定所构造的子集族为C,即C=(T1,T2,.TI),其中T1,T2,.TI为状态K的子集。1开始,令-closure(K0)为C中唯一成员,并且它是未被标记的。第63页,本讲稿共100页2while(C中存在尚未被标记的子集T)do 标记T;for每个输入字母adoU:=-closure(move(T,a);ifU不在C中then将U作为未标记的子集加在C中第64页,本讲稿共100页NFA的确定化例子4f35621iaaaabbbb第65页,本讲稿共100页4f35621iaaaabbbb第66页,本讲稿共100页等价的DFAaCDBAEFSbaaaaabbbbbabF第67页,本讲稿共100页确定有穷自动机的化简说一个有穷自动机是化简了的,即是说,它没有多余状态并且它的状态中没有两个是互相等价的。一个有穷自动机可以通过消除多余状态和合并等价状态而转换成一个最小的与之等价的有穷自动机。所谓有穷自动机的多余状态,是指这样的状态:从自动机的开始状态出发,任何输入串也不能到达的那个状态;或者从这个状态没有通路到达终态。第68页,本讲稿共100页DFA的最小化就是寻求最小状态DFA最小状态DFA的含义:没有多余状态(死状态)没有两个状态是互相等价(不可区别)两个状态s和t可区别:不满足兼容性同是终态或同是非终态传播性从s出发读入某个aa和从t出发读入某个a到达的状态等价。第69页,本讲稿共100页C和D同是终态,读入a到达C和F,C和F同是终态,C和F读入a都到达C,读入b都到达E.C和D等价aCDBAEFSbaaaaabbbbbabF第70页,本讲稿共100页最小状态DFA对于一个DFA M=(K,f,k0,kt),存在一个最小状态DFAM=(K,f,k0,kt),,使L(M)=L(M).结论接受L的最小状态有穷自动机不计同构是唯一的。第71页,本讲稿共100页“分割法”DFA的最小化算法的核心把一个DFA的状态分成一些不相交的子集,使得任何不同的两子集的状态都是可区别的,而同一子集中的任何两个状态都是等价的.算法假定每个状态射出的弧都是完全的,否则,引入一个新状态,叫死状态,该状态是非状态,将不完全的输入弧都射向该状态,对所有输入,该状态射出的弧还回到自己.第72页,本讲稿共100页DFA的最小化算法 DFA M=(K,f,k0,kt),最小状态DFAM 1.构造状态的一初始划分:终态kt 和非终态K-kt两组(group)2.对施用过程过程PPPP 构造新划分new 3.如new =,则令 final=并继续步骤4,否则:=new重复2.4.为final中的每一组选一代表,这些代表构成M的状态。若k是一代表且f(k,a)=t,令r是t组的代表,则M中有一转换f(k,a)=r第73页,本讲稿共100页 M 的开始状态是含有S0的那组的代表 M 的终态是含有F的那组的代表 5.去掉M中的死状态.第74页,本讲稿共100页过程过程PPPP:Construction of newFor each group G of do begin 1.Partiton G into subgroups such that two states s and t of G are in the same subgroups if and only if for all input symbols a,states s and t have transitions on a to states in the same group of;/*at worst,a state will be in a subgroup by itself*/2.replace G in new by the set of all subgroups formed end 第75页,本讲稿共100页DFA的最小化例子0:S,A,B C,D,E,F1:S,A,B C,D,E,F 2:CDBAEFSbaaaaaabbbbbbaA S,BbB SDBASaaabbbbaa第76页,本讲稿共100页3.4词法分析程序的自动构造对有穷自动机和正规表达式进行了上述讨论之后,我们介绍词法分析程序的自动构造方法,这个方法基于有穷自动机和有穷自动机和正规表达式的等价性正规表达式的等价性,即:即:1.对于上的一个NFAM,可以构造一个上的正规式R,使得L(R)=L(M)。2.对于上的一个正规式R,可以构造一个上的NFAM,使的L(M)=L(R)。第77页,本讲稿共100页从上的一个正规式R构造上的一个NFAM,使得L(M)=L(R)的方法。“语法制导”的方法,即按正规式的语法结构指引构造过程,构造规则具体描述如下:第78页,本讲稿共100页.“对于上的一个正规式R,可以构造一个上的NFAM,使得L(M)=L(R).”说明一种构造方法:(1)R=,构造任一具有空终态集的NFAM(2)R=,构造的NFAM=(k0,f,k0.k0):f(k0,a)对于所有a都没定义。(3)R=a,构造的NFA M=(k0,k1,f,k0.k1):f(k0,a)=k1(4)R=R1|R2,将步骤(1)(2)(3)分别应用到R1,R2产生M1=(K1,f1,k1,F1),M2=(K2,f2,k2,F2),其中K1,K2不相交.构造的NFA M=(K1K2k,f,k,F):k是新增加的状态符号,f包含f1和f2,且f(k,a)=f1(k1,a)f2(k2,a).若k1F1且k2F2则F=F1F2,否则F=F1F2k第79页,本讲稿共100页(5)R=R1.R2将步骤(1)(2)(3)分别应用到R1,R2产生M1=(K1,f1,k1,F1),M2=(K2,f2,k2,F2),其中K1,K2不相交.构造的NFA M=(K1K2,f,k1,F2):f包含f1和f2,且f(k,a)=f1(k,a),当 kF1时;f(k,a)=f2(k,a),当 kK2时;f(k1,)=k2,(6)R=R1*将步骤(1)(2)(3)分别应用到R1,产生M1=(K1,f1,k1,F1),构造的NFA M=(K1k0,F F0,f,k0,F0)其中 k0,F F0 是新增加的两个状态,f(k,a)=f1(k,a),当 kF1时;f(k0,)=f(F1,)=k1,F F0,第80页,本讲稿共100页再用状态图说明可用方法对于正规式x,x构造的NFA(两种)X第81页,本讲稿共100页对于正规式,构造的NFA(三种)FSF第82页,本讲稿共100页对于正规式R=,构造的NFAFS第83页,本讲稿共100页对于正规式r,r=R1|R2构造的NFA第84页,本讲稿共100页对于正规式r,r=R1R2构造的NFA第85页,本讲稿共100页对于正规式r,r=R1*构造的NFA第86页,本讲稿共100页R=(a|ab)*bb*第87页,本讲稿共100页正规式用于说明(描述)单词的结构十分简洁方便。而把一个正规式编译(或称转换)为一个NFA进而转换为相应的DFA,这个NFA或DFA正是识别该正规式所表示的语言的句子的识别器。基于这种方法来构造词法分析程序第88页,本讲稿共100页词法分析程序的设计技术可应用于其它领域,比如查询语言以及信息检索系统等,这种应用领域的程序设计特点是,通过字符串模式的匹配来引发动作,回想LEX,说明词法分析程序的语言,可以看成是一个模式动作语言。词法分析程序的自动构造工具也广泛应用于许多方面,如用以生成一个程序,可识别印刷电路板中的缺陷,又如开关线路设计和文本编辑的自动生成等。第89页,本讲稿共100页习题4.7练习1(1)34(b)5第90页,本讲稿共100页本章小结词法分析程序是编译第一阶段的工作,它读入字符流的源程序,按照词法规则识别单词,交由语法分析程序接下去。本章讲述了词法分析程序设计原则,并介绍了分别作为正规集的描述机制和识别机制的正规式和有穷动机。在此基础上给出了词法分析程序自动构造工具如LEX的原理。第91页,本讲稿共100页识别Pl0单词的FA第92页,本讲稿共100页NFA的确定化Moreexample第93页,本讲稿共100页第94页,本讲稿共100页第95页,本讲稿共100页第96页,本讲稿共100页第97页,本讲稿共100页DFA的最小化算法英文描述1.Construct an initial partition of the set of states with two groups:the accepting states F and the nonaccepting states S-F.2.Apply the procedure PP.(Construction of new)to to construct a new partition new.3.If new =,let final=and continue with step(4).Otherwise,repeat step(2)with:=new.第98页,本讲稿共100页4.Choose one state in each group of the partition final as the representative for the group.The representatives will be the states of the reduced DFA M.let s be a representative state,and suppose on input a there is a transition from s to t.Let r be the representative of ts group(r may be t).Then M has a transition from s to r on a.Let the start state of M be the representative of the group containing the start state s0 of M.and let the accepting states of M be the representative that are in F.Note that each group of final either consists only of states in F or has no states in F.第99页,本讲稿共100页5.If M has a dead state,that is,a states d that is not accepting and that has transitions to itself on all input symbols,then remove d from M,Also remove any states not reachable from the start state.Any transitions to d from other states become undefined.第100页,本讲稿共100页

    注意事项

    本文(第三章编译原理精选PPT.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开