编译原理作业题整理.doc

上传人:b****2 文档编号:1268154 上传时间:2022-10-19 格式:DOC 页数:19 大小:331KB
下载 相关 举报
编译原理作业题整理.doc_第1页
第1页 / 共19页
编译原理作业题整理.doc_第2页
第2页 / 共19页
编译原理作业题整理.doc_第3页
第3页 / 共19页
编译原理作业题整理.doc_第4页
第4页 / 共19页
编译原理作业题整理.doc_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

编译原理作业题整理.doc

《编译原理作业题整理.doc》由会员分享,可在线阅读,更多相关《编译原理作业题整理.doc(19页珍藏版)》请在冰豆网上搜索。

编译原理作业题整理.doc

第一章

习题一

1.解释名词:

源语言、目标语言、翻译器、编译器和解释器。

答:

源语言:

被翻译器翻译的语言,用于书写源程序的语言。

目标语言:

被翻译器翻译之后得到的语言,用于书写目标程序的语言。

翻译器:

能够完成从一种语言到另一种语言的变换的软件。

编译器:

一种特殊的翻译器,要求目标语言比源语言低级。

解释器:

解释器是不同于编译器的另一种语言处理器。

解释器不像编译器那样通过翻译来生成目标程序,而是直接执行源程序所指定的运算。

第二章词法分析

作业:

假设∑={0,1},求

1.写出包含010的所有串的正规式

2.写出不包含010的所有串的正规式

答:

1.(0|1)*(010)(0|1)*

2.(10*1)*|((11|00)*|0111*0)*.

2.

(0|1)*010(0|1)*

解:

(1)RE的分解树如下:

r17

r16

r11

*

r15

r14

|

r12

r13

0

1

r10

0

r9

r8

1

r7

r6

0

r5

*

r4

r3

|

r1

r2

0

1

(2)由分解树及基本的Thompson构造算法逐步构造等价的NFA过程如下:

2

3

0

Start

r1:

4

5

1

Start

r2:

1

2

4

3

5

0

1

r3、r4:

6

Start

0

1

2

4

3

5

0

1

6

r5:

7

Start

7’

8

0

Start

r6:

0

1

2

4

3

5

0

1

6

7

0

r7:

8

Start

8’

9

1

Start

r8:

0

1

2

4

3

5

0

1

6

7

8

0

1

r9:

9

Start

9’

10

0

Start

r10:

0

1

2

4

3

5

0

1

6

7

8

0

1

r11:

9

10

0

Start

12

13

0

r12:

Start

14

15

1

r13:

Start

11

12

14

13

15

Start

0

1

16

r14、r15:

10’

Start

11

12

14

13

15

0

1

16

17

r16:

Start

0

1

2

4

3

5

0

1

6

7

8

0

9

1

10

0

11

12

14

13

15

0

1

16

17

r17:

(3)由子集法构造等价的DFA过程如下:

0

1

A

B

C

B

B

D

C

B

C

D

E

C

E

F

G

F

F

G

G

H

I

H

F

G

I

F

I

其中含有r.初态的是A作为新的DFA的初态,含有原r17终态的是E、F、G和H作为新的DFA的终态。

做出对应DFA的状态转换图如下:

Start

A

0

H

B

C

1

0

1

D

0

1

0

E

1

F

0

G

1

0

1

0

1

1

I

0

1

0

(4)直接由分割算法处理该DFA,如得到的DFAmin与原DFA一致说明原DFA本身就是最简的:

由于导致{A,B,C}和D落入的状态集是不等价的,说明{A,B,C}和D是不等价的,故{A,B,C,D}应该分裂为{A,B,C}和{D},故:

由于落入不同的状态集(相对来说是两个不等价的状态集),说明{A,C}和B是不等价的,故{A,B,C,D}应该分裂为{A,C}和{B},故:

由于落入同一个状态集,故{E,F,G,H,I}暂不分裂。

由于落入同一个状态集},故{E,F,G,H,I}暂不分裂。

故最终划分为:

说明A和C是等价的,E、F、G、H和I是等价的。

合并等价状态(A和C中保留A,E、F、G、H和I中保留E)并处理对应弧线得最小化DFA如下:

A

0

B

0

1

D

1

0

E

1

1

0

0

0

1

0

1

2

1

0

3

1

1

0

0

1

0

1

0

1

0

2

2

3

0

3

3

3

1.

0

1

0

0

1

1

2

3

2

4

0

3

