编译原理 词法分析笔记

本文介绍NFA确定化的过程,采用子集法并以实例详细说明如何通过循环迭代生成所有可达状态集合,进而构造出与原始NFA等价的DFA。此外还概述了正规文法和有限自动机之间的相互转换。

1.NFA的确定化(NFA->DFA)

子集法。

以上图为例,

先采取空字-闭包法,得到有关空字的闭包。

{X,5,1}(即由初始状态X出发,所有空字所能到达的路径)

以该闭包为初始闭包,分别按照下列规则执行:

1.初始单走一个a,后续跟任意个空字(可为0)

2.初始单走一个b,后续跟任意个空字(可为0)

(a,b根据输入字母表所得出)

可以得到第一条产生的Ia和Ib,如下:

{5,3,1}和{5,4,1}均为新产生的字集,需加入到左边的I队列中

循环直到所有的子集均出现在最左侧一列中,得到的子集表如下:

 

将上述不同的状态按次编号,同时根据状态转换条件画出状态转换图如下:

其与原DFA等价,完成化简。

 

2.正规文法和有限自动机的相互转换

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值