编译原理习题(精品).ppt
《编译原理习题(精品).ppt》由会员分享,可在线阅读,更多相关《编译原理习题(精品).ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.1.四元式之间的联系是通过四元式之间的联系是通过四元式之间的联系是通过四元式之间的联系是通过_实现的实现的实现的实现的A A、临时变量临时变量临时变量临时变量 B B、序列行号序列行号序列行号序列行号 C C、程序变量程序变量程序变量程序变量 D D、符号表符号表符号表符号表2.2.中间代码生成时所依据的是中间代码生成时所依据的是中间代码生成时所依据的是中间代码生成时所依据的是_A A、词法规则词法规则词法规则词法规则 B B、语法规则语法规则语法规则语法规则 C C、语义规则语义规则语义规则语义规则 D D、等价变换等价变换等价变换等价变换3.3.在编译程序中与生成中间代码的目的在编译程
2、序中与生成中间代码的目的在编译程序中与生成中间代码的目的在编译程序中与生成中间代码的目的无关无关无关无关的是的是的是的是_A A、便于目标代码的优化便于目标代码的优化便于目标代码的优化便于目标代码的优化 B B、便于存储空间的组织便于存储空间的组织便于存储空间的组织便于存储空间的组织C C、便于目标代码的移植便于目标代码的移植便于目标代码的移植便于目标代码的移植 D D、便于编译程序的移植便于编译程序的移植便于编译程序的移植便于编译程序的移植14 4、在语法制导翻译中,不采用拉链、在语法制导翻译中,不采用拉链、在语法制导翻译中,不采用拉链、在语法制导翻译中,不采用拉链-回填技术的语句是回填技术
3、的语句是回填技术的语句是回填技术的语句是_A.A.转向语句转向语句转向语句转向语句B B、赋值语句赋值语句赋值语句赋值语句 C C、条件语句条件语句条件语句条件语句 D D、循环语句循环语句循环语句循环语句5 5、能正确表示算术表达式、能正确表示算术表达式、能正确表示算术表达式、能正确表示算术表达式a+b*c+da+b*c+d的后缀式是的后缀式是的后缀式是的后缀式是_A A、abcabc*+d+B.*+d+B.abcabc*d+C.*d+C.abab+cdcd*+D.*+D.bcbc*a+d+*a+d+6 6、对对对对_表进行变动较为困难表进行变动较为困难表进行变动较为困难表进行变动较为困难A
4、 A、三元式三元式三元式三元式B B、间接三元式间接三元式间接三元式间接三元式C C、四元式四元式四元式四元式 D D、三地址码三地址码三地址码三地址码27 7、P202P202练习练习练习练习5.2.3.5.2.3.有产生有产生有产生有产生式式式式ABCDABCDABCDABCD,其中四个文法符号均其中四个文法符号均其中四个文法符号均其中四个文法符号均有两个属性,有两个属性,有两个属性,有两个属性,s s为综合属性,为综合属性,为综合属性,为综合属性,i i为继承属性。为继承属性。为继承属性。为继承属性。判断是否符合判断是否符合判断是否符合判断是否符合S S属性定义;是否符合属性定义;是否符
5、合属性定义;是否符合属性定义;是否符合L L属性定义;是否存属性定义;是否存属性定义;是否存属性定义;是否存在和这些规则一致的求值过程在和这些规则一致的求值过程在和这些规则一致的求值过程在和这些规则一致的求值过程1)A.s=B.i+C.s2)A.s=B.i+C.s 和和D.i=A.i+B.s 3)A.s=B.s+D.s4)A.s=D.i,B.i=A.s+C.s,C.i=B.s和和D.i=B.i+C.i385.3.1E85.3.1EE+T|TTE+T|TTnum.num|numnum.num|num1)1)给出一个给出一个给出一个给出一个SDDSDD来确定每个项来确定每个项来确定每个项来确定每个
6、项T T和表达式和表达式和表达式和表达式E E的类型的类型的类型的类型解:重写文法为:解:重写文法为:解:重写文法为:解:重写文法为:E EE E1 1+T|TT+T|TTnumnum1 1.num.num2 2|num|num引入属性引入属性引入属性引入属性typetype,typetype为为为为intint表示整型,为表示整型,为表示整型,为表示整型,为floatfloat表示实型,给出表示实型,给出表示实型,给出表示实型,给出SDDSDD:产生式产生式产生式产生式语义规则语义规则语义规则语义规则E EE E1 1+T+Tif(Eif(E1 1.typetype=intint)&(T.)
7、&(T.typetype=intint)E.E.typetype=intint;elseE.elseE.typetype=float;=float;EETTE.E.typetype=T.=T.typetypeT Tnumnum1 1.num.num2 2T.T.typetype=float=floatT TnumnumT.T.typetype=intint495.4.495.4.4为下面的产生式写出与例为下面的产生式写出与例为下面的产生式写出与例为下面的产生式写出与例5.105.10类似的一个类似的一个类似的一个类似的一个L L属性属性属性属性SDDSDD。S Sif(C)Sif(C)S1 1
8、elseSelseS2 2解:语义规则为:解:语义规则为:解:语义规则为:解:语义规则为:L L1 1=new();=new();L L2 2=new();=new();C.true=LC.true=L1 1;C.falseC.false=L=L2 2;S S1 1.next=S.next=S2 2.next=S.next;.next=S.next;S.codeS.code=C.code|label|L=C.code|label|L1 1|S|S1 1.code|.code|gotogoto|S.next|label|L|S.next|label|L2 2|S S2 2.code.code51
9、05.5.5105.5.5按照按照按照按照5.5.45.5.4节的风格,将节的风格,将节的风格,将节的风格,将5.4.45.4.4中得到的每个中得到的每个中得到的每个中得到的每个SDDSDD和一个和一个和一个和一个LRLR语语语语法分析器一起实现。法分析器一起实现。法分析器一起实现。法分析器一起实现。解:加入必要的占位符,重写文法为:解:加入必要的占位符,重写文法为:解:加入必要的占位符,重写文法为:解:加入必要的占位符,重写文法为:S Sif(Mif(M1 1C)MC)M2 2SS1 1elseMelseM3 3SS2 2MM 假设假设假设假设S.nextS.next位于归约之后的栈顶第二条
10、记录:可以给出位于归约之后的栈顶第二条记录:可以给出位于归约之后的栈顶第二条记录:可以给出位于归约之后的栈顶第二条记录:可以给出S S识别过程的识别过程的识别过程的识别过程的LRLR语法分析栈变化及相关代码如下:语法分析栈变化及相关代码如下:语法分析栈变化及相关代码如下:语法分析栈变化及相关代码如下:?S.nexS.next tif if(MM1 1C.trueC.trueC.falseC.falseL L1 1L L2 2将将将将 归约到归约到归约到归约到MM1 1时执行的代码:时执行的代码:时执行的代码:时执行的代码:C.true=LC.true=L1 1=new();=new();C.f
11、alse=LC.false=L2 2=new();=new();6?S.nexS.next tif if(MM1 1C.trueC.trueC.falseC.falseL L1 1L L2 2将将将将 归约到归约到归约到归约到MM2 2时执行的代码:时执行的代码:时执行的代码:时执行的代码:S S1 1.next=stacktop-6.next;.next=stacktop-6.next;C CC.codeC.code)MM2 2S S1 1.next.next7?S.nexS.next tif if(MM1 1C.trueC.trueC.falseC.falseL L1 1L L2 2将将将
12、将 归约到归约到归约到归约到MM3 3时执行的代码:时执行的代码:时执行的代码:时执行的代码:S S2 2.next=stacktop-9.next;.next=stacktop-9.next;C CC.codeC.code)MM2 2S S1 1.next.nextS S1 1S S1 1.code.codeelselse eMM3 3S S2 2.next.next8?S.nexS.next tif if(MM1 1C.trueC.trueC.falseC.falseL L1 1L L2 2将将将将if(Mif(M1 1C)MC)M2 2SS1 1elseMelseM3 3SS2 2 归约
13、到归约到归约到归约到S S时的代码:时的代码:时的代码:时的代码:tempcodetempcode=stacktop-6.code|label|stacktop-7.L=stacktop-6.code|label|stacktop-7.L1 1|stacktop-3.code|stacktop-3.code|gotogoto|stacktop-10.next|label|stacktop-10.next|label|stacktop-7.Lstacktop-7.L2 2|stacktop.code|stacktop.codetop=top9;top=top9;stacktop.code=sta
14、cktop.code=tempcodetempcode;C CC.codeC.code)MM2 2S S1 1.next.nextS S1 1S S1 1.code.codeelselse eMM3 3S S2 2.next.nextS S2 2S S2 2.code.code91111、为下面的表达式构造、为下面的表达式构造、为下面的表达式构造、为下面的表达式构造DAGDAG(x+y)-(x+y)*(x-y)+(x+y)*(x-y)(x+y)-(x+y)*(x-y)+(x+y)*(x-y)+x xy y*+101212、P237P237练习练习练习练习6.2.16.2.1将算术表达式将算术表
15、达式将算术表达式将算术表达式a+-(b+c)a+-(b+c)翻译成抽象语翻译成抽象语翻译成抽象语翻译成抽象语法树、四元式序列、三元式序列、间接三元式序列。法树、四元式序列、三元式序列、间接三元式序列。法树、四元式序列、三元式序列、间接三元式序列。法树、四元式序列、三元式序列、间接三元式序列。抽象语法树抽象语法树抽象语法树抽象语法树+a auminusuminus+b bc c四元式序列四元式序列四元式序列四元式序列三元式序列三元式序列三元式序列三元式序列0 01 12 2+b bc cuminusuminus(0)(0)+a a(1)(1)+b bc ct t1 1uminusuminust
16、t1 1t t2 2+a at t2 2t t3 3111212、P237P237练习练习练习练习6.2.16.2.1将算术表达式将算术表达式将算术表达式将算术表达式a+-(b+c)a+-(b+c)翻译成抽象语翻译成抽象语翻译成抽象语翻译成抽象语法树、四元式序列、三元式序列、间接三元式序列。法树、四元式序列、三元式序列、间接三元式序列。法树、四元式序列、三元式序列、间接三元式序列。法树、四元式序列、三元式序列、间接三元式序列。+b bc cuminusuminus(0)(0)+a a(1)(1)0 01 12 2(0)(0)(1)(1)(2)(2)指令指令指令指令303031313232间接三
17、元式间接三元式121313、P237P237练习练习练习练习6.2.26.2.2a=bi+cja=bi+cj抽象语法树抽象语法树抽象语法树抽象语法树=a a+b bi i四元式序列四元式序列四元式序列四元式序列*i i8 8t t1 1=b bt t1 1t t2 2*j j8 8t t3 3=c ct t3 3t t4 4+t t2 2t t4 4t t5 5=t t5 5a a=c cj j131313、P237P237练习练习练习练习6.2.26.2.2ai=b*cb*dai=b*cb*d抽象语法树抽象语法树抽象语法树抽象语法树=a a b bc c四元式序列四元式序列四元式序列四元式序
18、列*i i8 8t t1 1=a at t1 1t t2 2*b bc ct t3 3*b bd dt t4 4 t t3 3t t4 4t t5 5=t t5 5t t2 2=*b bd di i*141414、6.5.1(1)6.5.1(1)假定图假定图假定图假定图6-266-26中的函数中的函数中的函数中的函数widenwiden可以处理图可以处理图可以处理图可以处理图6-256-25a a的的的的层次结构中的所有类型,翻译下列表达式。假设层次结构中的所有类型,翻译下列表达式。假设层次结构中的所有类型,翻译下列表达式。假设层次结构中的所有类型,翻译下列表达式。假设x x是浮点是浮点是浮点
19、是浮点型,型,型,型,s s是短整型是短整型是短整型是短整型,c c是字符型。是字符型。是字符型。是字符型。x=s+cx=s+ctt1 1=(short)c=(short)ctt2 2=s+t=s+t1 1tt3 3=(float)t=(float)t2 2x=tx=t3 3151515、6.4.6(1)6.4.6(1)一个按行存放的整数数组一个按行存放的整数数组一个按行存放的整数数组一个按行存放的整数数组Ai,jAi,j的的的的i i的范围为的范围为的范围为的范围为1-1-1010,下标,下标,下标,下标j j的范围为的范围为的范围为的范围为1-201-20。每个整数占。每个整数占。每个整数
20、占。每个整数占4 4个字节。假设数组个字节。假设数组个字节。假设数组个字节。假设数组A A从从从从0 0字节开始存放,请给出下列元素的位置:字节开始存放,请给出下列元素的位置:字节开始存放,请给出下列元素的位置:字节开始存放,请给出下列元素的位置:A4,5A4,5(4-1)*20+(5-1)*4=256(4-1)*20+(5-1)*4=2566.4.7(1)6.4.7(1)按列存放方式按列存放方式按列存放方式按列存放方式(5-1)*10+(4-1)*4=172(5-1)*10+(4-1)*4=172161616、2.3.12.3.1构建一个语法制导翻译构建一个语法制导翻译构建一个语法制导翻译构
21、建一个语法制导翻译方案,该方案将算术表达式从中方案,该方案将算术表达式从中方案,该方案将算术表达式从中方案,该方案将算术表达式从中缀表示方式翻译成前缀表示方式。缀表示方式翻译成前缀表示方式。缀表示方式翻译成前缀表示方式。缀表示方式翻译成前缀表示方式。给出输入给出输入给出输入给出输入9-5+29-5+2的注释分析树。的注释分析树。的注释分析树。的注释分析树。解:解:解:解:EEprint(+)Eprint(+)E1 1+T+TEprint(-)EEprint(-)E1 1TT 以下规则类似图以下规则类似图以下规则类似图以下规则类似图2-152-152-152-15E EE E+T Tprint(
22、+)print(+)print(-)print(-)E E-T T2 2print(2)print(2)print(5)print(5)5 5T T9 9print(9)print(9)171717、3.8.1(1)3.8.1(1)假设我们有两个词法单元:关键字假设我们有两个词法单元:关键字假设我们有两个词法单元:关键字假设我们有两个词法单元:关键字ifif和标识和标识和标识和标识符(除符(除符(除符(除if if外的所有由字母组成的串),请给出识别这些词外的所有由字母组成的串),请给出识别这些词外的所有由字母组成的串),请给出识别这些词外的所有由字母组成的串),请给出识别这些词法单元的法单元
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 习题 精品
限制150内