首页 > 代码库 > 编译原理学习--词法分析(2)
编译原理学习--词法分析(2)
自动生成的词法分析器跟之前讲的图转移算法是类似的,因为是自动生成,为了把整个流程形式化,需要用另外一个数学工具--有限状态自动机。
从数学上讲,有限状态自动机是什么概念呢?
输入一个字符串,如果字符串能够接受,则输出Yes,否则输出No。有限状态自动机是一个五元组,M=(S, Σ, δ, q0, F),其中,Σ-输入字母表,S- 状态集,q0-初始状态,F-终结状态集,δ-转移函数。
举个例子,什么样的串可以被接受?
由图可知,Σ={a,b},S={0,1,2},q0=0,F={2},δ函数如下所示:
如果按照转移函数,字符串输入完毕后,停留在终结状态,那么字符串就可以被接受。
再来看第二个例子:
可以发现,转移函数的状态是不确定的,我们称为非确定的有限状态自动机(NFA),那么第一个例子中的就是确定的有限状态自动机(DFA),很明显NFA对接受的判断难度更大,所以为了解决这个问题,我们往往将NFA转换为DFA。那么DFA怎么实现呢?举个简单的方法,拿第一个例子来说,可以把它看成有向图,用邻接矩阵表示:
行表示所有的状态,列表示所有的字符,交叉点表示转移函数。
编译原理学习--词法分析(2)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。