2011-2012安徽大学编译原理补考试卷

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

安徽大学20 11 —20 12 学年第一学期

《编译原理》考试试卷(B卷)

(闭卷时间120分钟)

院/系年级专业姓名学号

一、(15分)设字母表∑={a,b},

1. 写出不是以a开头,但以aa结尾的字符串集合的正规表达式r(5分)。

2. 构造NFA M,使得L(M)=L(r);(5分)

3. 将NFA M 确定化、最小化,得到DFA M1,使得L(M1)=L(M)。(5分)

二、(20分)设文法G[S]如下:

S →i (B )SA S →a A →eS

A →ε

B →b

1.(5分)求出各非终结符的first 集合和follow 集合,填入下表:

2.(10

3.(5

三 、(20分)设文法G[S]:

S →aS S →bS S →a

1. 文法G[S]属于乔姆斯基哪一型文法?(2分)

2. 符号串abbaa 是不是该文法的一个句型?请证实。(方法不限)(3分)

3. 若是句型,写出该句型的所有短语、直接短语、素短语、最左素短语以及句柄(5分)

4. 求出该文法的firstvt集和lastvt集,构造算符优先关系表填入下表。(10分)

四、(25分)设CFG文法G[S]如下:

S→aABe A→Abc A→b B→d 1.(4分)写出该文法的拓广文法:

2.(9分)构造识别全部活前缀的DFA,填入下表:

3.(5分)构造该文法的LR(0)分析表,填入下表:

4.(7分)将abbc的分析过程填入下表:

五、(5分)对于下面的程序

program test (input,output);

var a :integer

procedure cala(x:integer);

temp:integer;

begin

x:=a+1;

temp:=a+2;

x:=temp;

end;

begin

a=2;

cala ( a );

writeln(a)

end.

若参数传递的办法分别为传名,传地址,传结果,传值,则最终打印的a值分别是多少?

六、(5分)设基本块如下:

D:=B/C

E:=A+D

F:=2*E

G:=B*C

H:=G*G

F:=H*G

L:=F

M:=L

构造相应的DAG,并写出利用DAG优化后的语句序列;(5分)

七、(10分)设程序段如下:

r e a d A

r e a d B

F:=1

C:=A*A

D:=B*B

i f C<D g o t o L1

E:=A*A

F:=F+1

E:=E+F

w r i t e E

h a l t

L1:E:=B*B

F:=F+2

w r i t e E

i f E>100g o t o L2

h a l t

L2:F:=F-1

g o t o L1

⒈利用基本块划分方法构造该代码段的程序流图(3分);

⒉将基本块依次编号为B1,B2,……求出各结点Bi的必经结点集D(Bi);(3分)

⒊求出流图中的回边;(2分)

⒋求出流图中的循环。(2分)

相关文档
最新文档