1

2

4

3

4

0

1

1

0

2

0

0

4

0

3

1

0

1

0

1

3.1考虑文法

S®(L)|a

L®L,S|S

(a)建立句子(a,(a,a))和(a,((a,a),(a,a)))的分析树。

(b)为(a)的两个句子构造最左推导。

(c)为(a)的两个句子构造最右推导。

(d)这个文法产生的语言是什么。

(a,(a,a))的分析树

S

( L)

L,S

S(L)

aL,S

Sa

a

(a,((a,a),(a,a)))的分析树

S

(L)

L,S

a(L)

L,S

a(L)

L,S

a(L)

L,S

Sa

a

(a,(a,a))的最左推导

S=>lm(L)=>lm(L,S)=>lm(S,S)=>lm(a,S)

=>lm(a,(L))=>lm(a,(L,S))=>lm(a,(S,S))=>lm(a,(a,S))=>lm(a,(a,a))

(a,((a,a),(a,a)))的最左推导

S=>lm(L)=>lm(L,S)=>lm(S,S)=>lm(a,S)=>lm(a,(L))

=>lm(a,(L,S))=>lm(a,(S,S))=>lm(a,((L),S))=>lm(a,((L,S),S))=>lm(a,((S,S),S))=>lm(a,((a,S),S))=>lm(a,((a,a),S))=>lm(a,((a,a),(L)))=>lm(a,((a,a),(L)))

=>lm(a,((a,a),(L,S)))=>lm(a,((a,a),(S,S)))=>lm(a,((a,a),(a,S)))=>lm(a,((a,a),(a,a)))

(a,(a,a))的最右推导

S=>rm(L)=>rm(L,(L))=>rm(L,(L,S))=>rm(L,(L,a))

=>rm(L,(S,a))=>rm(L,(a,a))=>rm(S,(a,a))=>rm(a,(a,a))

(a,((a,a),(a,a)))的最右推导

S=>rm(L)=>rm(L,S)=>rm(L,(L))=>rm(L,(L,S))

=>rm(L,(L,(L)))=>rm(L,(L,(L,S)))=>rm(L,(L,(L,a)))=>rm(L,(L,(S,a)))=>rm(L,(L,(a,a)))=>rm(L,(S,(a,a)))=>rm(L,((L),(a,a)))=>rm(L,((L,S),(a,a)))=>rm(L,((L,a),(a,a)))=>rm(L,((S,a),(a,a)))=>rm(L,((a,a),(a,a)))=>rm(S,((a,a),(a,a)))=>rm(a,((a,a),(a,a)))

(d)该文法产生的语言是括号匹配的串,串中的各项用“,”隔开,项可以是括号匹配的子串或a

3.2考虑文法

S→aSbS|bSaS|ε

(a)为句子abab构造两个不同的最左推导,以此说明文法是二义的。

(b)为abab构造对应的最右推导。

(c)为abab构造对应的分析树

(a)1.S=>lmaSbS=>lmabSaSbS=>lmabaSbS=>lmababS

=>lmabab

2.S=>lmaSbS=>lmabS=>lmabaSbS=>lmababS=>lmabab

(b)S=>rmaSbS=>rmaSb=>rmabSaSb=>rmabSab=>rmabab

(C)分析树

(1)

S

aSbS

εaSbS

εε

分析树

(2)

S

aSbS

aSbSε

εε

(d)该文法产生的语言是a、b个数相等的ab串含空串

习题3

3.3下面的二义文法描述命题演算公式,为它写一个等价的非二义性文法。

S→SandS|SorS|notS|true|false|(S)

答:

E->EorT|T

T->TandF|F

F->notF|(E)|true|false

3.10构造下面文法的LL

(1)分析表

D->TL

T->int|real

L->idR

R->,idR|ε

答:

First(TL)={int,real} Follow(D)={#}

First(T)={int,real} Follow(T)={id}

First(D)={int,real} Follow(L)={#}

First(int)={int} Follow(R)={#}

First(real)={real}

First(idR)={id}

First(L)={id}

First(,idR)={,}

First(ε)={ε}

First(R)={,,ε}

Int

Real

Id

#

D

D->TL

D->TL

T

T->int

T->real

L

L->idR

R

R->,idR

R->ε

3.11下面的文法是否为LL

(1)文法?

说明理由。

(两种方法)

S->AB|PQx

A->xy

B->bc

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

当前位置:首页 > 工程科技 > 材料科学

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

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