编译原理平时作业答案Word下载.docx

上传人:b****3 文档编号:16056201 上传时间:2022-11-18 格式:DOCX 页数:31 大小:203.81KB
下载 相关 举报
编译原理平时作业答案Word下载.docx_第1页
第1页 / 共31页
编译原理平时作业答案Word下载.docx_第2页
第2页 / 共31页
编译原理平时作业答案Word下载.docx_第3页
第3页 / 共31页
编译原理平时作业答案Word下载.docx_第4页
第4页 / 共31页
编译原理平时作业答案Word下载.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

编译原理平时作业答案Word下载.docx

《编译原理平时作业答案Word下载.docx》由会员分享,可在线阅读,更多相关《编译原理平时作业答案Word下载.docx(31页珍藏版)》请在冰豆网上搜索。

编译原理平时作业答案Word下载.docx

考虑有一个自动机M1接受S1,那么自动机M1如下:

和L(M1)等价的正规表达式,即S1为:

((00|11)|(01|10)(00|11)*(01|10))*(01|10)(00|11)*

类似的考虑有一个自动机M2接受S2,那么自动机M2如下:

和L(M2)等价的正规表达式,即S2为:

((00|11)|(01|10)(00|11)*(01|10))*

因此,S为:

((00|11)|(01|10)(00|11)*(01|10))*(01|10)(00|11)*0|

((00|11)|(01|10)(00|11)*(01|10))*1

(6) 

不包含子串011的由0和1组成的符号串的全体。

1*|1*0(0|10)*(1|ε)

(7) 

由0和1组成的符号串,把它看成二进制数,能被3整除的符号串的全体。

假设w的自动机如下:

对应的正规表达式:

(1(01*0)1|0)*

2给出接受下列在字母表{0,1}上的语言的DFA。

所有以00结束的符号串的集合。

所有具有3个0的符号串的集合。

(1)DFA 

M=({0,1},{q0,q1,q2},q0,{q2},δ)

其中δ定义如下:

δ(q0,0)=q1 

δ(q0,1)=q0

δ(q1,0)=q2 

δ(q1,1)=q0

δ(q2,0)=q2 

δ(q2,1)=q0

(2)正则表达式:

1*01*01*01*

DFA 

M=({0,1},{q0,q1,q2,q3},q0,{q3},δ)

δ(q1,1)=q1

δ(q2,0)=q3 

δ(q2,1)=q2

δ(q3,1)=q3 

3下面是用正规式表示的变量声明:

(int|float)id(,id)*;

请改用上下文无关文法表示,也就是写一个上下文无关文法,它和该正规式等价。

DTL;

Tint|float

LL,id|id

4试分析下面给出的if-then-else语句的文法,它的提出原本是为了矫正dangling-else(悬而未决的-else)文法的二义性:

stmt→ifexprthenstmt

|matched-stmt

matched-stmt→ifexprthenmatched-stmtelsestmt

|other

试说明此文法仍然是二义性的。

考虑句子ifethenifethenotherelseifethenotherelseother它具有如下所示的两种分析树stmtexprtheneifstmtifmatched-stmtexprthenmatched-stmteotherifeslestmtmatched-stmtexprthenmatched-stmteothereslestmtmatched-stmtotherstmtmatched-stmtifexprthenmatched-stmteifeslestmteslestmtmatched-stmtexprthenestmtotherexprthenmatched-stmteotherifmatched-stmtother

则上面给出的if-then-else文法仍是二义性的。

5证明下面文法是SLR

(1)文法,并构造其SLR分析表。

E→E+T|T

T→TF|F

F→F*|a|b

该文法的拓广文法G'

(0)E'

→E

(1)E→E+T

(2)E→T

(3)T→TF

(4)T→F

(5)F→F*

(6)F→a

(7)F→b

其LR(0)项目集规范族和goto函数(识别活前缀的DFA)如下:

I0={E'

→·

E,E→·

E+T,E→·

T,T→·

TF,T→·

F,F→·

F*, 

F→·

a,F→·

b}

I1={E'

→E·

E→E·

+T}I2={E→T·

T→T·

F*,F→·

b}

