《编译原理》期末试卷 参考答案_第1页
《编译原理》期末试卷 参考答案_第2页
《编译原理》期末试卷 参考答案_第3页
《编译原理》期末试卷 参考答案_第4页
《编译原理》期末试卷 参考答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《编译原理》软件工程2005级期终考卷

学号:姓名:

说明:1.本考卷中大写字母WVN,其他符号WVT:2、试卷中一、二两题请作在考卷上

一、概念题(15分)

1、编译过程一般分为几个阶段?各阶段的输入输出分别为什么?

2、对下列状态转换图,写出状态0的处理过程:

其中:状态2的过程为pr℃2.

3、文法G为:

SfaAB

Afa

则判断G为LL(1)文法的条件是:

二、判断题(10分。注:每答对一题得+2分;答错一题得.2分;不答者得0分)

1、设£为{a,b},则a,ba,{E},。都是£上的正规式。()

2、对于上下文无关文法G[S],若S=>aAB=a伊/则A./一定是一条产生式规则,

其中(VTVVN)*()

3、对于逆波兰后缀式,无论从哪头开始分析均可得到唯一正确的分解。()

4、LR(0)分析法是一种规范归约法。()

5、算符优先分析法只能用来分析算符优先文法。()

三、(10分)设文法G3为:S-AaBc

AfAa|a

Bfb

求句型AaBc的最左素语。

四、(20分)设文法G[S]为

S^aAcB问:1、该文法是否为算符文法,为什么?

A^Ab|b2、构造算符优先关系表。

B-d3、该文法是否可改造为LL(1)文法,为什么?

五、(本题20分)设文法G为:E^eAfleBg

A->aA|a

B^Bbja

对于输入串eaaaf,采用LR(0)、LL(1).SLR(1)等方法中合适的一种进行分析。

六、(25分)有作控制用的布尔表达式文法G[E]及其语义动作如下:

1、构造SLR(1)分析表(若不是SLR(D)的,则说明理由)

2、分析布尔式aVb<c的四元式生成过程,并画出最后的真假链表。

3、给出语句IFaVb<cTHENI:=m*nELSEI:=m+n的完整四元式序列。

文法G[E]:

⑴E-i⑴姆⑵{E.TC:=NXQ;E.FC=NXQ+1;

GEN(J<,ENTRY(i(,)),ENTRY(i⑵),0);GEN(J,0)}

⑵EfAE⑴{E.FC:=E(,).FC;E.FC::MERGE(A.TC,E(,).TC)}

(3)A->BV{BACKPATCH(B.FC,NXQ);A.TC:=B.TC)

(4)B—i{B.TC:=NXQ;B.FC:=NXQ+1;

GEN(Jnz,ENTRY(i),_,0);GEN(J,0)}

软件0501班编译原理考试答案及评分细则

一:1、(5分)

源程序

_____________I______________

词法分析

I单词符号

语法分析

]语法单位

语义分析与中间代码产生

]中间代码

优化

]中间代码

目标代码生成

目标代码

2、(5分)

Proc0:

ge(char();

CASEcharOF

‘a'/b',•・•,'z':

,A'B,,・・♦,'Z':proc1

elseerror

ENDCASE

3、(5分)

条件:

(1)文法G不含左递归;

(2)对于每个非终结符,First(a)First(P)>First(丫)两两不相交;

(3)对于每个非终结符,不含能推出£的产生式,故不考虑非终结符的

First集和Follow集相交的情况。

二、(每小题2分)

1、X;2、X;3、V;4、V;5、Vo

三、(10分)

方法一:

句型AaBc的语法树为:

故AaBc即为所求最左素短语。

方法二:

FlRSTVT(S)={a},LASTVT(S)={c},

FIRSTVT(A)={a},LASTVT(A)={a),

FIRSTVT(B)={b},LASTVT(B)={b}o

则有:

abc#

a><二>

b>>

c>

#<<<=

对于#AaBc#,#<a,a=c,c>#,则最左素短语为AaBc。

四、(20分)

1、该文法是算符文法。因为其任一产生式的右部都不含相继(并列)的非

终结符,即不含如下形式…QR…的产生式右部。(4分)

2、FIRST(S)={a},LAST(S)={c},

FIRST(A)={b},LAST(A)={b},

FIRST(B)={d},LAST(B)={d}o(3分)

构造算符优先关系表如下:(5分)

abcd

a<=>

b>>>

c<>

d>

#<<<=

3、该文法可以改造为LL(1)文法。(8分)

原因:

①消除左递归:S-aAcB

AfbA'

A'-*bA,|£

B-d;

②FIRST(A)={a},FOLLOW(A)={c),

FIRST(A,)={b,e},FOLLOW(Ay)={c},

FIRST(B)={d},FOLLOW(B)={#},

FIRST(S)={a),FOLLOW(S)={#},

对于每个非终结符的各个产生式的FIRST集两两不相交;

③对于A',FIRST(A)AFOLLOW(A)=①。

综上所述,原文法可以改造成LL(1)文法。

五、(20分)

原文法不是LL(1)文法,故不能直接使用LL(1)分析法进行分析。

步骤如下:

1、拓广文法:①E,-E②E-eAf

③EfeBg④AfaA

⑤Afa⑥BfBb

⑦B-a(2分)

2、项目集规范族:

(6分)

由此项目集规范族可判断,原文法非LR(0)文法,故不能直接使用LR(0)

分析法进行分析。因此,使用SLR(1)分析法分析原文法。

3、构造SLR(1)分析表如下:

FOLLOW(A)={f};FOLLOW(B)={b,g};FOLLOW(E)={叽

ACTIONGOTO

状态abefg#ABE

0S21

1acc

2S435

3S6

4S8r7r5r77

5S10S9

6r2

7r4

8S8r57

9r3

10r6r6

(6分)

4、分析输入串eaaaf如下:

步骤状态符号输入串动作

10#eaaaf#预备

202Ueaaaf#移进

3024#eaaaf#移进

40248#eaaaf#移进

502488#eaaaf#移进

602487#eaaAf#归约

70247#eaAf#归约

8023#aAf#归约

90236#aAf#移进

1001#E#归约

11acc接受

(6分)

六、(25分)

1、步骤:

(1)拓广文法:①E'-E②E-i⑴</

③EfAE⑴④AfBV

⑤B-i(2分)

(2)项目集规范族:

8______

i⑴<i.⑵

(6分)

(3)SLR(1)分析表如下:

FOLLOW(E)={#};FOLLOW;A)={i}:FOLLOW(B)={V)0

ACTIONGOTO

状态i<VnEAB

0S2134

1acc

2S6r4

3S2734

4S5

5r3

6S8

7r2

8rl

(6分)

2、分析输入串aVb〈c如下:

步骤状态栈符号输入串动作四元式

10aVb<c#预备

202Vb<c#移进

B.TC=1,B.FC=2;

Gen(Jnz,a,0);

304#BVb<c#归约

Gen(J,3);

4045#BVb<c#移进

A.TC=B.TC=1;

503#Ab<c#归约BackPatch(2,3);

6032#Ai<c#移进

70326#Ai<C#移进

803268#Ai<i#移进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论