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

Compiler construction 词法分析器:通过有限自动机实现正则表达式?,compiler-construction,expression,analyzer,lexical,construction,Compiler Construction,Expression,Analyzer,Lexical,Construction,敬礼 在阅读dragonbook的第3章(词法分析)时,我几乎了解了所有内容(他们如何用正则表达式指定标记),直到他们开始谈论有限自动机。这似乎是描述词汇分析器的一个重要部分 现在我理解了有限自动机的概念,但我不明白它在词法分析器中的作用和用法?为什么不仅仅用正则表达式指定标记 提前感谢。正则表达式可以用有限自动机表示,更精确地说,可以用确定性自动机表示 编写正则表达式时,lexer会将其转换为DFA以在文本中查找匹配项。当然,有限自动机在词汇分析器中有它的作用 有非常简单的算法可以将正则表达式

敬礼

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

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


提前感谢。

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

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


有非常简单的算法可以将正则表达式转换为FA,就像汤普森的构造算法(“s_构造_算法”),但您可以找到优化的算法。

正则表达式将被转换为有限自动机。我认为正则表达式是描述字符串集的符号。有限自动机也是如此。但并不是说正则表达式被转化为有限自动机。