标签:
习题 |
分类: 编译原理 |
1 (1 )对给定正规式b*(d|ad) (b|ab) (b|ab)* ,构造其 NFA M ;
( 2) 对给定正规式 (a|b) *a (a|b) ,构造其 DFA M 。
【解答】(1)构造该正规式的NFA M,如下图所示。
(2)d的NFA M 其次,用子集法将其确定化。
2构造一个 DFA, 它接收∑ = { a,b }上的所有满足下述条件的字符串,即该字符串中的每个 a 都有至少一个 b 直接跟在其右边。
子集法:
I
{X,1,Y}
{2}
{1,Y}
3. 将图 2.58 所示的 DFA 最小化。 图 2.58 DFA
【解答】最简DFA如图2.65所示。
4.已知正规式 (1)((a|b) * |aa) * b 和正规式 (2)(a|b) * b 。 (1) 试用有限自动机的等价性证明正规式 (1) 和 (2) 是等价的。 (2 )给出相应的正规文法。
【解答】 (1)正规式(1)对应的NFA如图2.36所示。用子集法将图2.36所示的NFA确定化为DFA,如图2.37所示。由于对非终态的状态1、2来说,它们输入a, b的下一状态是一样的,故状态1和状态2可以合并,将合并后的终态3命名为2,则得到表2.5(注意,终态和非终态即使输入a、b的下一状态相同也不能合并)。由此得到最简DFA,如图2.38所示。正规式(2)对应的NFA如图2.39所示。用子集法将图2.39所示的NFA确定化为如图2.40所示的状态转换矩阵。比较图2.40与图2.37,重新命名后的转换矩阵是完全一样的,也即可以同样得到化简后的DFA如图2.38所示。所以两个自动机完全一样,即两个正规文法等价。 (2)对图2.38,令A对应状态1,B对应状态2,则相应的正规文法G[A]为: G[A]:A→aA|bB|b B→aA|bB|b G[A]可进一步化简为G[S]: S→aS|bS|b(非终结符B对应的产生式与A对应的产生式相同,故两非终结符等价,即可合并为一个产生式)。