哈工大编译原理期末试题2004试卷

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

哈工大2004年春季学期编译原理试题A题号一二三四五六七八九十总分分数第1页(共5页)班号姓名一、简答题(15分)1、什么是控制栈?(2分)2、简述递归下降分析法的实现原理(3分)3、简述语法制导翻译的思想(3分)4、编译过程可分为前端和后端,你能叙述一下前端由哪些阶段组成?后端呢?前端和后端的输入输出分别是什么?(4分)5、请写出三种常用的参数传递方式(3分)二、有如下三地址码程序段:(5分)I=1J=10ReadkL:x=k*IY=j*IZ=x*yT=100*kI=I+1IfI100thengotoL:Halt请划分出基本块并画出其程序流图试题:班号:姓名:第2页(共5页)三、Pascal语言的活动记录格式设计如下:(9分)1、请简述Display域,全局Display域,以及控制链的用途。(6分)2、若有程序段:programmainprocedurePprocedureQprocedureRbeginendprocedureSbeginendbeginendbeginend试题:班号:姓名:第3页(共5页)Beginend试写出过程R的Display表(3分)四、有文法G(S):(11分)S→(L)|aS|aL→L,S|S1、画出句型(S,(a,S))的语法树(3分)2、所有短语、直接短语、句柄和最左素短语(6分)3、你能解释一下句柄和最左素短语不是同一符号串的原因吗?五、有文法G(R):(5分)R→i|(T)T→T,R|R试构造其算符优先分析表(5分)六、文法G(P):P→(Q)|aP|aQ→Q,P|P1、该文法是LL(1)文法吗?不是,请改造。(3分)2、求出改造后文法的每个非终结符的FIRST集和FOLLOW集(3分)3、为改造后的文法构造LL(1)预测分析表(4分)试题:班号:姓名:第4页(共5页)七、文法G(P):P→AAA→aAA→b1.构造识别活前缀的DFA(5分)2、构造其SLR分析表(5分)八、有翻译方案如下:(1)C→ifEthen{BACKPATCH(E.TRUE,nextquad)C.nextlist=E.false}(2)T→CS1{q=nextquademit(j,-,-,-)T.nextlist=MERG(S1.nextlist,q)BACKPATCH(C.nextlist,nextquad)}(3)S→TS2{S.nextlist=MERG(T.nextlist,S2.nextlist)}(4)S→CS1{S.nextlist=MERG(C.nextlist,S1.nextlist)}(5)W→while{W.Head=nextquad}(6)U→WEdo{BACKPATCH(E.true,nextquad)U.nextlist=E.falseU.Head=W.Head}(7)S→US1{BACKPATCH(S1.nextlist,U.Head)试题:班号:姓名:第5页(共5页)emit(J,-,-,U.head)S.nextlist=U.nextlist}(8)S→A{S.nextlist:=null}(9)L→L1;MS{backpatch(L1.nextlist,M.quad)L.nextlist:=S.nextlist}(10)L→S{L.nextlist:=S.nextlist}(11)M→ε{M.quad=nextquad}试用上述翻译方案,对句子:whileACandBDdoifA0thenC=C+1elseA=A+2;D=A+C进行分析,以四元式的形式输出分析结果。(10分)

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功