编译原理陈火旺版课后作业参考答案ch6 10.docx
- 文档编号:23034678
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:32
- 大小:53.46KB
编译原理陈火旺版课后作业参考答案ch6 10.docx
《编译原理陈火旺版课后作业参考答案ch6 10.docx》由会员分享,可在线阅读,更多相关《编译原理陈火旺版课后作业参考答案ch6 10.docx(32页珍藏版)》请在冰豆网上搜索。
编译原理陈火旺版课后作业参考答案ch610
属性文法和语法制导翻译第6章val给出该数的值:
7.下列文法由开始符号S产生一个二进制数,令综合属性
S→∣L
L→LB∣B
例如,B产生的二进位的结果值。
B试设计求的属性文法,其中,已知的综合属性c,给出由4,最后一个二进位的值是。
输入时,=,其中第一个二进位的值是【答案】
语义规产生
-}{:
=+*2→SL.L21{:
=}S→L{:
=*2+;LBL→1L.length:
=+1}{:
=;→LBL.length:
=1}B→0{:
=0}{:
=1}→B1
11.设下列文法生成变量的类型说明:
L→idL
L→,idL∣:
T
(1)构造一下翻译模式,把每个标识符的类型存入符号表;参考例。
【答案】
产生式语义规则
-{:
=+*2}idLL→1,idL→L{:
=}1.
{:
=*2+:
L.length:
=+1{:
=integeL.length:
=1}{:
=0}→Treal
语义分析和中间代码产生7章第:
1.给出下面表达式的逆波兰表示(后缀式)【答案】
后缀原
ab-c+*
(1)a*(-b+c)
abcde/+*+
(2)a+b*(c+d/e)
a-bc-d+*+(3)–a+b*(-c+d)
(4)notAornot(CornotD)AnotCDnotornotor(5)(AandB)or(notCorD)ABandCnotDoror(6)(AorB)and(CornotDandABorCDnotEandorand
E)
(7)if(x+y)*z=0ifxy+z*0=
thenab+c↑then(a+b)↑c
elseab↑celsea↑b↑c↑
3.请将表达式-(a+b)*(c+d)-(a+b+c)分别表示成三元式、间接三元式和四元式序列。
【答案】
三元式
(1ba+).
(1(四元间接三元式
T((+(+)T(T(1(
(3(
(2))T((c()TTT(((2(3)码(5():
T((1(+(1(6(4()
(2)(TT(4(5((3)→))→(6)
(1)→(5)(4)→→T7(7-T4T6的C+D)面赋值句4.按节所说的办法,写出下A:
=B*(-)程。
给出所产生的三地址代自下而上语法制导翻译过码。
【答案】四元式
T1c/(1uminus
)
DT2(2+T1
)
T3BT2*(3
译模式,把下列赋值句翻按照7.3.2节所给的翻5.
)译为三地址代码:
A/T3:
=(4
[i,j]+C[A[k,l]]+d
A[i,j]:
=B
).
[i+j]
【答案】
中间代中间代
*:
=:
=i*(13(1A11
(14:
=+:
=(2[111
(3:
=A-(15:
=C-C1A:
=*(4(16:
=*113
:
=i*(17:
=[(5111B2
+:
=+:
=(18(6115
(7:
=i+(19:
=B-15*:
=(8:
=d-(2017
:
=[:
=*(21(911d
(10)(22):
=TT[T]:
=k*NTA21819178(11)T+TT(23):
=T:
=T+l81982015和节的翻译办法,按7.4.16.
]:
=T[TT(12)T:
=A-C(24)A20923Aor(Band
分别写出布尔式not(CorD))的四元式序列。
【答案】用作条件控制时产生的四元式:
用作数值计算时产生的四元式:
四元式orC(1DT1)notT(2/T21)(3BandTT32).
(o四元四元(jnz,C,-,(4)jnz,((1A,-,(5)
0)为真出口,和(8)其中:
右图中(1(j,-,-,(7)-,(3)(6(2(j,-,为假出口。
(4)(5)(7(jnz,D,-,(5)B,-,(7(3(jnz,
把下面的语句节的办法,7.用7.5.(5))翻译成四元式序列:
(8)(j,-,-,
(1))(4)(j,-,-,0)WhileA =C+1DdoelsewhileA≦A: =A+2;【答案】 四元式四元式 (j,-,-, (1))(9) (1)(j<,A,C, (3))(j≦,A,(10) (2)(j,-,-,0) D,(12)) (3)(j<,B,D,(11)(j,-,-, (1)) (5))(4)(j,-,-,0)(12)(+,A,2,T)2(: =,T1,(13)(5),-,A)(j=,A,2(7))(6)(j,-,-,(14)(j,-,-,(10)) (10))(7)(+,C,1,T(j,-,-, (1))(15))1. -,C)(: =,T(8)1 运行时存储空间组织章第9 程序: 4.下面是一个Pascal programPP(input,output);VARk: integer;(n: integer): integerFUNCTIONF begin ifn<=0thenF: =1 elseF: =n*F(n-1);end;DISPLAY的内容是什么当时整个运行栈的内容是什么递归地)进入F后,当第二次( 【答案】后,运行栈的内容: 次进入F后,运行栈的内容: 第2次进入第1F 1711410 09016F次2第F 15n(8形参n(形参)) 形参个数714)1(形参个数)1(13全局2(6display)9(全局display)125返回地址返回地址P主程序F次1第04411 k34100(display)290形参)1n(8返回地址P主程序1(70形参个数)062(全局display)返回地址5. 04 k 20(display 1返回地 00 第2次进入F后,Display内容为: 11 0 5.对如下的Pascal程序,画出程序执行到 (1)和 (2)点时的运行栈。 programTr(input, output);VARi: integer;d: procedureB; VARc: char; Begin … (1)… end;{B} procedureC; VARt: real; Begin … (2)… end;{C} Begin …… B; 【答案】 运行到 (1)时的运行栈: (静态链)运行到 (2)时的运行栈: (静态链) 151 0形参个0形参个141131 返回地返回地址1212 1111010 k形k形9 1形参个1形参个88 TT077 返回地址返回地址66 0055 dd44 【答案】ii33时的运运行到 (1)行栈: 0022表)Display运行(返回地址返回地址11运行时的到 (2)栈: 0000 表)Display( c201913185B. 01720t 0形参个)11319全display10(15518C返回地址14170510形参个)16 12p10全display)15511返回地址14 010139k形参12)81形参个511display2(7全0106返回地)9k形参051形参个 d47display2全局有如下意Pascal6. 3i6返回地源程序,并知在运行0(display25刻,以过程单位对程返回地1中的变量行动态存0分配。 当运主程序而调0(display2用过程语句X时,试分别给出以下时刻的行栈的内容返回地址和Display的内容。 00 (1)句;已开始而尚未执行完毕标号为10的语 (2)已开始而尚未执行完毕标号为11的语句; programmain; VARa,b,c: integer; procedureX(i,j: integer); {X} VARd,e: real; procedureY;{Y} VARf,g: real; Begin …… 10: Y; …… 11: Z; …… end;{X} 【答案】 运行到标11时,运行栈的内容: (2)时,运行栈的内容10 (1)运行到标号26j 25iZ 24h 2316 226 210 20k 191(形参个数)X(a,b) 1812(全局display) 17返回地址 166 main 1g2 1f23 12211621 12 1)0形参个数1 2形参个display12(1全 2全display返回地址17 X(a,b 返回地1 1 1d 61 01 mai0(display1 返回地10 02形参个 →mainX(a,b) display全局2返回地址 X(a,b)Ymainc 1优1.试把以下程序划分为基本块并作出其程序流图。 20(displayreal 【答案返回地址A: = 00realCB: =1A: =0L1: A: =A+B ifB≧CgotoL2 L1: A: =A+BB: =B+1. 2.试把以下程序划分为基本块并作出其程序流图。 【答案realA,B F: =1realA,B F: =1C: =A*A C: =A*AD: =B*B ifC E: =A*AL1: E: =B*BE: =A*AF: =F+1F: =F+2F: =F+1 E: =E+FE: =E+FE: =E+F writeEhalthalL2: F: =F-1L1: E: =B*B : B23.试对以下基本块B1和 B2: B: =3B1: A: =B*CD: =A+CD: =B/C E: =A*CE: =A+D G: =B*FF: =2*E H: =A+CG: =B*C. 分别应用DAG对它们进行优化,并就以下两种情况分别写出优化后的四元式序列: (1)假设只有G,L,M在基本块后面还要被引用; (2)假设只有L在基本块后面还要被引用。 【答案】 G,L,M可用L可用 (2)基本块: (1)B1 (1)G: =B*C (1)G: =B*C (2)H: =G*G (2)H: =G*G (3)L: =H*G G,L,M可用L可用B2 (2)基本块: (1) (1)D: =A+C (1)D: =A+C (2)E: =A*C (2)E: =A*C (3)G: =3*F(3)J: =D+E (4)J: =D+E
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理陈火旺版课后作业参考答案ch6 10 编译 原理 陈火旺版 课后 作业 参考答案 ch6