I3={T→F·

F→F·

*}I4={F→a·

}I5={F→b·

}

I6={E→E+·

b}I7={T→TF·

*}I8={F→F*·

}

I9={E→E+T·

求FOLLOW集:

FOLLOW(E)={+,$} 

FOLLOW(T)={+,$,a,b}

FOLLOW(F)={+,$,a,b,*}

构造的SLR分析表如下:

显然,此分析表无多重定义入口,所以此文法是SLR文法。

6为下面的文法构造LALR

(1)分析表

S→E

E→E+T|T

T→(E)|a

其拓广文法G'

(0)S'

→S

(1)S→E

(2)E→E+T

(3)E→T

(4)T→(E)

(5)T→a

构造其LR

(1)项目集规范族和goto函数(识别活前缀的DFA)如下:

I0={[S’→·

S,$],[S→·

E,$],[E→·

E+T,$/+],[E→·

T,$/+], 

[T→·

(E),$/+],[T→·

a,$/+]}

I1={[S’→S·

$]}I2={[S→E·

$],[E→E·

+T,$/+]}I3={[E→T·

$/+]}

I4={[T→(·

E),$/+],[E→·

E+T,)/+],[E→·

T,)/+], 

(E),)/+],[T→·

a,)/+]}

I5={[T→a·

$/+]}I6={[E→E+·

T,$/+],[T→·

a,$/+]}

I7={[T→(E·

),$/+],[E→E·

+T,)/+]}I8={[E→T·

)/+]}

I9={[T→(·

E),)/+},[E→·

T,)/+],[T→·

I10={[T→a·

)/+]}I11={[E→E+T·

$/+]}I12={[T→(E)·

I13={[E→E+·

a,)/+]}I14={[T→(E·

),)/+],[E→E·

+T,)/+]}

I15={[E→E+T·

)/+]}I16={[T→(E)·

合并同心的LR

(1)项目集,得到LALR的项目集和转移函数如下:

·

+T,$/+]}I3,8={[E→T·

$/+/)]}

I4,9={[T→(·

E),$/+/)],[E→·

I5,10={[T→a·

$/+/)]}I6,13={[E→E+·

T,$/+/)],[T→·

(E),$/+/)],[T→·

a,$/+/)]}

I7,14={[T→(E·

),$/+/)],[E→E·

+T,)/+]}I11,15={[E→E+T·

$/+/)]}

I12,16={[T→(E)·

LALR分析表如下:

7

(1)通过构造识别活前缀的DFA和构造分析表,来证明文法EE+id|id是SLR

(1)文法。

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

再构造SLR分析表如下:

动作

转移

id+$

E

0

s2

1

s3acc

2

r2r2

3

s4

4

r1r1

表中没有多重定义的条目,因此该文法是SLR

(1)的。

(2)下面左右两个文法都和

(1)的文法等价

EE+Mid|idEME+id|id

MM

请指出其中有几个文法不是LR

(1)文法,并给出它们不是LR

(1)文法的理由。

只有文法

EME+id|id

M

不是LR

(1)文法。

因为对于句子id+id+…+id来说,分析器在面临第一个id时需要做的空归约次数和句子中+id的个数一样多,而此时句子中+id的个数是未知的。

8根据自上而下的语法分析方法,构造下面文法的LL

(1)分析表。

DTL

Tint|real

LidR

R,idR|

先计算FIRST和FOLLOW

FIRST(D)=FIRST(T)={int,real}

FIRST(L)={id}

FIRST(R)={,,ε}

FOLLOW(D)=FOLLOW(L)={$}

FOLLOW(T)={id}

FOLLOW(R)={$}

LL

(1)分析表如下:

int

real

id

$

D

D->

TL

T

T->

int

real

L

L->

idR

R

R->

idR

ε

9下面的文法产生的表达式是对整型和实型常数应用算符+形成的。

当两个整数相加时,结果仍为整数,否则就是实数。

T→num.num|num

(a)给出一个语法制导定义以确定每个子表达式的类型。

(b)扩充(a)中的语法制导定义把表达式翻译成前缀形式,并

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

当前位置:首页 > 法律文书 > 调解书

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

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