清华大学编译原理第二版课后习答案文档格式.docx

上传人:b****2 文档编号:13317238 上传时间:2022-10-09 格式:DOCX 页数:40 大小:19.62KB
下载 相关 举报
清华大学编译原理第二版课后习答案文档格式.docx_第1页
第1页 / 共40页
清华大学编译原理第二版课后习答案文档格式.docx_第2页
第2页 / 共40页
清华大学编译原理第二版课后习答案文档格式.docx_第3页
第3页 / 共40页
清华大学编译原理第二版课后习答案文档格式.docx_第4页
第4页 / 共40页
清华大学编译原理第二版课后习答案文档格式.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

清华大学编译原理第二版课后习答案文档格式.docx

《清华大学编译原理第二版课后习答案文档格式.docx》由会员分享,可在线阅读,更多相关《清华大学编译原理第二版课后习答案文档格式.docx(40页珍藏版)》请在冰豆网上搜索。

清华大学编译原理第二版课后习答案文档格式.docx

NDD.... 

=>

NDDDD...D=>

D......D

或者:

允许0 

开头的非负整数?

第3题

为只包含数字、加号和减号的表达式,例如9-2+5,3-1,7等构造一个文法。

G[S]:

S->

S+D|S-D|D

D->

0|1|2|3|4|5|6|7|8|9

第4 

已知文法G[Z]:

Z→aZb|ab

写出L(G[Z])的全部元素。

Z=>

aZb=>

aaZbb=>

aaa..Z...bbb=>

 

aaa..ab...bbb

L(G[Z])={anbn|n>

=1}

第5 

写一文法,使其语言是偶正整数的集合。

要求:

打头;

(2)不允许0 

打头。

(1)允许0 

开头的偶正整数集合的文法

E→NT|D

T→NT|D

N→D|1|3|5|7|9

D→0|2|4|6|8

T→FT|G

D→2|4|6|8

F→N|0

G→D|0

第6 

已知文法G:

<

表达式>

:

=<

项>

|<

+<

因子>

*<

=(<

)|i

试给出下述表达式的推导及语法树。

(5)i+(i+i)

(6)i+i*i

i

( 

(5) 

+(<

+i)

+(i+i)

i+(i+i)

(6) 

*i

+i*i

i+i*i

第7 

证明下述文法G[〈表达式〉]是二义的。

〈表达式〉∷=a|(〈表达式〉)|〈表达式〉〈运算符〉〈表达式〉

〈运算符〉∷=+|-|*|/

可为句子a+a*a 

构造两个不同的最右推导:

最右推导1 

〈表达式〉〈表达式〉〈运算符〉〈表达式〉

〈表达式〉〈运算符〉a

〈表达式〉* 

a

〈表达式〉〈运算符〉〈表达式〉* 

〈表达式〉〈运算符〉a 

〈表达式〉+ 

最右推导2 

〈表达式〉〈运算符〉〈表达式〉〈运算符〉〈表达式〉

〈表达式〉〈运算符〉〈表达式〉〈运算符〉 

〈表达式〉〈运算符〉〈表达式〉 

第8 

文法G[S]为:

该文法是否为二义的?

为什么?

对于串abc

(1)S=>

Ac=>

abc 

(2)S=>

aB=>

abc

即存在两不同的最右推导。

所以,该文法是二义的。

对输入字符串abc,能构造两棵不同的语法树,所以它是二义的。

S

B

c

b

第9 

考虑下面上下文无关文法:

S→SS*|SS+|a

(1)表明通过此文法如何生成串aa+a*,并为该串构造语法树。

*

(2)G[S]的语言是什么?

(1)此文法生成串aa+a*的最右推导如下

S=>

SS*=>

Sa*=>

SS+a*=>

Sa+a*=>

aa+a*

(2)该文法生成的语言是:

*和+的后缀表达式,即逆波兰式。

第10 

文法S→S(S)S|ε

生成的语言是什么?

该文法是二义的吗?

说明理由。

(1) 

嵌套的括号

(2) 

是二义的,因为对于()()可以构造两棵不同的语法树。

第11 

令文法G[E]为:

E→T|E+T|E-T

T→F|T*F|T/F

F→(E)|i

证明E+T*F 

是它的一个句型,指出这个句型的所有短语、直接短语和句柄。

此句型对应语法树如右,故为此文法一个句型。

因为存在推导序列:

E=>

E+T=>

E+T*F,所

以 

E+T*F 

句型

此句型相对于E 

的短语有:

E+T*F;

相对于T 

的短语

有T*F

直接短语为:

T*F

句柄为:

第13 

一个上下文无关文法生成句子abbaa 

的推导树如下:

(1)给出串abbaa 

最左推导、最右推导。

(2)该文法的产生式集合P 

可能有哪些元素?

(3)找出该句子的所有短语、直接短语、句柄。

A

ε 

(1)串abbaa 

最左推导:

ABS=>

aBS=>

aSBBS=>

aBBS=>

abBS=>

abbS=>

abbAa=>

abbaa

最右推导:

ABAa=>

ABaa=>

ASBBaa=>

ASBbaa=>

ASbbaa=>

Abbaa=>

(2)产生式有:

S→ABS 

|Aa|ε 

A→a 

B→SBB|b

可能元素有:

aa 

ab 

abbaa 

aaabbaa 

……

(3)该句子的短语有:

是相对A 

的短语

是相对S 

是相对B 

εbb 

aεbbaa 

直接短语有:

句柄是:

《编译原理》课后习题答案第四章

构造下列正规式相应的DFA.

1(0|1) *101

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

(3) 

a((a|b)*|ab*a)*b

(4) 

b((ab)*|bb)*ab

先构造NFA:

用子集法将NFA 

确定化

1

AB

AB 

AC 

ABY

ABY 

除X,A 

外,重新命名其他状态,令AB 

为B、AC 

为C、ABY 

为D,因为D 

含有Y(NFA

的终态),所以D 

为终态。

D

DFA 

的状态图:

(2)先构造NFA:

E

0

ε

K

L

Y

X

T0=X 

ABFL

T1= 

ABFL 

CG

CG 

CGJ

T2= 

T3= 

CGJ 

DH 

DH

ABFKL

T4= 

EI

EI 

ABEFIL

T5= 

ABFKL 

T6= 

ABEFIL 

EJY 

ABEFGJLY

T7= 

ABEFGJLY 

EHY 

CGK

ABEFHLY

CGK 

ABCFGJKL

T8= 

ABEFHLY 

EY 

CGI

ABEFLY

CGI 

CGJI

T9= 

ABCFGJKL 

DHY 

DHY

T10= 

ABEFLY 

T11= 

CGJI 

DHJ 

DHJ

T12= 

T13= 

EIK

EIK 

ABEFIKL

T14= 

ABEFIKL 

将T0、T1、T2、T3、T4、T5、T6、T7、T8、T9、T10、T11、T12、T13、T14重新命名,分别用0、

1、2、3、4、5、6、7、8、9、10、11、12、13、14 

表示。

因为2、7、8、10、12 

中含有Y,

所以它们都为终态。

3

2

5

6

9

10 

11

12 

11 

13 

14

14 

12

7

8

4

a,b

F

C

ABCD

T1=ABCD 

BE 

BY

ABCDE

BY 

ABCDY

T2=ABCDE 

BEF 

BEY

ABCDEF

BEY 

ABCDEY

T3=ABCDY 

T4=ABCDEF 

T5=ABCDEY 

将T0、T1、T2、T3、T4、T5重新命名,分别用0、1、2、3、4、5 

因为3、5 

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

当前位置:首页 > 高等教育 > 工学

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

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