我将在我的理论课上讨论这个问题,我很好奇这里有多少人知道正则表达式编译实际上是什么。我在网上看过,在我看来,这是一个比我认为的更古老的话题。
所以,是的,在阅读这个问题之前,谁知道正则表达式编译是通过将正则表达式转换为 epsilon-nondeterministic 有限自动机来执行的?谁不知道那是什么?
我将在我的理论课上讨论这个问题,我很好奇这里有多少人知道正则表达式编译实际上是什么。我在网上看过,在我看来,这是一个比我认为的更古老的话题。
所以,是的,在阅读这个问题之前,谁知道正则表达式编译是通过将正则表达式转换为 epsilon-nondeterministic 有限自动机来执行的?谁不知道那是什么?
行。我想我会是第一个承认这一点的人,虽然我几年前上过编译器的课程并且知道它的一般原理,但我认为我需要再次拿出“龙之书”并阅读更多关于这个主题,如果我真的被要求编写做这种事情的代码。
Rob Pike 和 Brian Kernighan 在 O'Reilly 的Beautiful Code的第 1 章中描述了一个非常简单和优雅的 C 小正则表达式编译器。这很容易学习。编译器课程也涵盖了它:可以使用正则表达式定义标记类型。所以我想这种知识并不少见。
我知道它与有限状态机有关,但除此之外没有什么。并不是我想深入研究的主题......我怀疑它在引擎盖下很讨厌。SO上似乎根本没有多少人如何使用正则表达式,更不用说了解它们是如何工作的。