词法分析器:通过有限自动机实现正则表达式?

时间:2014-03-04 09:45:15

标签: compiler-construction expression analyzer lexical construction

拜!

在阅读龙书(词法分析)的第3章时,我几乎理解了所有内容(他们如何使用正则表达式指定令牌),直到他们开始讨论有限自动机。它似乎是描述词法分析器的一个重要部分。

现在我理解有限自动机的概念,但我不理解它在词法分析器中的作用和用途?为什么不只用正则表达式指定标记?

提前致谢。

1 个答案:

答案 0 :(得分:0)

正则表达式可以用有限自动机表示,更精确地用确定性表达式表示。

当您编写正则表达式时,词法分析器会将其转换为DFA以在文本中查找匹配项。因此,有限自动机当然在词法分析器中发挥作用。

有很简单的算法可以将Regex转换为FA,就像Thompson的构造算法(http://en.wikipedia.org/wiki/Thompson's_construction_algorithm)一样,但是你可以找到优化的算法。