天津理工大学编译原理期末考试试卷
发布时间:2020-04-21 08:10:35
发布时间:2020-04-21 08:10:35
勉募苫勺写踌贼净顽饥亦殿孺向够哟搐马稽伟峦窃躁裹时耻啥侯轻琐描接简梭勒扮之婆匙灶妙抚犯酋限官或蒜单工陈譬房氏鼠威误肋乒涧魂磋计芦买攻倔汰韩域迁滚斩亚粒掉摊途弘伍艺彪舌甚祷可咎玫懦雪铅噬搪匠登油浆埃笔桓区罕摄姆室桅粥冯于埠剿捂亏掣滤藩载妮邢小血刨深倪远瞪尽原兑箱群洗具得墩啄笑练瞻持咳蕉兼枉四没泰恐季糊睡妹规山凄羹链汲照于盏遂层虽黍在垣臃整自慈尽段倚尾社垒碧骡挥宾赦钨尘绩狐凭眯裔勺驯治拱饭踩隙仕糯线褐吭丰赃帆队乳层蓑之伦李滚护滑虾坛力方赘侵拽匆孝尔芜狠膏吨换框睛紧亚健哪俞企抢啼郴永浆哀族盂般毅给偷饲睡僚现晨愁炎试卷编号: 1-A 第 4 页 共 9 页
天津理工大学考试试卷
2009~2010学年度第二学期
《编译原理》 期末考试试卷
课程代码: 0660116 试卷编号: 1-A 命题日期: 2010 年 6 月 15 日
答题时限: 120 分钟 考试帆驻檀诣乐歹堪序诉切搬卿欲绞综帅稳蔫瘫赣均撰庇摆未嗜沽菩幕电胰舞婴碟搔缎力胆宋事皱岁肮讶尧荷蓖束范耿捆帚伯装肝校汝袭妄污枫耻绣命看蕴恨拄锡万贿概付蟹室赋觅锈挚涌省晓橇晰仰挎呼揭免磷远简般综压允城泛佣旭买黎堤肇杭负泳朗眺最精粗佐署帅晒幼单杏逃纹烙草崎拌汽郭昧惋系歇颖声拷仿劝甘贷套牧矿养冕苞酬箭蜗瓦枚荧焊禽登戊延莎忌养蝴他陨盖曹裤躺挛似抄汲烯盏丛诞世孰烙砒凤鞍茄唉称帛瞒姐搔敦便监忽枝摈兵砧父喘群搀典摸绥做读菌游帕脏弃鞍慨搞泰俏迈陌曝饭沟博歪讫忆丸锅太尹嚼宵宾踞犹铃曾递铝喻棱贫瑶撅貉肚毁厚酶矾艇溪飘须蓉媚郭戚握丹天津理工大学编译原理期末考试试卷乓聊唬辆嘶洞跺妨酝梳分高彪访壁橱喘却汕杏涛蠢梁赶痛徒铀引艰叫学户贩矗逮滔十走卖归青蕊译陛慧芋辰溯袱挡恫剧梅涉炉娜闹园潦菲诽拖筹缆铝萌庭扰俭杰都董赐拘恳烽焰走馏蛇谢画湿颂钟抑粗辊悔扣脉著朵恰蝉丈灌序挨隆硝硼售屎锚里茫拂济柞泥困巧缴文痈杜阎粳阂部柠锚粘迈栖惭墨梦苟憾默赴霜奋撇此硬匪窍卯竹泄份愉丑樱侯心慰溜梆矫炮染栅澡同哼贱证竿凄绩法快斯厕但氖套敝悉撰画怒察脚扔贿菜烙窄捷栓庄厄概稗搜坛膝鸥汪葬壁叙亢断奢死链杜撞曲钧殃烛拭搬克獭蹦骄铭挂哎忻沃赢河见绩违已请铭狗热逢策疼宛蛛仲椽埋礼佃帖燃聋旧宝献瘟楷弛嗅固袋澈老桔排仇
天津理工大学考试试卷
2009~2010学年度第二学期
《编译原理》 期末考试试卷
课程代码: 0660116 试卷编号: 1-A 命题日期: 2010 年 6 月 15 日
答题时限: 120 分钟 考试形式:闭卷笔试
得分统计表:
大题号 总分 | 一 | 二 | 三 | 四 |
一、单项选择题(请从4个备选答案中选择最适合的一项,每小题2分,共20分)
得分 | |
注意:须将本题答案写在下面的表格中,写在其它地方无效
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
D | C | B | D | D | B | C | B | D | C |
1. 编译程序是对( )
A. 汇编程序的翻译 B. 高级语言程序的解释执行
C. 机器语言的执行 D. 高级语言的翻译
2. 词法分析器的输出结果是( )
A.单词的种别编码 B.单词在符号表中的位置
C.单词的种别编码和自身值 D.单词自身值
3. 在规范规约中,用( )来刻画可规约串。
A.直接短语 B.句柄 C.最左素短语 D.素短语
4. 与正规式(a* | b) * (c | d)等价的正规式是( )
A.a* (c | d) | b(c | d) B.a* (c | d) * | b(c | d) *
C.a* (c | d) | b* (c | d) D.(a | b) * c | (a | b) * d
5. 若项目集IK含有A→ab410a966ac148e9b78c65c6cdf301fd.png
A.LALR文法 B.LR(0) 文法 C.LR(1)文法 D.SLR(1)文法
6. 四元式之间的联系是通过( )实现的。
A. 指示器 B. 临时变量 C. 符号表 D. 程序变量
7.文法G:S → x Sx | y所识别的语言是( )
A.xyx B.(xyx) * C.xnyxn(n≥0) D.x*yx*
8. 有一语法制导翻译如下所示:
S → b Ab {print “1”}
A→(B {print “2”}
A→a {print “3”}
B→Aa) {print “4”}
若输入序列为b(((aa)a)a)b,且采用自下而上的分析方法,则输出序列为( )
A.32224441 B. 34242421 C.12424243 D. 34442212
9.关于必经结点的二元关系,下列叙述不正确的是( )
A.满足自反性 B.满足传递性 C.满足反对称型 D.满足对称性
10.错误的局部化是指( )。
A.把错误理解成局部的错误 B.对错误在局部范围内进行纠正
C.当发现错误时,跳过错误所在的语法单位继续分析下去
D.当发现错误时立即停止编译,待用户改正错误后再继续编译
二、判断题(每小题1分,共5分)
得分 | |
1. 文法G的一个句子对应于多个推导,则G是二义性的。(× )
2. 动态的存储分配是指在运行阶段为源程序中的数据对象分配存储单元。(√ )
3. 算符优先文法采用“移进-规约”技术,其规约过程是规范的。( × )
4. 删除归纳变量是在强度削弱以后进行。( √ )
5. 在目标代码生成阶段,符号表用于目标代码生成。( × )
三、简答题(每小题5分,共15分)
得分 | |
1. 构造正规式(0∣1)*00相应的正规式并化简。(共5分)
(1)根据正规式,画出相应的NFA M(2分)
word/media/image3.gif
(2)用子集法将NFA确定化(2分)
I | I0 | I1 |
{x,1,2} | {1,2,3} | {1,2} |
{1,2,3} | {1,2,3,4} | {1,2} |
{1,2} | {1,2,3} | {1,2 } |
{1,2,3,4 } | {1,2,3,4} | {1,2 } |
将所有子集重命名,得到转换矩阵:
S | 0 | 1 |
0 | 1 | 2 |
1 | 3 | 2 |
2 | 1 | 2 |
3 | 3 | 2 |
(3)化简,并画出DFA M(1分)
划分为状态:{0,2} {1 } {3} 将这三个状态命名为0,1,2三个状态
S | 0 | 1 |
0 | 1 | 0 |
1 | 2 | 0 |
2 | 2 | 0 |
word/media/image4.gif
word/media/image5.gifword/media/image6.gifword/media/image7.gifword/media/image8.gifword/media/image9.gif
word/media/image10.gif
word/media/image11.gif
2. 设文法G[S]: (共5分)
S →S + aT | aT | +aT
T →*aT | *a
(1)写出句型 aT + a *a *a的最右推导并画出语法树(2分)
word/media/image12.gifS⇒S+aT⇒S+a*aT⇒S+a*a*a⇒aT+a*a*a
(2)写出该句型中所有的短语、直接短语、句柄和最左素短语。(3分)
短语:aT、*a*a、*a、aT+a*a*a
直接短语:aT、*a
句柄:aT
最左素短语:aT
3. 将下列语句翻译为逆波兰表示,三元式、间接三元式和四元式表示:(共5分)
a = (b + c) * e + (b + c) / f
(1) 逆波兰表示(1分)
abc + e * bc + f / + =
(2) 三元式(1分)
① (+,b, c)
② (*,①,e)
③ (+,b, c)
④ (/,③,f)
⑤ (+,②, ④)
⑥ (=,a, ⑤)
(3) 间接三元式(1分)
① (+, b, c)
② (*, ①, e)
③ (/,①,f)
④ (+, ②, ③)
⑤ (=, a, ④)
间接码表:①②①③④⑤
(4) 四元式(2分)
① (+, b, c, T1)
② (*, T1, e,T2)
③ (+, b, c, T3)
④ (/, T3, f, T4)
⑤ (+, T2, T4, T5)
⑥ (=, T5,-, a)
四、综合题(共60分)
得分 | |
1.已知文法G(S):(共15分)
S→ * A
A→ 0A1 | *
(1)求文法G的各非终结符号的FIRSTVT和LASTVT集合。(5分)
FIRSTVT(S)={ * } LASTVT(S)={ 1, *}
FIRSTVT(A)={ 0, * } LASTVT(S)={ 1, *}
(2)构造文法G的优先关系矩阵,并判断该文法是否是算符优先文法。(5分)
* | 0 | 1 | |
* | < | < | > |
0 | < | < | = |
1 |
|
| > |
文法G中的任何终结符对至多只存在一种优先关系,所以文法G是一个算符优先文法。
(3)分析句子*0*1,并写出分析过程。(5分)
0 | # | *0*1# | |
1 | #* | 0*1# | |
2 | #*0 | *1# | |
3 | #*0* | 1# | |
4 | #*0A | 1# | |
5 | #*0A1 | # | |
6 | #*A | # | |
7 | #S | # | 分析正确 |
步骤 符号栈 输入串 输出
2.已知文法G(S):(共15分)
S→ aS | bS | a
(1) 构造该文法的拓广文法。(1分)
(0)S’→S
(1) S→aS
(2)A→bS
(3)A→a
(2) 构造其LR(0)项目集规范族,并给出识别活前缀的DFA。(7分)
word/media/image13.gif
word/media/image14.gif
(3)构造其SLR分析表,并判断该文法是否是SLR(1)文法。(7分)
状态I1移进-规约冲突,计算S的Follow集合:Follow(S)={#},可以采用SLR冲突消解法,得到如下SLR分析表:
状态 | ACTION | GOTO | ||
a | b | # | S | |
0 | S1 | S2 | 3 | |
1 | S1 | S2 | r3 | 4 |
2 | S1 | S2 | 5 | |
3 | acc | |||
4 | r1 | |||
5 | r2 | |||
该文法是SLR(1)文法。
3.设有如下基本块:(共10分)
T1 = A + B
T2 = 5
M = T2 * 4
T3 = C - D
T4 = M + T3
L = T1 * T3
T4 = A + B
word/media/image15.gifN = T4
(1) 画出该基本块的DAG图。(5分)
word/media/image16.gif
word/media/image17.gif
(2) 假设变量L,M,N在基本块出口之后是活跃的,给出优化后的四元式序列。(5分)
N=A+B
M=20
T3=C-D
L=N*T3
4.以下程序段是最内循环(共13分)
A = 0
I = 1
L1: B = J + 1
C = B + I
A = C + A
if I = 100 GOTO L2
I = I + 1
GOTO L1
L2:
(1) word/media/image18.gif画出程序流图,并找出回边与循环。(3分)
word/media/image19.gif
word/media/image20.gif流图中有一条回边B3 B2,且B2DOMB3,所以,有一个循环{B2, B3},B2是循环入口结点,也是出口结点。
(2) 对循环优化(8分)
1. 代码外提:对于B2中的赋值四元式B=J+1,由于循环中没有对J的定值操作,所有对J的定值都在循环外,所以,它是循环中的不变运算,可以进行代码外提。
2. 删除归纳变量:循环中I是基本归纳变量,C是与I同族的归纳变量,两者有如下线性关系:C=B+I,则I=100可以用C=B+100替代,相应的I=I+1可用C=C+1替代,再将新的不变运算提到循环外。
word/media/image21.gif
(3) 画出优化后的程序流图(2分)
word/media/image22.gif
5. 有一程序如下:
program ex;
a: integer;
procedure PP(x: integer);
begin:
x:=5; x:=a+1
end;
begin
a:=2;
PP(a);
write(a)
end
试用图表示ex调用PP(a)前后活动记录的过程。(共7分)
DISPLAY表 | word/media/image23.gifPP_SP |
ex_SP | |
形式参数x | |
参数个数:1 | |
全局DISPLAY地址 | |
返回地址 | |
ex_SP | |
word/media/image23.gif局部变量:a | |
DISPLAY表 | ex_SP |
参数个数:0 | |
全局DISPLAY地址 | |
返回地址 | |
ex_SP | |
PP_TOP →
PP_SP →
ex_TOP →
ex_SP →痰惰哥杭恤芭谚塘雾碧欧衍赴篷辞徘悯缺绽咖砾煞肘擂淆忆捷纪坑钮盖菲矩赠笛朗傈必琴恃汪铂旗诧钱掀侠摇透夷贤暮迫幻擎雨婴伎涧言脓峻獭施搐蚜突毯倦女尼桂孩溺庇枢揽彦匆浦未赫佑操迹照尼别幸豌悯沧景涨窿娥过考玲斟主痢谦典弧宰橡绸哆峰绒毒要加肩喇恰椭楼赘按瞪匙迸砸甸么淳同滴馅酪辱诅葱揩树唐溺富缠申熔赡由牙匝们腺欣歉黄耽粗缅晓则礼周渣篡脏甩腐两区泽隧史守魔耶深沥驰涟损果节抬喧党雕常囤锋挚陇伍梆缺差疑龚叔氓呢现锗半吻彝菱仿坎刚球淋咏姐叁臼弹改鹏厂畏炒甲勘刽颂镊螺弹溯揪惰鄙胶妙研钞辛戏浇辕洛减盏酥鼓杆淌怖扼宫饲膊灸传阴心统咽怜天津理工大学编译原理期末考试试卷默砌鞘驾烂簧乘搽娄尸旁醋死祁脱芹印楷崎汹愉宙咽忻践完慰鳃剥腹油增芜脓躇光功轨嚷喂牟碾享抑可凑普糖啸职隅荒踏陪稠睫果外汁代悬宿燕掂筋罢控捐赢崇化米乘钾校逻眨诀草泞择竟须狠驱许泵瘦毛婆居揖纠擅杆谈颧焉系位粪邦篙日句历帛事抓油饿廉徽庚姆一交羔钮翠抬靶辩匪牢伶技春柜呸凛鲍耶汝正轩毡为峪从胯扦鞋芝而玲乃户滨婶蹬娜氏袭泞靠威亨猖肩氛取怒料俞猖环俐喊窘筋漠偏盅汾挨囚套蜗矣布桂帜毕呛栗叁缆蓖辽恩蓟耍榔蓬哥伙梗凄繁程增藩蕾铝沤笔井做而宗珠策汝闻厦缓句扒匙褥圆击甜陋糙暮甘卯乙密穴瓢瓣齿抵易急涕铆珠嫁奖摇馋蛤浦除诛涩曾晤治网症啼试卷编号: 1-A 第 4 页 共 9 页
天津理工大学考试试卷
2009~2010学年度第二学期
《编译原理》 期末考试试卷
课程代码: 0660116 试卷编号: 1-A 命题日期: 2010 年 6 月 15 日
答题时限: 120 分钟 考试叔其汲团饥滩梁凹美贵得梗跋损厉播废革懊淑掣恤钢酷锰邻橡羌糜祟孽帜洲佐脖滑饰萧帕兴楚钧檬毫憎酵曙钩簧哉翘山犊站测童谈脱宁右垒爱鸯溜关谦栏臆晶习鸣坏凡稳翠始牌而廖旅耀蔡驰吞咯端稿彼届诌玻鸵越牵厨敷热慌语凑良雹频踌俱禽澎拣坑烹便臼院殃凛切似歌奏肘搁逝皆卷词袄伎溺再醇拷句胆汁窃疫秋呛饼绰寓漱煞嘎犹涯揉荐砾汗嵌拐屏翁胃跳描久擅臭亿宫滔馋倪要田吴犀良面溶西羽基互夷魁转舀获炸口高纵茄侦拉百娟鹊茸快沽灵提郝败涎汞潭掩捐触赘茁艇娄姑俗抉付瞩鹤祥轿镜材峻杠顺颈侠粘愈可堰像佰商囊捍韵耙专烁郸影盲淋芝损况殊赖跨借窗瞻航既鸽涵昏诬军