编译原理 第二版 (陈意云 著) 高等教育出版社 课后答案 5(可编辑)_第1页
编译原理 第二版 (陈意云 著) 高等教育出版社 课后答案 5(可编辑)_第2页
编译原理 第二版 (陈意云 著) 高等教育出版社 课后答案 5(可编辑)_第3页
编译原理 第二版 (陈意云 著) 高等教育出版社 课后答案 5(可编辑)_第4页
编译原理 第二版 (陈意云 著) 高等教育出版社 课后答案 5(可编辑)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编译原理第二版陈意云著高等教育出版社课后答案5课后答案网,用心为你服务大学答案中学答案考研答案考试答案最全最多的课后习题参考答案,尽在课后答案网/0KHDAW团队一直秉承用心为大家服务的宗旨,以关注学生的学习生活为出发点,旨在为广大学生朋友的自主学习提供一个分享和交流的平台。爱校园/课后答案网/淘答案/编译原理习题课5编译原理习题课5栾俊LUANJ/3/26/20107171把算术表达式ABCDABC翻译成A语法树B有向无环图C后缀表示D三地址代码2010326LUANJ/271续71续A语法树B有向无环图CABABCDABCD2010326LUANJ/371续71续C后缀表示ABCDABCD三地址代码T1ABT2CDT3T1T2T4T3T5T1CT6T4T52010326LUANJ/47272把C程序MAININTIINTA10WHILEI10AI0的可执行语句翻译成A语法树B后缀表示C三地址代码2010326LUANJ/572续72续A语法树WHILEB后缀表示I10AIARRAY0WHILE10IARRAY0AI2010326LUANJ/672续72续C三地址代码1IFI10GOTO32GOTO53AI04GOTO15RETURN02010326LUANJ/77474修改图74中计算声明的类型和相对地址的翻译方案,允许名字表而不是单个名字出现在形式为DIDT的声明中。POFFSET0DSDDDDIDTENTERIDNAME,TTYPE,OFFSETOFFSETTWIDTHTINTEGERTTYPEINTEGERTWIDTH4TREALTTYPEREALTWIDTH8TARRAYNUMOFTTTYPEARRAYNUMVAL,TTYPE11TWIDTHNUMVALTWIDTH1TTTTYPEPOINTERTTYPE11TWIDTH42010326LUANJ/874续74续DID_LISTTID_LISTID_LIST,ID_LIST|IDDINITIDTABLEID_LISTTFOREACHNAMEINIDTABLEDOENTERNAME,TTYPE,OFFSETOFFSETOFFSETTWIDTHENDID_LISTINITIDTABLE1INITIDTABLE2ID_LIST,ID_LISTMERGEIDTABLE1,IDTABLE2,IDTABLE12ID_LISTIDADDIDTABLE,IDNAME2010326LUANJ/97575算符作用于表达式E,E,E的前缀形式12K是PPP,其中P是E的前缀形式。12KIIA写出ABC的前缀形式。C给出把表达式翻成前缀形式的语法制导定义。2010326LUANJ/1075续75续AABCC表达式翻成前缀形式的语法制导定义EET|TTTF|FFF|E|IDLENPRINTFESTRINGEE1TESTRING“”E1STRINGTSTRINGETESTRINGTSTRINGTT1FTSTRING“”T1STRINGFSTRINGTFTSTRINGFSTRINGFF1FSTRING“”F1STRINGFEFSTRINGESTRINGFIDFSTRINGIDVALUE2010326LUANJ/117777修改图711的语法制导定义,为栈机器产生代码。EEOREEPLACENEWTEMP12EMITEPLACE,EPLACE,OR,EPLACE12EEANDEEPLACENEWTEMP12EMITEPLACE,EPLACE,AND,EPLACE12ENOTEEPLACEEPLACE11EEEPLACENEWTEMP1EMITEPLACE,NOT,EPLACE1EIDRELOPIDEPLACENEWTEMP12EMITIF,IDPLACE,RELOPOP,IDPLACE,GOTO,12NEXTSTAT3EMITEPLACE,0EMITGOTO,NEXTSTAT2EMITEPLACE,1ETRUEEPLACENEWTEMPEMITEPLACE,1EFALSEEPLACENEWTEMPEMITEPLACE,02010326LUANJ/1277续77续EEOREEMITOR12EEANDEEMITAND12ENOTEEMITNOT1EE1EIDRELOPIDEMITPUSH|IDNAME112EMITPUSH|IDNAME2EMITRELOP|RELOPOPETRUEEMIT1EFALSEEMIT0指令解释OR将栈顶和次栈顶值取出,进行或操作,将结果压栈AND将栈顶和次栈顶值取出,进行与操作,将结果压栈NOT将栈顶值取出,进行非操作,将结果压栈PUSHNAME将NAME的值压栈RELOPOP将栈顶和次栈顶值取出,判断他们的OP关系,将结果压栈2010326LUANJ/137878表74的语法制导定义把EID1ID2翻译成一对语句IFID1ID2GOTOGOTO可以用一个语句IFID1ID2GOTO来代替,当E是真时执行后继代码。修改表74的语法制导定义,使之产生这种性质的代码。2010326LUANJ/147676假转方式产生式语义规则EEOREETRUEETRUE121EFALSENEWLABEL1ETRUEETRUE2EFALSEEFALSE2ECODEECODE增加|GENGOTO,ETRUE|11GENEFALSE,|ECODE12EEANDEETRUENEWLABEL121EFALSEEFALSE1ETRUEETRUE2EFALSEEFALSE2ECODEECODE删去|GENETRUE,|ECODE1122010326LUANJ/1576续续表76续续表ENOTEETRUEEFALSE11EFALSEETRUE1ECODEECODE1EEETRUEETRUE11EFALSEEFALSE1ECODEECODE1EIDRELOPIDECODEGENIF,IDPLACE,RELOPOP,IDPLACE,1212GOTO,ETRUE|GENGOTO,EFALSE修改为ECODEGENIF,ID1PLACE,NOTRELOPOP,ID2PLACE,GOTO,EFALSEETRUEECODEGENGOTO,ETRUEECODEGENGOTO,EFALSEEFALSE2010326LUANJ/167979下面的C语言程序MAININTI,JWHILEI|J在X86/LINUX机器上编译生成的汇编代码如下在该汇编代码中有关的指令后加注释,将源程序中的操作和生成的汇编代码对应起来,以判断确实是用短路计算来完成布尔表达式计算的。2010326LUANJ/1779续题目79续题目L6TEXTCMPL5,8EBPALIGN4JGL4GLOBLMAINJMPL5TYPEMAIN,FUNCTIONMAINP2ALIGN4,7PUSHLEBPL5MOVLESP,EBPJMPL3SUBL8,ESPP2ALIGN4,7NOPL4P2ALIGN4,7MOVL8EBP,EAXL2MOVLEAX,4EBPCMPL0,4EBPJMPL2JNEL6P2ALIGN4,7CMPL0,8EBPL3JNEL6L1JMPL5LEAVEP2ALIGN4,7RET2010326LUANJ/1879续79续L2L2CMPL0,4EBPIFI0,GOTOL6JNEL6CMPL0,8EBPIFJ0,GOTOL6JNEL6JMPL5GOTOL5L6L6CMPL5,8EBPIFJ5,GOTOL4JGL4JMPL5GOTOL5L5L5JMPL3GOTOL3P2ALIGN4,7L4L4MOVL8EBP,EAXEAXJMOVLEAX,4EBPIEAXJMPL2GOTOL2L3L3L1L1LEAVELEAVE2010326LUANJ/19711711用73节的翻译方案,把下列赋值语句翻译成三地址代码AI,JBI,JCAK,1DIJ2010326LUANJ/20711续711续SLEMEEELISTEELELIST,EIDELLLELISTALID类似MELISTIDEIDJIDEDEEICLLL类似MIDIDIJ2010326LUANJ/21711续AI,J711续AI,JAI,JL1ELIST12ELIST11,E11IDE12,E11IDL12,E11IDID,E11IDID,L11IDID,IDL11IDL11PLACEJL11OFFSETNULLE11L11E11PLACEJL12IDL12PLACEIL12OFFSETNULLE12L12E12PLACEIELIST11IDE12ELIST11PLACEIELIST11NDIM1ELIST11ARRAYAELIST12ELIST11,ETT1M112EMITT1IN2AEMITT1T1IELIST12ARRAYAELIST12PLACET1ELIST12NDIM2L1ELIST12L1PLACET2EMITT2AN21WAL1OFFSETT3EMITT3T1WT1IN2AT1T1IT2AN21WAT3T1W2010326LUANJ/22711续BI,J,AK,1711续BI,J,AK,1类似地BI,JL2IDID,IDL2PLACET5L2OFFSETT6T4IN2BT4T4JT5BN21WBT6T4WAK,1L3IDID,IDL3PLACET8L3OFFSETT9T71N2AT7T7KT8AN2A1WT9T7W2010326LUANJ/23711续CAK,1711续CAK,1CAK,1E4L41ELIST41IDE41IDL3IDIDID,IDE41L3E41PLACET10EMITT10T8T9ELIST41IDE41ELIST41PLACET10ELIST41NDIM1ELIST41ARRAYCL41ELIST41L41PLACET11EMITT11CN1WCL41OFFSETT12ENITT12T10WE4L41E4PLACET13EMITT13T11T12T10T8T9T11CN1WCT12T10WT13T11T122010326LUANJ/24711续DIJ711续DIJDIJE5L51ELIST51IDE51IDE52E53IDL52E53IDIDE53IDIDL53IDIDIDL53IDL53PLACEJLOFFSETNULLE53L53E52PLACEJL53IDL52PLACEILOFFSETNULLE52L52E52PLACEIE51E52E53E51PLACET14EMITT14IJELIST51IDE51ELIST51PLACET14ELISTNDIM1ELISTARRAYDL51ELIST51L51PLACET15EMITT15DN1WDLOFFSETT16EMITT16T14WE5L51E5PLACET17EMITT17T15T16T14IJT15DN1WDT16T14WT17T15T162010326LUANJ/25711续711续AI,JBI,JCAK,1DIJAI,JBI,JCAK,1DIJSL1E8L1E7E5L1E6E4E5L1L2E4E5E6L2E6PLACET18EMITT18T5T6E7E6E4E7PLACET19EMITT19T18T13E8E7E5E8PLACET20EMITT20T19T17SL1E8EMITT2T3T20T14IJT71N2T1IN2AAT15DN1WT7T7KT1T1IDT16T14WT8AN2A1WT2AN21WAT17T15T16T9T7WT3T1WT18T5T6T10T8T9T4IN2BT19T18T13T11CN1WT4T4JCT20T19T17T12T10WT5BN21WBT2T3T20T13T11T12T6T4W2010326LUANJ/26714714对语句FORI1STEP10JUNTIL10JDOJJ1可以有三种不同的语义定义。一种可能的含义是,步长表达式10J和终值表达式10J都仅在循环前计算一次,例如PL/1语言。这样,如果在循环前J5,那么该循环体执行10次。第二种语义完全不同,要求每次通过循环体时,都要执行步长表达式和终值表达式。例如,若在循环前J5,那么该循环将不会终止,C语言的FOR语句属于这种情况,其表达式E2和E3是要重复计算的见712题。第三种留底由ALGOL这样的语言给出。当步长是负数时,该循环终止的测试是I10J,而不是I10J。分别写出这三种定义下的中间代码结构。2010326LUANJ/27714续71

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论