哈工大编译原理模拟试题.docx

上传人:b****9 文档编号:24995553 上传时间:2023-06-03 格式:DOCX 页数:12 大小:34.23KB
下载 相关 举报
哈工大编译原理模拟试题.docx_第1页
第1页 / 共12页
哈工大编译原理模拟试题.docx_第2页
第2页 / 共12页
哈工大编译原理模拟试题.docx_第3页
第3页 / 共12页
哈工大编译原理模拟试题.docx_第4页
第4页 / 共12页
哈工大编译原理模拟试题.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

哈工大编译原理模拟试题.docx

《哈工大编译原理模拟试题.docx》由会员分享,可在线阅读,更多相关《哈工大编译原理模拟试题.docx(12页珍藏版)》请在冰豆网上搜索。

哈工大编译原理模拟试题.docx

哈工大编译原理模拟试题

编译原理模拟试题

、是非题(下列各题,你认为正确的,请在题干的括号内打

“V错的打“X”)

1、算符优先关系表不一定存在对应的优先函数。

()

2、数组元素的地址计算与数组的存储方式有关。

()

3、仅考虑一个基本块,不能确定一个赋值是否真是无用的。

()

4、每个文法都能改写为LL

(1)文法。

()

5、对于数据空间的存贮分配,FORTRAN采用动态贮存分配

策略。

()

二、填空题

1、从功能上说,程序语言的语句大体可分为()语

句和()语句两大类。

2、扫描器的任务是从()中识别出一个个()。

3、所谓最右推导是指:

()。

4、语法分析最常用的两类方法是()和()

分析法。

5、一个上下文无关文法所含四个组成部分是()。

6、所谓语法制导翻译方法是()。

7、符号表中的信息栏中登记了每个名字的有关的性质,如

等等

&一个过程相应的DISPLAY表的内容为(现行活动记录

地址和所有外层最新活动记录的地址)。

9、常用的两种动态存贮分配办法是()动态分配和

()动态分配。

10、产生式是用于定义()的一种书写规则。

三、名词解释

1、遍

2、无环路有向图(DAG)

3、语法分析

4、短语

5、后缀式

四、简述题

1、考虑下面程序

Vara:

integer;

ProcedureS(X);

VarX:

integer;

Begin

a:

=a+1;

End;

Begin

a:

=5;

S(a);

Print(a)

End.

试问:

若参数传递方式分别采取传名和传值时,程序执行后

输出a的值是什么?

2、画出C++中实数(不带正负号,可带指数部分)的状态转换图。

3、写出表达式(a+b*c)/(a+b)-d的逆波兰表示及三元式序列。

4、已知文法G(S)

Sta|A|(T)

T—T,S|S

写出句子((a,a),a)的规范归约过程及每一步的句柄。

句型归约规则句柄

((a亠a),a)

S—a

((S,a),a)

T—S

S

((T,a),a)

S—a

a

((T,S),a)

T—T,S

T,S

((S),a)

T—S

S

((T),a)

S—S(T)

(T)

(S,a)

T—S

S

(T,a)

S—a

a

(T,S)

T—T,S

T,S

(T)_

S—(T)

(T)

S

5、何谓优化?

按所涉及的程序范围可分为哪几级优化?

6、目标代码有哪几种形式?

生成目标代码时通常应考虑哪

几个问题?

五、计算题

1、写一个文法,使其语言是奇数集,且每个奇数不以

头。

2、设文法G(S):

S—(L)|aS|a

L—L,S|S

(1)消除左递归和回溯;

S—(L)|aS'

S'tS|&

L—SL'

L'tSL'|&

(2)计算每个非终结符的FIRST和FOLLO;

(3)构造预测分析表。

3、Whilea>0Vbv0do

Begin

X:

=X+1;

ifa>0thena:

=a—1

elseb:

=b+1

End;

翻译成四元式序列。

4、已知文法G(E)

E—T|E+T

T—F|T*F

F—(E)|I

(1)给出句型(T*F+i)的最右推导及画出语法树;

(2)给出句型(T*F+i)的短语、素短语。

5、设布尔表达式的文法为

E—E⑴VE⑵

E—E⑴AE⑵

E—I

假定它们将用于条件控制语句中,请

(1)改写文法,使之适合进行语法制导翻译和实现回填;

(2)写出改写后的短个产生式的语义动作。

6、设有基本块

Ti:

=

2

T2:

=

10/T

T3:

=

S—R

T4:

=

S+R

A:

T2*T4

B:

A

T5:

=

S+R

T6:

=

T3*T5

B:

=T6

