编译原理题库 - 简答题(2)

2020-03-29 18:33

式。考虑满足条件的字符串中的1:在串的开始部分可以有0个或多个1,串的尾部也可以有0个或多个1,但串的中间只要出现1则至少在两个以上,所以满足条件的正规表达式为1*(0∣111*)*1*。 5 解: (1)、图(a)中为一个NFA,所以需要先对它进行确定化,得到DFA,然后再对DFA进行最小化。

首先进行确定化,如下两个表所示:

所求的DFA如下图所示:

1 0 S 0A 1 1 B

状态 a b {0} {0,1} {1} {0,1} {0,1} {1} {1} {0} ? 状态 a b 0 1 2 1 1 2 2 0 6

根据状态转换矩阵得到如下图所示的DFA:

a b a 2 0 1 b a 题意,该DFA接受的字符串由0和1组成,并且每个1的后面都有0直接跟在右边,因此,可以将该字符串理解为由0和10构成的串,则相应的正规表达式就是(0︱10)*。 第二步:构造NFA。首先得出下图:

化简后的DFA为:

X (0︱10)* Y

a b a 然后对上图进行分解后得到如下图所示的NFA。

2

2 0 1 X ε 1 ε 0 (2)、题中所给即为一个DFA,不需要确定化,只对它进行最小化即可。

首先将状态划分为两个集合{{0,1},{2,3,4,5}}。有{0,1}a={1},{0,1}b={2,4}和{2,3,4,5}a={1,3,0,5},{2,3,4,5}b={2,3,4,5},所以可以进一步划分为{{0,1},{2,4},{3,5}},然后有{0,1}a={1},{0,1}b={2,4},{2,4}a={1,0},{2,4}b={3,5},{3,5}a={3,5},{3,5}b={2,4}。因此,最后划分结果是{{0,1},{2,4},{3,5}}。

最小化后的DFA如下图所示:

a ba bb 0 第三步:确定化,得到DFA。确定化结果如表14.1所列;给状态编号,得到表14.2所示的状态转换矩阵:

a 1 2

0 6解:第一步:写出正规表达式。根据状态 0 {1,Y} {1,Y} {1,Y} 0 1 1 1 1 {2} {2} ? 1 2 2 {X,1,Y} {1,Y} {2} 状态 0 1 2 表14.1 状态转换矩阵 表14.2 新的状态转换矩阵

7

根据状态转换矩阵得到DFA如下图所示:

0 1 1 2

第四步:对该DFA进行最小化。其分析过程如下:

{0,1},{2}

{0,1}0={1},{0,1}1={2} {0,1},{2}

最小化后的DFA如图所示,该DFA即为所求。

0 1 0 0 0 0 0 1 2 0 1 0 1 1 0 1 0 3 0 4 1 还可以对上图的DFA进行化简,状态3和4可以合并,化简后的DFA如下图所示:

0,1 0 0 0 1 S A 1 0 B T 1 1 1

对状态转换图进行确定化,得到状态转换矩阵:

状态 {S} {S,B} {S,A} {S,B,C,Z} {S,A,C,Z}

状态 0 1 2 3 4

1 3 1 3 3

