广工编译原理精选题集+必考大题汇编.docx

上传人:b****3 文档编号:1119641 上传时间:2022-10-17 格式:DOCX 页数:35 大小:455.82KB
下载 相关 举报
广工编译原理精选题集+必考大题汇编.docx_第1页
第1页 / 共35页
广工编译原理精选题集+必考大题汇编.docx_第2页
第2页 / 共35页
广工编译原理精选题集+必考大题汇编.docx_第3页
第3页 / 共35页
广工编译原理精选题集+必考大题汇编.docx_第4页
第4页 / 共35页
广工编译原理精选题集+必考大题汇编.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

广工编译原理精选题集+必考大题汇编.docx

《广工编译原理精选题集+必考大题汇编.docx》由会员分享,可在线阅读,更多相关《广工编译原理精选题集+必考大题汇编.docx(35页珍藏版)》请在冰豆网上搜索。

广工编译原理精选题集+必考大题汇编.docx

广工编译原理精选题集+必考大题汇编

《编译原理》期末试题

(二)

1、描述由正规式b*(abb*)*(a|e)定义的语言,并画出接受该语言的最简DFA。

2、证明文法EE+id|id是SLR

(1)文法。

3、下面是表达式和赋值语句的文法,其中and的类型是boolboolbool,+的类型是intintint,=的类型是intintbool,:

=要求id和E的类型都是int或者都是bool。

为该文法写一个语法制导定义或翻译方案,它完成类型检查。

Sid:

=E

EEandE|E+E|E=E|id

6、描述由正规式ba(bba)b定义的语言,并画出接受该语言的最简DFA。

7、下面的文法产生代表正二进制数的0和1的串集:

BB0|B1|1

下面的翻译方案计算这种正二进制数的十进制值:

BB10{B.val:

=B1.val2}

|B11{B.val:

=B1.val2+1}

|1{B.val:

=1}

请消除该基础文法的左递归,再重写一个翻译方案,它仍然计算这种正二进制数的十进制值。

编译原理试卷二答案

 

1、由正规式b*(abb*)*(a|e)定义的语言是字母表{a,b}上不含子串aa的所有串的集合。

最简DFA如下:

2、先给出接受该文法活前缀的DFA如下:

 

I0和I3都只有移进项目,肯定不会引起冲突;I2和I4都无移进项目并仅含一个归约项目,也肯定不会引起冲突;在I1中,E¢的后继符号只有$,同第2个项目的展望符号“+”不一样,因此I1也肯定不会引起冲突。

由此可以断定该文法是SLR

(1)的。

3、语法制导定义如下。

Sid:

=E{S.type:

=if(id.type=boolandE.type=bool)or(id.type=intandE.type=int)thentype_okelsetype_error}

EE1andE2{E.type:

=ifE1.type=boolandE2.type=boolthenboolelsetype_error}

EE1+E2{E.type:

=ifE1.type=intandE2.type=intthenintelsetype_error}

EE1=E2{E.type:

=ifE1.type=intandE2.type=intthenboolelsetype_error}

Eid{E.type:

=lookup(id.entry)}

 

6、正规式ba(bba)b体现的特点是,每个a的左边都有若干b,除非a是第一个字母。

该正规式定义的语言是:

至少含一个a,但不含子串aa的所有a和b的串集。

最简DFA如下:

7、消除左递归后的文法:

B1B

B0B|1B|

相应的翻译方案如下:

B1{B.i:

=1}B{B.val:

=B.val}

B0{B1.i:

=B.i2}B1{B.val:

=B1.val}

|1{B1.i:

=B.i2+1}B1{B.val:

=B1.val}

|{B.val:

=B.i}

《编译原理》期末试题(三)

1、从优化的范围的角度,优化可以分哪两类?

对循环的优化可以有哪三种?

答:

从优化的范围的角度,优化可以分为局部优化和全局优化两类;

对循环的优化有三种:

循环不变表达式外提、归纳变量删除与计算强度削减。

2、写出表达式a=b*c+b*d对应的逆波兰式、四元式序列和三元式序列。

答:

逆波兰式:

abc*bd*+:

=

四元式序列:

三元式序列:

OPARG1ARG2

(1)(*,b,c,t1)

(1)(*b,c)

(2)(*,b,d,t2)

(2)(*b,d)

(3)(+,t1,t2,t3)(3)(+

(1),

(2))

(4)(:

=,t3,/,a)(4)(:

=(3),a)

3、对于文法G(S):

答:

1)

2)短语:

Ma),(Ma),b(Ma)b

直接短语:

Ma)句柄:

Ma)

三、设有字母表{a,b}上的正规式R=(ab|a)*。

解:

(1)

(2)将

(1)所得的非确定有限自动机确定化

ε

a

b

-0

1

1

3

12

2

1

+3

a

b

-+013

123

+123

123

13

+13

123

(3)对

(2)得到的DFA化简,合并状态0和2为状态2:

(4)令状态1和2分别对应非终结符B和A

G:

A→aB|a|ε;B→aB|bA|a|b|ε;可化简为:

G:

A→aB|ε;B→aB|bA|ε

四、

设将文法G改写成等价的LL

(1)文法,并构造预测分析表。

G:

S→S*aT|aT|*aT;T→+aT|+a

解:

消除左递归后的文法G’:

S→aTS’|*aTS’

S’→*aTS’|ε

T→+aT|+a

提取左公因子得文法G’’:

S→aTS’|*aTS’

S’→*aTS’|ε

T→+aT’

T’→T|ε

Select(S→aTS’)={a}

Select(S→*aTS’)={*}

Select(S→aTS’)∩Select(S→*aTS’)=Ф

Select(S’→*aTS’)={*}

Select(S’→ε)=Follow(s’)={#}

Select(S’→*aTS’)∩Select(S’→ε)=Ф

Select(T→+aT’)={+}

Select(T’→T)=First(T)={+}

Select(T’→ε)=Follow(T’)={*,#}

Select(T’→T)∩Select(T’→ε)=Ф

所以该文法是LL

(1)文法。

预测分析表:

*

+

a

#

S

→*aTS’

→aTS’

S’

→*aTS’

→ε

T

→+aT’

T’

→ε

→T

→ε

6设文法G为:

S→A;A→BA|ε;B→aB|b

解:

(1)拓广文法G’:

(0)S’→S

(1)S→A

(2)A→BA(3)A→ε(4)B→aB(5)B→b;FIRST(A)={ε,a,b};FIRST(B)={a,b}

构造的DFA如下:

项目集规范族看出,不存在冲突动作。

∴该文法是LR

(1)文法。

(2)LR

(1)分析表如下:

(3)输入串abab的分析过程为:

五、给定文法G[S]:

S→aA|bQ;A→aA|bB|b;B→bD|aQ;Q→aQ|bD|b;D→bB|aA;E→aB|bF

F→bD|aE|b

构造相应的最小的DFA。

解:

先构造其NFA:

用子集法将NFA确定化:

a

b

S

A

Q

A

A

BZ

Q

Q

DZ

BZ

Q

D

DZ

A

B

D

A

B

B

Q

D

将S、A、Q、BZ、DZ、D、B重新命名,分别用0、1、2、3、4、5、6表示。

因为3、4中含有z,所以它们为终态。

a

b

0

1

2

1

1

3

2

2

4

3

2

5

4

1

6

5

1

6

6

2

5

令P0=({0,1,2,5,6},{3,4})用b进行分割:

P1=({0,5,6},{1,2},{3,4})再用b进行分割:

P2=({0},{5,6},{1,2},{3,4})再用a、b进行分割,仍不变。

再令{0}为A,{1,2}为B,{3,4}为C,{5,6}为D。

最小化为右上图。

《编译原理》期末试题(四)

一、简述编译程序的工作过程。

(10)

①词法分析②语法分析③语义分析④代码优化⑤目标代码生成

三、给出下面语言的相应文法:

(15)

L1={anbn|n≥1}L2={anbm+nam|n≥1,m≥0}

四、对下面的文法G:

S→a|b|(T)

T→T,S|S

(1)消去文法的左递归,得到等价的文法G2;

(2)判断文法G2是否LL

(1)文法,如果是,给出其预测分析表。

(15)

G2:

S→a|b|(T)

T→ST’

T’→,ST’|ε

G2是LL

(1)文法。

a

b

#

S

S→a

S→b

S→(T)

T

T→ST’

T→ST’

T→ST’

T’

T’→ε

T’→,ST’

五、设有文法G[A]:

A→BCc|gDB

B→bCDE|ε

C→DaB|ca

D→dD|ε

E→gAf|c

(1)计算该文法的每一个非终结符的FIRST集和FOLLOW集;

(2)试判断该文法是否为LL

(1)文法。

(15)

FIRST

FOLLOW

A

B

C

D

E

A,b,c,d,g

b

A,c,d

D

C,g

A,c,d

C,d,g

A,b,c,g

是LL

(1)文法。

 

七、有定义二进制整数的文法如下:

L→LB|B

B→0|1

构造一个翻译模式,计算该二进制数的值(十进制的值)。

(15)

引入L、B的综合属性val,翻译模式为:

S→L{print(L.val)}

L→L1B{L.val=L1.val*2+B.val}

L→B{L.val=B.val}

B→0{B.val=0}

B→1{B.val=1}

《编译原理》期末试题(五)

三有穷自动机M接受字母表={0,1}上所有满足下述条件的串:

每个1都有0直接跟在右边。

构造一个最小的DFAM及和M等价的正规式。

【】【】

 

四证明正规式(ab)*a与正规式a(ba)*等价(用构造他们的最小的DFA方法)。

【答案:

五写一个文法,使其语言是:

L={1n0m1m0n|m,n≥0}

【】【】五文法G:

S→1S0|A

A→0A1|ε

六对文法G[S]

 S→aSb|P

P→bPc|bQc

Q→Qa|a

(1)它是否是算符优先文法?

请构造算符优先关系表

(2)文法G[S]消除左递归、提取左公因子后是否是LL

(1)文法?

请证实。

【】【】1.求出G[S]的FIRSTVT集和LASTVT集:

FIERSTVT(S)={a,b}LASTBVT(S)={b,c}

FIERSTVT(P)={b}LASTBVT(P)={c}

FIERSTVT(Q)={a}LASTBVT(Q)={a}

构造优先关系表为:

a

b

c

a

<>

<

>

b

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

当前位置:首页 > IT计算机 > 计算机软件及应用

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

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