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

    编译原理第15章习题课答案.ppt

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

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

    编译原理第15章习题课答案.ppt

    编编译译原原理理chapter15习题习题chapter11、何谓源程序、目标程序、翻译程序、编译程序、何谓源程序、目标程序、翻译程序、编译程序和解释程序?它们之间可能有何种关系?和解释程序?它们之间可能有何种关系?源程序:用源语言编写的程序。源程序:用源语言编写的程序。目标程序:源程序经翻译程序过加工处理后生成的程序。目标程序:源程序经翻译程序过加工处理后生成的程序。翻译程序:将源程序转换为与其逻辑上等价的目标程序。翻译程序:将源程序转换为与其逻辑上等价的目标程序。编译程序:编译程序:源语言为高级语言,目标语言为汇编语言或机源语言为高级语言,目标语言为汇编语言或机器语言的翻译程序。器语言的翻译程序。解释程序:解释程序:源语言程序作为输入,但不产生目标程序,而源语言程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。是边解释边执行源程序本身。先翻译后执行先翻译后执行 边解释边执行边解释边执行执行速度快执行速度快 有利于程序的调试有利于程序的调试多次运算多次运算 1次运算次运算编编译译原原理理chapter15习题习题2、一个典型的编译系统通常由有哪些部分组成?、一个典型的编译系统通常由有哪些部分组成?各部分的主要功能是什么?各部分的主要功能是什么?chapter1编译系统编译系统编译程序编译程序语法分析语法分析语义分析与中间代码生成语义分析与中间代码生成优化优化目标代码生成目标代码生成运行系统运行系统词法分析词法分析编编译译原原理理chapter15习题习题语法分析语法分析(SyntaxAnalysis):在词法分析的基础上将单词序列分解成各类语法在词法分析的基础上将单词序列分解成各类语法短语,如短语,如“程序程序”,“语句语句”,“表达式表达式”等等。等等。语义分析语义分析(SyntacticAnalysis):语义分析是在语法分析程序确定出语法短语后,审语义分析是在语法分析程序确定出语法短语后,审查有无语义错误,并为代码生成阶段收集类型信息。查有无语义错误,并为代码生成阶段收集类型信息。chapter1词法分析词法分析(LexicalAnalysis):从左到右从左到右一个字符一个字符的读入源程序,对一个字符一个字符的读入源程序,对构成源程序的字符串进行扫描和分解,从而构成源程序的字符串进行扫描和分解,从而识别出识别出一个个单词一个个单词(也称单词符号或简称符号)。(也称单词符号或简称符号)。编编译译原原理理chapter15习题习题chapter1代码优化代码优化(Optimizationofcode):为了使生成的目标代码更为高效,可以对产生的中为了使生成的目标代码更为高效,可以对产生的中间代码进行变换或进行改造,这就是代码的优化。间代码进行变换或进行改造,这就是代码的优化。代码生成代码生成(Generationofcode):目标代码生成是编译器的最后一个阶段。在生成目目标代码生成是编译器的最后一个阶段。在生成目标代码时要考虑以下几个问题:标代码时要考虑以下几个问题:计算机的系统结构、指计算机的系统结构、指令系统、寄存器的分配以及内存的组织令系统、寄存器的分配以及内存的组织等。等。中间代码生成中间代码生成(Generationofintermediatecode):完成语法分析和语义处理工作后,编译程序将源程完成语法分析和语义处理工作后,编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间序变成一种内部表示形式,这种内部表示形式叫做中间语言或称中间代码,它是一种结构简单、含义明确的记语言或称中间代码,它是一种结构简单、含义明确的记号系统。号系统。编编译译原原理理chapter15习题习题chapter21.写出写出C语言和语言和Java语言的输入字母表。语言的输入字母表。C语言:语言:09数字,大小写英文字母,键盘上可见的字符数字,大小写英文字母,键盘上可见的字符Java语言:语言:Unicode可以包括的所有字符。可以包括的所有字符。6.文法文法G6为为:ND|NDD0|1|2|3|4|5|6|7|8|9(1)G6的语言是什么的语言是什么?G6的语言是:的语言是:09的数字组成的任意的数字组成的任意非空非空串串L(G6)=x|x 0,1,2,3,4,5,6,7,8,9+(2)给出句子)给出句子0127、34和和568的最左和最右推导。的最左和最右推导。编编译译原原理理chapter15习题习题7、写一文法,使其语言是写一文法,使其语言是奇数集奇数集。要求:不以要求:不以0打头。打头。复杂的情况复杂的情况:分三部分分三部分末尾:以末尾:以1|3|5|7|9结尾结尾(一位一位):):D1|3|5|7|9开头:除了开头:除了0的任意数字的任意数字中间部分:空或者任意数字串中间部分:空或者任意数字串D1|3|5|7|9CCA|A0|B所以题目要求的文法所以题目要求的文法GNGN可以写成:可以写成:NBCD|DD1|3|5|7|9B2|4|6|8|DCCA|A0|BB2|4|6|8|D编编译译原原理理chapter15习题习题9、证明文法、证明文法:SiSeS|iS|i是二义的。是二义的。二义性的含义二义性的含义:如果文法存在如果文法存在某个句子某个句子对应两棵以上对应两棵以上不同的语法树,或者两种以上不同的最不同的语法树,或者两种以上不同的最左左/右推导,则称这个文法是二义的。右推导,则称这个文法是二义的。首先:找到此文法对应的一个首先:找到此文法对应的一个句子句子 iiiei其次:构造与之对应的其次:构造与之对应的两棵两棵语法树语法树S i S e S i S i i S i S i S e S i i结论:因为该文法存在句子结论:因为该文法存在句子iiieiiiiei对应两棵对应两棵 不同的语法树,因而该文法是二义的。不同的语法树,因而该文法是二义的。编编译译原原理理chapter15习题习题11、给出下面语言的相应文法、给出下面语言的相应文法L1=anbnci|n1,i0G1(S):SABAaAb|abBcB|从从n,i的不同取值来把的不同取值来把L1分成两部分:分成两部分:AaAb|ab前半部分是前半部分是anbn:后半部分是后半部分是ci:BBc|所以整个文法所以整个文法G1S可以写为:可以写为:编编译译原原理理chapter15习题习题L2=aibncn|n1,i0G2(S):SABAaA|BbBc|bcL3=anbnambm|m,n0G3(S):SABAaAb|BaBb|编编译译原原理理chapter15习题习题L4=1n0m1m0n|n,m0可以看成是两部分:可以看成是两部分:剩下两边的部分就是:剩下两边的部分就是:S1S0中间部分是中间部分是0m1m:A0A1|所以所以G4S可以写为:可以写为:S1S0|AA0A1|A编编译译原原理理chapter15习题习题chapter37.构造下列正规式相应的构造下列正规式相应的DFA。步骤步骤:.根据正规式根据正规式画出画出对应的对应的状态转换图状态转换图;.根据状态转换图画出对应的根据状态转换图画出对应的状态转换矩阵状态转换矩阵;.根据状态转换矩阵得到根据状态转换矩阵得到重命名后的状态转换矩阵重命名后的状态转换矩阵;.根据重命名后的状态转换矩阵得出最后的根据重命名后的状态转换矩阵得出最后的DFA.问题:将状态转换图与问题:将状态转换图与DFA混淆。混淆。编编译译原原理理chapter15习题习题1(0|1)*101.状态转换图状态转换图abadb1(0|1)*101a1(0|1)*101dcef101101ggg编编译译原原理理chapter15习题习题.状态转换矩阵状态转换矩阵II0I1ab,c,db,c,dc,dc,d,ec,dc,dc,d,ec,d,ec,d,fc,d,ec,d,fc,dc,d,e,gc,d,e,gc,d,fc,d,e1abdcef10101g编编译译原原理理chapter15习题习题II0I1ab,c,db,c,dc,dc,d,ec,dc,dc,d,ec,d,ec,d,fc,d,ec,d,fc,dc,d,e,gc,d,e,gc,d,fc,d,e.重命名后的状态转换矩阵重命名后的状态转换矩阵S01A(始态始态)BBCDCCDDEDECF(终态终态)F(终态终态)EDAB10C1D010E10101F.DFA编编译译原原理理chapter15习题习题1(1010*|1(010)*1)*0abdc10e0101fghi01110jklmn.状态转换图状态转换图编编译译原原理理chapter15习题习题.状态转换矩阵状态转换矩阵编编译译原原理理chapter15习题习题.重命名后的状态转换矩阵重命名后的状态转换矩阵.DFA编编译译原原理理chapter15习题习题8、给出下面正规表达式、给出下面正规表达式(1)以)以01结尾的二进制数串。结尾的二进制数串。(0|1)*01(2)能被)能被5整除的十进制数。整除的十进制数。0|5(0|5)|(1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*(4)英文字母组成的所有符号串,要求符号串中的)英文字母组成的所有符号串,要求符号串中的字母按字典序排列。字母按字典序排列。(A|a)*(B|b)*(C|c)*(Z|z)*(3)包含奇數個)包含奇數個1或奇數個或奇數個0的二進制串的二進制串0*1(0|10*1)*|1*0(0|10*1)*编编译译原原理理chapter15习题习题(5)沒有重複出現的數字的數字符號串的全體)沒有重複出現的數字的數字符號串的全體令令ri=i|,i=0,1,2.9R0|R1|R2|.|R9記為記為Rii(0,1,2.,9)P(0,1,2.,9)表示表示0,1,2.,9的全排列的全排列ri0ri1.ri9ri0ri1.ri9 P(0,1,2.,9)8、给出下面正规表达式、给出下面正规表达式(6)最多有一個重複出現的數字的數字符號串的全體)最多有一個重複出現的數字的數字符號串的全體iri0ri1.ri9i(0,1,2.,9)ri0ri1.ri9 P(0,1,2.,9)(7)不包含字串)不包含字串abb的由的由a和和b組成的符號串的全體組成的符號串的全體b*(a*|(ba)*)*编编译译原原理理chapter15习题习题9、对下面情况给出、对下面情况给出DFA及正规表达式:及正规表达式:(1)0,1上的含有子串上的含有子串010的所有串。的所有串。正规式:正规式:(0|1)*010(0|1)*DFA做法同第做法同第7题。题。(2)0,1上不含子串上不含子串010的所有串。的所有串。正规式:正规式:1*(0|11*1)*1*0*1*(0|11)*(0|1)1*(0|11)*1*编编译译原原理理chapter15习题习题12、将图、将图3.18的的(a)和和(b)分别确定化和最少化。分别确定化和最少化。(a)aaa,b10.状态转换矩阵状态转换矩阵00,1110,10,110.重命名后的状态转换矩阵重命名后的状态转换矩阵012211200a2baba.DFA.最小化最小化0=(0,1,2)10,1a=10,1b=2因此,不能再分因此,不能再分02baa编编译译原原理理chapter15习题习题023145aaaabbbbbbaa(b)这道题实质上已经是确定化了的,所以我们只需最小化这道题实质上已经是确定化了的,所以我们只需最小化:2,3,4,50,12,3,4,5a=0,1,3,5分属两区,所以分为分属两区,所以分为2,43,50,1a=10,1b=2,4所以所以0,1等价等价2,4a=0,12,4b=3,5所以所以2,4等价等价3,5a=3,53,5b=2,4所以所以3,5等价等价所以分为所以分为0,12,43,5023aabbba编编译译原原理理chapter15习题习题14、构造一个、构造一个DFA,它接受,它接受=0,1上所有满足如下上所有满足如下条件的字符串:每个条件的字符串:每个1都有都有0直接跟在右边。直接跟在右边。思路:先写出满足条件的正规式,由正规式构造思路:先写出满足条件的正规式,由正规式构造NFA,再把,再把NFA确定化和最小化。确定化和最小化。满足条件的正规式:满足条件的正规式:(0|10)*0110yx(0|10)*xy12100编编译译原原理理chapter15习题习题xy12100确定化:确定化:给状态编号:给状态编号:编编译译原原理理chapter15习题习题02101100最小化:最小化:0,1,20,10=10,11=220=0,21=2或或0,1所以所以0,1不可分,用狀態不可分,用狀態0代表它們代表它們02100编编译译原原理理chapter15习题习题15、给定右线性文法、给定右线性文法G:求一个与:求一个与G等价的左线性文法。等价的左线性文法。S0S|1S|1A|0BA1C|1B0C|0C0C|1C|0|1SABCZ001110001101GZ:ZZ0|Z1|B0|A1BA0|0AB1|1确定化、最小化后的确定化、最小化后的DFA为:为:SB0A110Z010,1编编译译原原理理chapter15习题习题补充:构造一右线性文法,使它与如下文法等价:补充:构造一右线性文法,使它与如下文法等价:SABAUTUa|aUTb|bTBc|cB并根据所得右线性文法,构造出相应的状态转换图。并根据所得右线性文法,构造出相应的状态转换图。思路:思路:先写出原文法所描述的语言先写出原文法所描述的语言L(G)=ambnck|m,n,k1GS:SaS|aBBbB|bCCcC|caSaCbcBbcT编编译译原原理理chapter15习题习题chapter44.1、考虑下面文法、考虑下面文法G1:Sa|(T)TT,S|S(1)消去)消去G1的左递归;的左递归;Sa|(T)TSTT,ST|(2)经改写后的文法是否是)经改写后的文法是否是LL(1)文法,给出预测分析表。文法,给出预测分析表。经改写后的文法满足经改写后的文法满足3个条件,所以是个条件,所以是LL(1)的的编编译译原原理理chapter15习题习题预测分析表构造算法预测分析表构造算法:1.对文法中的每个产生式对文法中的每个产生式A执行第二步和第三步执行第二步和第三步;FIRST(S)=a,(FIRST(T)=a,(FIRST(T)=,FOLLOW(S)=),#FOLLOW(T)=)FOLLOW(T)=)a(,)#STTSaS S(T)TSTTSTTSTT,STT编编译译原原理理chapter15习题习题预测分析表构造算法预测分析表构造算法:1.对文法中的每个产生式对文法中的每个产生式A执行第二步和第三步执行第二步和第三步;2.对每个终结符对每个终结符a FIRST(),把把Aa加到加到MA,a中中;Sa;S;S(T);TST;T,STTFTRST(a)=aFIRST()=FIRST(T)=(FIRST(ST)=a,(,(FIRST(,(,ST)=,FIRST()=a(,)#STTSaS S(T)TSTTSTTSTT,ST3.若若 FIRST(),则对于任何则对于任何b FOLLOW(A)把把A加至加至MA,b中中FOLLOW(T)=FOLLOW(T)=)T编编译译原原理理chapter15习题习题递归子程序:递归子程序:procedureS;beginifsym=aorsym=thenabvanceelseifsym=(thenbeginadvance;T;ifsym=)thenadvance;elseerror;endelseerrorend;编编译译原原理理chapter15习题习题procedure T;procedure T;beginbeginS;TS;TEndEndprocedure T;procedure T;beginbeginif sym=,if sym=,then bengin then bengin advance;advance;S;T S;T end endEndEndsym:是输入串指针是输入串指针IP所指的符号所指的符号advance:是把是把IP调至下一个输入符号调至下一个输入符号error:是出错诊察程序是出错诊察程序编编译译原原理理chapter15习题习题补充题:有文法:补充题:有文法:ETEEATE|TFTTMFT|F(E)|iA+|-M*|/(1)求)求First、Follow集,判断是否是集,判断是否是LL(1)文法?)文法?(2)若是构造)若是构造LL(1)分析表?)分析表?(3)简述)简述LL(1)分析器的工作原理。)分析器的工作原理。编编译译原原理理chapter15习题习题4.2:有文法:有文法:ETEE+E|TFTTT|FPFF*F|P(E)|a|b|(1)求)求First、Follow集,判断是否是集,判断是否是LL(1)文法?)文法?(2)若是构造)若是构造LL(1)分析表?)分析表?(3)简述)简述LL(1)分析器的工作原理。)分析器的工作原理。编编译译原原理理chapter15习题习题ETEEATE|TFTTMFT|F(E)|iA+|-M*|/FIRST(M)=*,/FIRST(A)=+,-FIRST(F)=(,iFIRST(T)=*,/,FIRST(T)=(,i)FIRST(E)=+,-,FIRST(E)=(,iFOLLOW(E)=#,)FOLLOW(E)=#,)FOLLOW(T)=+,-,#,)FOLLOW(T)=+,-,#,)FOLLOW(F)=*,/,+,-,#,)FOLLOW(A)=(,iFOLLOW(M)=(,iEETEETEEEATEEATEEETTFTTFTTT-TTMFTTMFTTTFFiF(E)AA+A-MM*M/i+-*/()#编编译译原原理理chapter15习题习题P81.2.对文法对文法G:ETEE+E|TFTTT|FPFF*F|P(E)|a|b|1)FIRST(E)=FIRST(T)=FIRST(F)=FIRST(P)=(,a,b,FIRST(E)=+,FIRST(T)=FIRST(T)=(,a,b,FIRST(F)=*,FOLLOW(E)=#,)FOLLOW(E)=FOLLOW(E)=#,)FOLLOW(T)=FIRST(E)FOLLOW(E)=+,#,)FOLLOW(T)=FOLLOW(T)=+,#,)FOLLOW(F)=FIRST(T)FOLLOW(T)=(,a,b,+,#,)FOLLOWF)=FOLLOW(F)=(,a,b,+,#,)FOLLOW(P)=FIRST(F)FOLLOW(F)=*,(,a,b,+,#,)编编译译原原理理chapter15习题习题2)考虑下列产生式:FIRST(+E)FIRST()=+=FIRST(+E)FOLLOW(E)=+#,)=FIRST(T)FIRST()=(,a,b,=FIRST(T)FOLLOW(T)=(,a,b,+,),#=FIRST(*F)FIRST()=*=FIRST(*F)FOLLOW(F)=*(,a,b,+,),#=FIRST(E)FIRST(a)FIRST(b)FIRST()=所以,该文法式LL(1)文法.编编译译原原理理chapter15习题习题3)預測分析表:编编译译原原理理chapter15习题习题4)程序程序procedureE;beginifsym=(orsym=aorsym=borsym=thenbeginT;EendelseerrorendprocedureE;beginifsym=+thenbeginadvance;Eendelseifsym)andsym#thenerrorendprocedureT;beginifsym=(orsym=aorsym=borsym=thenbeginF;Tendelseerrorend编编译译原原理理chapter15习题习题procedureT;beginifsym=(orsym=aorsym=borsym=thenTelseifsym=*thenerrorendprocedureF;beginifsym=(orsym=aorsym=borsym=thenbeginP;FendelseerrorendprocedureF;beginifsym=*thenbeginadvance;Fendend编编译译原原理理chapter15习题习题procedureP;beginifsym=aorsym=borsym=thenadvanceelseifsym=(thenbeginadvance;E;ifsym=)thenadvanceelseerrorendelseerrorend;编编译译原原理理chapter15习题习题n4.3下面文法中,那些是下面文法中,那些是LL(1)文法的,說明理由文法的,說明理由n构造不带回溯的自上而下分析的文法条件构造不带回溯的自上而下分析的文法条件 1.文法不含左递归,文法不含左递归,2.对于文法中每一个非终结符对于文法中每一个非终结符A的各个产生式的候选的各个产生式的候选首符集两两不相交。即,若首符集两两不相交。即,若A 1|2|n 则则 FIRST(i)FIRST(j)(i j)3.对文法中的每个非终结符对文法中的每个非终结符A,若它存在某个候选首若它存在某个候选首符集包含符集包含,则,则FIRST(A)FOLLOW(A)=如果一个文法如果一个文法G满足以上条件,则称该文法满足以上条件,则称该文法G为为LL(1)LL(1)文法文法。编编译译原原理理chapter15习题习题SAbcAa|Bb|是,满足三个条件SAbAa|B|Bb|对于A不满足条件3SABBAAa|Bb|A、B都不满足条件3SaSe|BBbBe|CcCe|d满足条件3编编译译原原理理chapter15习题习题解題思路:構造文法的預測分析表,通常應當按下列步驟進行:1.消除文法的左遞歸(包括所有直接左遞歸和間接左遞歸)2.對消除左遞歸后的文法,提取公因子3.對經過上述改造后的文法,計算它的每個非終結符的FIRST集合和FOLLOW集合;4.根據FIRST集合和FOLLOW集合構造預測分析表:第1步對文法G的每個產生式A執行第1步和第3步;第2步對每個終結符aFIRST(),把A加至MA,a中;第3步若FIRST(),則對任何bFIRST(A),把A加至MA,b中;第4步把所有無定義的MA,a標上“出錯標誌”4.4對下面的文法:Expr-ExprExpr(Expr)|VarExprTailExprTail-Expr|VaridVarTailVarTail(Expr)|(1)構造LL(1)分析表(2)給出對句子id-id(id)分析過程编编译译原原理理chapter15习题习题4.4對下面的文法:Expr-ExprExpr(Expr)|VarExprTailExprTail-Expr|VaridVarTailVarTail(Expr)|(1)構造LL(1)分析表(2)給出對句子id-id(id)分析過程编编译译原原理理chapter15习题习题4.4對下面的文法:Expr-ExprExpr(Expr)|VarExprTailExprTail-Expr|VaridVarTailVarTail(Expr)|(1)構造LL(1)分析表(2)給出對句子id-id(id)分析過程编编译译原原理理chapter15习题习题(2)給出對句子id-id(id)分析過程编编译译原原理理chapter15习题习题(2)給出對句子id-id(id)分析過程编编译译原原理理chapter15习题习题(2)給出對句子id-id(id)分析過程编编译译原原理理chapter15习题习题(2)給出對句子id-id(id)分析過程编编译译原原理理chapter15习题习题chapter51、令文法、令文法G1为:为:EE+T|TTT*F|FF(E)|i证明证明E+T*F是它的一个句型,指出这个句型的所有是它的一个句型,指出这个句型的所有短语、直接短语和句柄。短语、直接短语和句柄。EE+TT*FT*F是句型是句型E+T*F相对于相对于T的短语的短语E+T*F句型句型E+T*F相对于相对于E的短语的短语T*F是句型是句型E+T*F相对于相对于T的直接短语的直接短语T*F是句柄是句柄编编译译原原理理chapter15习题习题2、考虑下面的表格结构文法、考虑下面的表格结构文法G2:Sa|(T)TT,S|S(1)给出)给出(a,(a,a)和和(a,a),(a),a)的最左和最右推的最左和最右推导。(a,(a,a)的最的最左左推导:推导:S(T)(T,S)(S,S)(a,S)(a,(T)(a,(T,S)(a,(S,S)(a,(a,S)(a,(a,a)(a,a),(a),a)的最的最左左推导:推导:S(T)(T,S)(S,S)(T),S)(T,S),S)(T,S,S),S)(S,S,S),S)(T,S),S,S),S)(S,S),S,S),S)(a,S),S,S),S)(a,a),S,S),S)(a,a),S),S)(a,a),a),S)(a,a),a),a)编编译译原原理理chapter15习题习题(a,a),(a),a)的最右推的最右推导:S(T)(T,S)(S,S)(S,a)(T),a)(T,S,S),S)(S,S,S),S)(T,S),S,S),S)(S,S),S,S),S)(a,S),S,S),S)(a,a),S,S),S)(a,a),S),S)(a,a),a),S)(a,a),a),a)(a,(a,a)的最右推导:的最右推导:S(T)(T,S)(T,(T)(T,(T,S)(T,(T,a)(T,(S,a)(T,(a,a)(S,(a,a)(a,(a,a)编编译译原原理理chapter15习题习题2)指出)指出(a,a),(a),a)的规范归约及每一步的句柄。的规范归约及每一步的句柄。S(T)T,Sa(T)ST,ST,S(T)Sa(T)ST,SaSaaSa(S,a),(a),a)STS(T,a),(a),a)aSa(T,S),(a),a)T,STT,S(T),(a),a)(T)S(T)(S,(a),a)STS(T,(a),a)S(T,S,(a),a)T,STT,S编编译译原原理理chapter15习题习题根据这个规范规约,给出根据这个规范规约,给出“移进移进归约归约”的过程,的过程,并给出它的语法树的自下而上的构造过程。并给出它的语法树的自下而上的构造过程。符号栈符号栈输入串:输入串:(a,a),(a),a)#S(T)T,Sa(T)ST,ST,S(T)Sa(T)ST,SaSa(aS,TaSS)T,ST(a S T)S)S T,a ST)S归约规则归约规则句柄句柄aSaSTSaSaT,STT,S(T)S(T)STSST,STT,S编编译译原原理理chapter15习题习题3、(1)计算练习计算练习2文法文法G2的的FIRSTVT和和LASTVT。G2:Sa|(T)TT,S|SFIRSTVT(S)=a,(FIRSTVT(T)=,a,(LASTVT(S)=a,)LASTVT(T)=,a,)S(T)().TT,S,FIRSTVT(S).,a,,,,(.TT,SLASTVT(T),.a,,,,),,,.S(T)(FIRSTVT(T).(a,(,(,(,.S(T)LASTVT(T).a),),),,).对待特殊地对待特殊地#,把它看作句型的开始和结束符把它看作句型的开始和结束符.根据根据#S#同理可得同理可得#a,#,#(,.#.a#,#,)#,.#,)(a#,)(a=.=.1 1、文法是算术文法,且不含、文法是算术文法,且不含产生式。产生式。2 2、由优先关系矩阵可知,任何、由优先关系矩阵可知,任何两个终结符之间的优先关系不多两个终结符之间的优先关系不多于一种。于一种。综上,该文法是算术优先文法。综上,该文法是算术优先文法。编编译译原原理理chapter15习题习题.,a()#,a()#.输入串输入串(a,(a,a)的算符优先过程。的算符优先过程。.(.a.,.(.a.,.a.).).#aS#(S,(a,a)#.,.(,(aa)#aS#(S,(S,a)#.,(,(a)#.aS#(S,(S,S)#.,(,(.)#.(,(#.)#S,ST#(S,(T)#.(T)S#(S,S)#.(,.)#.S,ST#(T)#.(.)#.(T)S#S#确认!确认!问题:没有依据最左素短语进行规约问题:没有依据最左素短语进行规约编编译译原原理理chapter15习题习题P134-5考虑文法SAS|bASA|a1、列出这个文法的所有LR(0)项目2、构造这个文法的LR(0)项目集规范族及识别或前缀的DFA3、这个文法是SLR的吗?若是,构造出它的SLR分析表4、这个文法是LALR或LR(1)的吗解答:1、编编译译原原理理chapter15习题习题P134-5考虑文法SAS|bASA|a1、列出这个文法的所有LR(0)项目2、构造这个文法的LR(0)项目集规范族及识别或前缀的DFA3、这个文法是SLR的吗?若是,构造出它的SLR分析表4、这个文法是LALR或LR(1)的吗解答:1、编编译译原原理理chapter15习题习题确定化:编编译译原原理理chapter15习题习题编编译译原原理理chapter15习题习题编编译译原原理理chapter15习题习题编编译译原原理理chapter15习题习题P135-6编编译译原原理理chapter15习题习题编编译译原原理理chapter15习题习题编编译译原原理理chapter15习题习题P135-7证明下面文法是SLR(1)文法,但不是LR(0)文法SAAAb|bBaBaAc|a|aAb解:文法GS:0:SA1:AAb2:AbBa3:BaAc4:Ba5:BaAb编编译译原原理理chapter15习题习题编编译译原原理理chapter15习题习题编编译译原原理理chapter15习题习题p135-8.证明下面的文法是证明下面的文法是LL(1)的的,但不是但不是SLR(1)的。的。SAaAb|BbBaAB解答解答:(1)首先该文法无左递归存在首先该文法无左递归存在,没有公共左因子。没有公共左因子。其次其次:对于对于SAaAb|BbBaFIRST(AaAb)=aFIRST(BbBa)=bFIRST(AaAb)FIRST(BbBa)=所以该文法是所以该文法是LL(1)文法。文法。(2)证明该文法不是证明该文法不是SLR的。的。文法的文法的LR(0)项目集规范族为项目集规范族为:I0=S.SS.AaAbS.BbBaA.B.I1=SS.I2=SA.aAbI3=SB.bBaI4=SAa.AbA.I5=SBb.BaB.I6=SAaA.bI7=SBbB.aI8=SAaAb.I9=SBbBa.考察考察I0:FOLLOW(A)=a,bFOLLOW(B)=a,bFOLLOW(A)FOLLOW(B)=a,b产生规约产生规约-规约冲突。规约冲突。所以该文法不是所以该文法不是SLR(1)文法。文法。编编译译原原理理chapter15习题习题P135-9编编译译原原理理chapter15习题习题编编译译原原理理chapter15习题习题编编译译原原理理chapter15习题习题编编译译原原理理chapter15习题习题

    注意事项

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

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




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

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

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

    收起
    展开