不难看出,该DFA接受的语言是{0,1}0 上包含00或11的字符串。根据化简后的1 DFA,我们可以写出相应的左线性文法G’: {S,B} {S,A} T0∣T1 {S,B,C,Z} T→A0∣{SB1,∣A} A→B0∣{S,B} {S0 ,A,C,Z} {S,B,C,Z} B→A1∣{S1 ,A,C,Z} 卷 A,C,Z} {S,B,C,Z} 编译原理F{S,1、考虑下面的文法G1: 0 1 S→a∣∧∣2 (T) T→T,S∣S 2 (1)消去G1的左递归。然后对每个非4 终结符,写出不带回溯的递归子程序。

4 (2)经改写后的文法是否是LL(1)的?

4 给出它的预测分析表。 (2)计算每个非终结符的FIRST集合和FOLLOW集合:

FIRST(S)={a,∧,( } FIRST(T)={a,∧,( } FIRST(T’)={,,ε}

8

给状态编号,得到新的状态转换矩阵: 根据状态转换矩阵获得DFA如下:

FOLLOW(S)={ ),’,’,#} FOLLOW(T)={ ) } FOLLOW(T’)={ ) }

从而可见改造后的文法符合LL(1)文法的充分必要条件,所以是LL(1)的。

该文法的预测分析表 S T T’ a S->a T->S T’ ^ S->^ T->S T’ ( S->(T) T->S T’ (1) (2)

(3) (4)

2、对下面的文法G: E→TE’ E’→+E∣ε T→FT’ T’→T∣ε F→PF’

F’→*F’∣ε P→(E)∣a∣b∣∧

计算这个文法的每个非终结符

的FIRST和FOLLOW。

(1) 证明这个文法是LL(1)的。

构造它的预测分析表。

构造它的递归下降分析程序。

3、下面文法中,哪些是LL(1)的,说明

理由。 (1)、 S→Abc A→a∣ε B→b∣ε (2)、 S→Ab A→a∣B∣ε B→b∣ε

(1)

(3)、

(2) S→ABBA

A→a∣ε

(3) B→b∣ε

(4) (4)、

S→aSe∣B

B→bBe∣C C→cCe∣d 4、对下面文法: Expr→-Expr Expr→(Expr)∣Var ExprTail→-Expr∣ε Var→id VarTail ) , # VarTail→(Expr) ∣ε (、构造LL(1) 1) 分析表。 (2)、给出对句子id--id((id))T’->ξ T->,S T’ 的分析过程。

1、令文法G1为 E→E+T∣T T→T*F∣F F→(E)∣i

证明E+T*F是它的一个句型,指出这个

句型的所有短语,直接短语和句柄。 2、考虑下面的表格结构文法G2: S→a∣∧∣(T) T→T,S∣S

给出(a,(a,a))和(((a,a),

∧,(a)),a)的最左和最右推导。

指出(((a,a),^,(a)),a)的规范归约及

每一步的句柄。根据这个规范归约,给出“移进-归约”的过程,并给出它的语法树自下而上的构造过程。 3、(1)计算练习2文法G2的FIRSTVT和LASTVT。

(2)计算G2的优先关系。G2是一个算符优先文法吗?

(3)给出输入串(a,(a,a))的算符优先分析过程。 4、考虑文法: S→AS︱b A→SA︱a

列出这个文法的所有LR(0)项

目。

构造这个文法的LR(0)项目集

规范族及识别活前缀的DFA。

这个文法是SLR的吗?若是,

构造出它的SLR分析表。

这个文法是LALR或LR(1)的

9

吗? F卷答案 1答:解:

(1)按照T、S的顺序消除左递归,得到文法:?

G’(S)

S→a∣∧∣(T) T→ST’

T’→,ST’ ∣ε

对于非终结符S,T, T’的递归子程序如下:

Procedure S; Begin

If sym = ‘a’ or sym = ‘^’

Then advance

Else if sym = ‘(‘ (2) Then begin Advance ; T;

If sym = ’)’

Then advance Else error End Else error Ends;

Procedure T; Begin

S; T’; Ends;

Procedure T’ Begin

If sym = ‘,’ Then begin

Advance ; S; T’ Ends ends; 2解: (3)1) 计算每个非终结符的FIRST集

合和FOLLOW集合如下:

FIRST(E)={(,a,b,∧} FIRST(E’)={+,ε} FIRST(T)={(,a,b,∧}

FIRST(T’)={(,a,b,∧,ε} FIRST(F)={(,a,b,∧} FIRST(F’)={*,ε} FIRST(P)={(,a,b,∧}

FOLLOW(E)={#,)} FOLLOW(E’)={#,)} FOLLOW(T)={+,),#} FOLLOW(T’)={+,),#}

FOLLOW(F)={(,a,b,∧,+,),#} FOLLOW(F’)={(,a,b,∧,+,),#}

FOLLOW(P)={*,(,a,b,∧,+,),#}

本文法是LL ( 1 )文法。 证明: 通过观察可知文法中不含有

左递归,满足LL (1)文法定义的第一个条件。

考虑下列产生式:

E’→+E∣ε T’→T∣ε F’→*F’∣ε P→(E)∣a∣b∣∧ 因为: FIRST(+E)∩FIRST(ε)={+}∩{ε}=? FIRST(E’)∩FOLLOW(E’)={+}∩{#,)}= ?

FIRST(T)∩FIRST(ε)={(,a,b,∧}∩{ε}=?

FIRST(T’)∩FOLLOW(T’)={(,a,b,∧}∩{+,),#}=?

FIRST(*F’)∩FIRST(ε)={*}∩{ε}=?

FIRST(F’)∩FOLLOW(F’)={*}∩{(,a,b,∧,+,),#}= ? FIRST((E))∩FIRST(a)∩FIRST(b)∩FIRST(∧)= ?

所以该文法是LL(1)文法。

构造其预测分析表:

10


编译原理题库 - 简答题(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学生文化消费调查报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: