编译原理试卷(答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A


六、请构造出文法G[S]识别文法活前缀的有限自动机,请确定是否是SLR(1)文法,如果是,则构造出其LR分析表。(12分)
A→aAd |aAb |ε
答:拓广文法(1)SA(2)AaAd(3)AaA(4)Aε
在I0和I2,I3中存在有移进
归约冲突
但是FOLLOW(A)={d,b,#} {a }{d,b,#}=,所以文法是SLR(1)文法
答:设计G[S]如下:
SAb
Aa | a Aa | aAb | bAa | bAb
属于CFG,即上下文无关文法


四、有语言L={w|w ∈ (0,1)+,并且w中至少有两个1,又在任何两个1之间有偶数个0 },试构造接受该语言的确定有限状态自动机(10分)
答:


五、请给对文法G[S]进行改写成LL(1)文法,并给出改写后文法的预测分析表,要求计算出改写后文法各非终极符的FIRST和FOLLOW集合。(15分)
b := 1
b := 2
if w <= x goto L3(1)
L1:e := b
L2:c := 3
b := 4
c := 6(3)
L3:if y <= z goto L4(4)
goto L5(5)
L4:g := g + 1
h := 8
goto L1(6)
L5:h := 9(7)
goto L2
(3)回边34,结点5、7、3和4构成一个循环,其中4是入口结点。
2009年下学期2007级
《编译原理》课程考试试卷
(A卷)适用年级专业2007级计算机科学与技术专业
考试方式闭卷考试时间120分钟
学院信息工程学院专业计算机科学与技术班级
学号姓名
题ቤተ መጻሕፍቲ ባይዱ









总分
阅卷
教师


………………………………………………………………………………………………………………

Eid1rop id2
{E.TC= NXQ; E.FC= NXQ + 1; Gen(jrop,Entry(id1), Entry(id2), 0); Gen(j, _, _, 0)}
进行翻译后的四元式序列?并以此解释什么是链接与回填?
答:
(1)(jn,a,-,0)
(2)(j,-,-,3)回填
(3)(jn,b,-,5)回填
LS{L.a=S.a}


八、考虑下面的三地址语句序列,完成下列任务。
(1)在该代码中用水平的横线将代码分成基本块,并给每个基本块一个序号。(2分)
(2)画出该代码的控制流图,每个基本块就用(1)的序号表示。(3分)
(3)若有循环的话,列出构成每个循环的结点,并指出循环的入口结点。(6分)
解:(1)(2)
(2)任意两个相邻的终极符间至多只存在一种关系
2、哪些优化措施是主要针对于循环实现的?可举例说明
答:代码外提
强度削弱
归纳变量删除
3、文法G[S]:SS(S)S|,请判断G[S]是否是二义文法,说明理由
答:是二义文法
理由:选择一个句子,例如()(),存在有不同的语法树或者不同的最右推导
4、请给出布尔表达式a or b and e<f利用规则:
a
b
d
#
A
I0
S2
r4
r4
r4
1
I1
acc
I2
S2
r4
r4
r4
3
I3
S5
S4
I4
r2
r2
r2
I5
r3
r3
r3


七、为文法
S(L) |a
LL,S|S
写一个属性翻译文法,它输出文法中a的个数。(10分)
S’S {printf(S.a)}
S(L){S.a=L.a}
Sa{S.a=1}
LL,S{L.a=L1.a+S.a}
(4)(j,-,-,0)
(5)(<,e,f,1) E.TC链接
(6)(j,-,-,4)E.FC
在翻译过程中,常常会出现若干转移四元式转向同一目标,但此目标的具体位置又尚未确定的情况,此时我们可将这些四元式用拉链的办法将它们链接起来,用一指针指向链头,在确定了目标四元式的位置之后,再回填这个链。


三、构造一文法,其产生语言集合为{uawb|u,w∈{a,b}*且|u| = |w| },并说明你所设计的文法是属于乔姆斯基形式文法中的哪一类文法?(10分)
S → S*aA | aA| *aA
A→ +aA | +a
答:改写文法如下:
S*aAS’ | aAS’
S’*AS’ |
A+aA’
A’A |
FIRST
FOLLOW
S
{*,a}
{#}
S’
{*,}
{#}
A
{+}
{*,#}
A’
{+,}
{*,#}
预测分析表:
*
a
+
#
S
*aAS’
aAS
S’
*AS’
A
+aA’
A’

一、填空题(每小题2分,共12分)
1、一般高级语言的翻译程序有(编译程序)和(解释程序)两种。
2、有穷自动机接受的语言是(正规语言)
3、令Σ={a,b},则Σ上所有以b为首的字符串构成的正规集的正规式为(b(a|b)*)。
4、下面的语义规则是某L属性文法中的一个语义规则,从中可看出:A.s是(综合)属性,B.x是(继承)属性。
A-->BCD {A.s=B.x+C.y;D.z=B.i;}
5、活前缀是指(规范句型)的一个前缀,这种前缀不含(句柄)之后的任何符号。
6、局部优化是在(一个基本块)范围内进行的一种优化。


二、简答题(每小题5分,共计20分)
1、请说明什么是算符优先文法?
答:(1)在CFG中无空产生式,且右部无相邻的非终极符
相关文档
最新文档