正则表达式匹配与状态复杂度研究
1. 正则表达式匹配的函数式程序
正则表达式及其处理工具,特别是正则表达式匹配工具,是形式语言和自动机理论的重大成就之一。谷歌搜索“正则表达式匹配”能得到303,000个结果,有众多命令行工具可用于处理正则表达式,如grep,谷歌不久前还发布了正则表达式C++库,几乎每种编程语言都支持正则表达式,甚至编写LaTeX文档的文本编辑器也有丰富的正则表达式库。
在相关演讲中,有人展示了利用Victor M. Glushkov的思想,编写一个小型Haskell程序用于正则表达式匹配的过程。这个程序能与Perl和谷歌的正则表达式库相媲美,稍作修改后,还能检查任意上下文无关语言的成员资格。该程序基于加权自动机理论,具有很强的灵活性。
2. 状态复杂度研究概述
在过去二十年里,关于状态复杂度的研究成果大量涌现,许多单个操作以及一些组合操作的状态复杂度都得到了研究。状态复杂度研究在自动机和形式语言理论中具有基础性地位,相关问题都是基本问题,且受自动机应用,尤其是新应用的良好推动。
状态复杂度是基于最小有限自动机状态数量的正则语言描述复杂度,分为变换状态复杂度和操作状态复杂度。涉及的有限自动机可以是NFA或DFA,因此有确定性状态复杂度和非确定性状态复杂度。考虑一类语言时,状态复杂度可以是该类语言中所有语言状态复杂度的最大值(最坏情况)或平均值(假设使用特定分布模型)。
3. 状态复杂度研究的基本问题
状态复杂度研究存在一些基本问题:
- 为何20世纪60、70年代很多基本问题未被研究?
- 是否存在通用算法,能针对给定的(单个或组合)操作和一类正则语言,计算该操作在这类语言
超级会员免费看
订阅专栏 解锁全文
1637

被折叠的 条评论
为什么被折叠?