(1)画出DAG图;

(2)假设基本块出口时只有A,B还被引用,请写出优化后的四元序列。

参考答案:

—.是非题

1.V2.V3.V4.X5.

2.填空题

1.执行性、说明性;

2.源程序、单词符号;

3.任何一步aB都是对a中最右非终结符进行替换的;

4.自上而下、自下而上;

5.—组终结符号,一组非终结符号、一个开始符号、一组产生式;

6.为每个产生式配上一个翻译子程序,并在语法分析

的同时执行这些子程序;

7.类型、种属、所占单元大小、地址;

&现行活动记录地址和所有外层最新活动记录的地址;

9.栈式、堆式;

10.语法范畴。

3.名词解释

1.遍--指编译程序对源程序或中间代码程序从头到尾扫描

一次。

2.无环路有向图(DAG)——如果有向图中任一通路都不是环路,

则称庐有向图为无环路有向图,简称DAG

3.语法分析--按文法的产生式识别输入的符号串是否为一

个句子的分析过程。

4.短语――令G是一个文法。

S划文法的开始符号,假定aB3

是文法G的一个句型,如果有SaAS且AB,贝y称B是句型

B相对非终结符A的短语

5.后缀式——一种把运算量写在前面,把算符写在后

面的表示

表达式的方法。

四、

1、答:

传名:

a=12

传值:

a=6

2、答:

3、逆波兰表示:

abc*+ab+Id—

三元式序列:

1(*,b,c)

2(+,a,①)

3(+,a,b)

4(/,②,③)

5(—,④,d)

 

4、答:

句型

归约规则

 

S

(T)

S

(T)

5、答:

后的程序出

((a,a),a)

S^a

a

((S,a),a)

Tf

S

((T,a),a)

S^a

a

((T?

S),a)

T—T,S

T,

((SL_a)

Tf

S

((T),a)

S—S(T)

(S,a)

T—S

S

(T,a)

S—a

a

(T,S)

T—T,S

T,

S—(T)

优化:

对程序进行各种等价变换,使得从变换

发,能产生更有效的目标代码。

三种级别:

局部优化、循环优化、全局优化。

 

6、答:

目标代码通常采用三种形式:

机器语言,汇编语言,待装配

机器语言模块。

应着重考虑的问题:

(1)如何使生成的目标代码较短;

(2)如何充分利用寄存器,以减少访问内存次数;

(3)如何充分利用指仅系统的的特点。

五、计算题:

1、解:

文法G(N):

NHAB|B

—AC|D

Bh1|3|5|7|9

DHB|2|4|6|8

Ch0|D

2、解:

(1)

Sh(L)|aS'ShS|&

Lhsl'

L'hSL'I&

a

S

S—aS

S—(L)

S'

S'f

S'—£

S'—SS'—

&s'-

—£

L

L—SL'

L—SL'

L'

L'—£

L'

—£

FIRST)S)={(,a}

FOLLOW(S)=

3、解:

(1)(j

>,a,

0,

5)

⑵(j

3)

(3)(j

V,b,

0,

5)

⑷(j

15)

(5)(

+,X,

1,

T1)

(6)(

:

=,T1,-

-,>

c

(7)(j

>,a,

0,

9)

(8)(j

12)

(9)(

—,a,

1,

T2)

(10)(

•—?

T2,

a)

(11)(j

1)

(12)(

+,b,

1,

T3)

(13)(

•—?

T3,

b)

(14)(j

1)

(15)

4、解:

⑴最右推导:

ETF(E)(E+T)(E+F)(E+

i)

 

 

(T+i)(T*F+i)

语法树:

(2)短语:

(T*F+i),T*F+i,T*F,素短语:

T*F,i

5、解:

⑴E5⑴

E-E°目2)

EA-E⑴

E—EAE2)

Ef

(2)E—E⑴

{BACKPATCH(E)•FC,NXQ);

E0•TC:

=E

(1)•TC}

E—EP2)

{E•FC:

=E

(2)•FC;

-TC)}

E・TC:

=MERG(E・TCE

(2)

EA—E⑴

{BACKPATCH(E)•TCNXQ);

E0•FC:

=E

(1)•FC}

ERE2〉

{E•TC:

=E

(2)•TC;

E・FC:

=MERG(E・FCE

(2)•FC}Ef

{E•TC:

=NXQE•FC:

=NX®1;

GEN(jn2,entry(i),—0);

GEN(j,—,—,0)

6、解:

⑴DAG:

(2)优化后的四元式

T3:

=S—R

T4:

=s+r

A:

=5*T4

B:

=T3+T4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1