词法分析器

相关定义:

           识别器:可以在字符流中识别特定单词的程序。

           有限自动机(FA):识别器的一种形式化方法,包含一个有限状态集,一个字母表,一个转移函数,一个起始状态和一个或多个接受状态。

          正则表达式:有限自动机所接受的单词的集合,形成的语言。eg:n(ew|ot)

RE--NFA--DFA--最小DFA--词法分析器

       RE-NFA:Thompson构造法,re的连接,选择,闭包等有一个模板,各部分的连接也有一个模板,按照模板构造

       NFA--DFA:子集构造法(不动点计算,即即便计算过程中不断添加要计算的数据,但添加的数目是有限的,循环都会停止),即将&转移能到达的状态放到一个集合里,再对每个字符进行检索,将相同的状态放到一个集合里,对这些集合检索,直至没有需要检索的集合。

       DFA--最小DFA:Hopcroft算法:构造出所有DFA状态的集合。

词法分析器的实现:

   1.表驱动词法分析器:即利用两个表来查找匹配输入流

  2.直接编码词法分析器:即利用代码的跳转来实现,少了查表得开销。

  3.手工编码:自己实现各种细节,对输入函数的Nextchar和ROLLback都可以自己实现。

posted @ 2016-05-09 23:00  xhyxhy  阅读(840)  评论(0编辑  收藏  举报