码迷,mamicode.com
首页 > 其他好文 > 详细

编译原理学习--词法分析(2)

时间:2015-02-01 14:48:50      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

  自动生成的词法分析器跟之前讲的图转移算法是类似的,因为是自动生成,为了把整个流程形式化,需要用另外一个数学工具--有限状态自动机。

  从数学上讲,有限状态自动机是什么概念呢?

    技术分享

  输入一个字符串,如果字符串能够接受,则输出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)

标签:

原文地址:http://www.cnblogs.com/anthony007/p/4265507.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!