版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理试题国教A(20XX.2.4)
一、回答下列问题:(30分)
1.(6分)对于下面程序段
programtest(input,output)
vari,j:integer;
procedureCAL(x,y:integer);
begin
y:=y*y;X:=x-y;y:=y-x
end;
begin
i:=2;j:=3;CAL(i,j)
writein(j)
end.
若参数传递的方法分别为(1)传值、(2)传地址,(3)传名,请写出程序执行的
输出结果。
答:(1)3(2)16(3)16(每个值2分)
2.(6分)计算文法G(M)的每个非终结符的F工RST和FOLLOW集合,并判断该文
法是否是LL(1)的,请说明理由。
G(M):
M-TB
T—Ba|8
BTDb|eT|£
D-d|£
解答:
计算文法的FIRST和FOLLOW集合:(4分)
FIRST(M)={a,b,e,d,£}FIRST(T)={a,b,e,d,8}
FIRST(B)={b,e,d,8}FIRST(D)={d,£}
FOLLOW(M)={#}FOLLOW(T)={a,b,e,d,#}
FOLLOW(B)={a,#}FOLLOW(D)={b}
检查文法的所有产生式,我们可以得到:
1.该文法不含左递归,
2.该文法中每一个非终结符M,T,B,D的各个产生式的候选首符集两两不相
交。
3.该文法的非终结符T、B和D,它们都有£候选式,而且
FIRST(T)CIFOLLOW(T)={a,b,e,d}
所以该文法不是LL(1)文法。(2分)
3.(4分)考虑下面的属性文法
产生式语义规贝!
S-ABCB.u:=S.u
A.u:=B.v+C.v
S.v:=A.v
A-aA.v:=3*A.u
B->bB.v:=B.u
C—»cC.v:=1
(1)画出字符串abc的语法树;
(2)对于该语法树,假设S.u的初始值为5,属性计算完成后,S.v的值为
多少。
abc
(2)S.v的值为18(2分)
4.(4分)运行时的D工SPLAY表的内容是什么?它的作用是什么?
答:D工SPLAY表是嵌套层次显示表。每当进入一个过程后,在建立它的活动记录区
的同时建立一张嵌套层次显示表diaplay.假定现在进入的过程层次为i,则它的
diaplay表含有i+1个单元自顶向下每个单元依次存放着现行层、直接外层、…、
直至最外层(主程序,。层)等每层过程的最新活动记录的起始地址。通过DISPLAY
表可以访问其外层过程的变量。
5.(5分)对下列四元式序列生成目标代码:
A:=B*C
D:=E+A
G:=B+C
H:=G*D
其中,H在基本块出口之后是活跃变量,R0和R1是可用寄存器。
答:目标代码序列
LDROB
MULROC
LDRIE
ADDRIRO
LDROB
ADDROC
MULRORI
STROH
6.(5分)写出表达式a+b*(c-d)对应的逆波兰式、三元式序列和抽象语法树。
答:
逆波兰式:(abcd-*+)(1分)
三元式序列:(2分)
OPARG1ARG2
二、(8分)构造正规式(011)*00相应的DFA并进行化简。
答:
(2分)
0
确定化:(3分)
01
{1,2,3}{2,3,4}{2,3)
{2,3,4}{2,3,4,5}{2,3}
⑵3){2,3,4}{2,3}
{2,3,4,5){2,3,4,5}⑵3)
“,2,3}{4}
{1,2,3}o={2,4)
{1,3}{2}(4)
1
三、(6分)写一个文法使其语言为L(G)={anbncm|m,n>l,n为奇数,m为偶数}。
答:
文法G⑸:
S->AC
4faaAbh\cb
CfccCcc|cc
四、(8分)对于文法G(S):
SfbMb
M->(L|a
LfMa)
1.写出句型b(Ma)b的最右推导并画出语法树。
2.写出上述句型的短语,直接短语和句柄。
答:
1.(4分)
S=>bMb=>/?(£〃=>b(Ma)b
2.(4分)
短语:Ma),(Ma),b(Ma)b
直接短语:Ma)
句柄:Ma)
五、(12分)对文法G(S):
S->aIAI(T)
T-T,S|S
(1)构造各非终结符的F1RSTVT和LASTVT集合;
(2)构造算符优先表;
(3)是算符优先文法吗?
(4)构造优先函数。
答:
(1)(4分)
FIRSTV7(S)={a^A}
HRSn/7(T)={,,〃,、(}
L4S7V71S)={〃,\)}
LAS7VS={,,4'))
(2)(4分)
A
,三(),
a>>
A>>
(<<<=<
)>>
<<<>>
(3)是算符优先文法,因为任何两个终结符之间至多只有一种优先关系。(1分)
(4)优先函数(3分)
aA(),
F44244
C55523
六、(8分)设某语言的do-while语句的语法形式为
SfdoS⑴WhileE
其语义解释为:
针对自下而上的语法分析器,按如下要求构造该语句的翻译模式:
(1)写出适合语法制导翻译的产生式;
(2)写出每个产生式对应的语义动作。
答:(1).适合语法制导翻译的文法(4分)
G(S):
Rfdo
U->RS⑴While
SfUE
(2).(4分)
R->do
{R.QUAD:=NXQ}
UfRS⑴While
{U.QUAD:=R.QUAD;
BACKPATCH(S.CHAIN,NXQ)}
S->UE
{BACKPATCH(E.TC,U.QUAD);
S.CHAIN:=E.FC}
答案二:
(1)S->doMiWhileM2E
MfE(4分)
(2)M->E{M.QUAD:=NXQ}(4分)
SfdoMiS⑴WhileM2E
(
BACKPATCH(S(】).CHAIN,M2.QUAD);
BACKPATCH(E.TCZMi.QUAD);
S.CHAIN:=E.FC
)
七、(8分)将语句
if((A<0)v(B>0))thenwhile(C>0)doC:=C-D
翻译成四元式。
答:
100(j<,A,0,104)
101(j,102)
102(j>,B,0,104)
103(j,109)
104(j>,C,0,106)
105(j,109)
106(-,C,D,Tl)
107(:=,Tl,C)
108(j,104)
109
(控制结构3分,其他5分)
八、(10分)设有基本块如下:
Tl:=3
T2:=A*B
T3:=9+T1
M:=A*B
T4:=C-D
L:=T3*T4
T2:=C+D
N:=T2
1.画出DAG图;
2.设L,M,N是出基本块后的活跃变量,请给出优化后的四元式序列。
答:
2.(4分)
M:=A*B
S1:=C-D
L:=12*S1
N:=C+D
九、(8分)文法G(S)及其LR分析表如下,请给出串baba#的分析过程。
(1)S-DbB(2)D-d⑶D-w
(4)B-a(5)B-Bba(6)B-g
LR分析表
ACTIONGOTO
bDa#SBD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年物业管理从业人员物业管理人力资源管理与开发模拟试题
- 2026年网络安全攻防演练试题库
- 2025-2026年物业管理从业人员职业素养测试卷
- 2025-2026年老年照护与管理综合模拟试题
- 某食品集团技术办法
- 某建筑公司施工安全方案
- 物业社区文化活动满意度方案
- 湖北省自考13811绩效管理高频考点重点
- 数控刀具应用行业分析报告
- JJF(辽) 559-2024 摩擦系数测定仪校准规范
- GB 1589-2026汽车、挂车及汽车列车外廓尺寸、轴荷及质量限值
- 北京市2022-2024年中考满分作文69篇
- DB13T 5132-2019 汽车铝合金车轮生产主要工序单位产品能源消耗限额
- DB31/T 1402-2023养老机构认知障碍照护单元设置和服务要求
- 教科版初中物理九年级上册(提高版)(全册知识点考点梳理、重点题型分类巩固练习)(家教、补习、复习用)
- 2024秋新人教版小学一年级艺术唱游·音乐上册《第一单元 奇妙的声音世界》教案设计
- DB5301-T 98-2023 改性磷石膏综合利用矿山生态修复环境风险评估规范
- 肩关节脱位护理
- 小学数学分层作业设计课题研究计划
- 设备采购 投标方案(技术方案)
- 2023年公共营养师之二级营养师真题练习试卷A卷附答案
评论
0/150
提交评论