编译原理 第三章 词法分析(下)

3.6 有穷自动机(非常重要)

3.6.1 不确定的有穷自动机(重要)

例:

 状态0是开始状态, 在状态0上输入符号b会进入状态0,输入a可能进去状态0也有可能进入状态1。所以对于状态0来说一个确定的输入符号a他有两种离开状态,这就是一种不确定的状态。

3.6.2 转换表 (非常重要)

: 3-24NFA 对应的转换表

3.6.3 自动机中输入字符串的接受(重要)

 

状态0连接着两个ε,为什么要连接ε?

我们可以把NFA L(aa*|bb*),拆分为两个独立的NFA。

1. L(aa*) 接受a开头的a字符连接的串

2. L(bb*)接受b开头的b字符连接的串

L(aa*|bb*)同时接受这两种模式的串。每个NFA都需要一个开始状态,这个开始状态不需要任何输入符号就可能进入L(aa*)或者L(bb*)

所以我们需要在开始状态连接L(aa*) L(bb*),但是他们不需要任何输入符号所以我们用ε去连接L(aa*)L(bb*)的开始状态。

3.6.4 确定的有穷自动机(重要)

 

第三章后续都是一些算法,每个算法单独记录一个博文把。。。。

猜你喜欢

转载自www.cnblogs.com/lxykl/p/9994357.html