[论文解读] Unique Pattern Matching in Strings
本文形式化了使用首次匹配和最长匹配策略的正则表达式唯一模式匹配语义,证明了通过递归和首次匹配模拟最长匹配的常见方法是错误的。本文提出了一种 sound 且 complete 的类型推断算法,构建了一个无歧义的 NFA,以高效实现线性时间匹配并正确关联子表达式。
Regular expression patterns are a key feature of document processing languages like Perl and XDuce. It is in this context that the first and longest match policies have been proposed to disambiguate the pattern matching process. We formally define a matching semantics with these policies and show that the generally accepted method of simulating longest match by first match and recursion is incorrect. We continue by solving the associated type inference problem, which consists in calculating for every subexpression the set of words the subexpression can still match when these policies are in effect, and show how this algorithm can be used to efficiently implement the matching process.
研究动机与目标
- 正式定义字符串中正则表达式的唯一匹配语义,解决模式匹配中的歧义问题。
- 识别并纠正广泛存在的误解:即最长匹配可通过首次匹配与递归模拟,本文证明该方法在最长匹配策略下是错误的。
- 解决正则类型推断问题:在唯一匹配语义下,计算每个子表达式所能匹配的单词集合。
- 基于类型推断过程生成的无歧义 NFA,开发一种高效的线性时间匹配算法。
- 提供一种与语法和系统无关的类型推断方法,抽象出 XDuce 等形式化系统的具体实现。
提出的方法
- 通过两个消歧规则定义形式化匹配关系:选择优先级用于选择(alternation),最长匹配用于 Kleene 星(Kleene star)。
- 提出一个声明式类型推断问题:对于模式 P 和上下文语言 C,计算在唯一匹配语义下每个子表达式所匹配的子词语言。
- 提出算法 H(P, C),构造一个超自动机 (A, f),其中 f(n) 是表示子表达式 n 所匹配语言的 NFA。
- 基于模式结构使用递归构造规则:对于 P = P1.P2,P = P1 + P2,P = P1*,计算每个子表达式的类型。
- 构建一个无歧义的 NFA A,用于识别完整模式,并通过正向和反向状态遍历支持高效匹配。
- 采用两阶段匹配过程:正向遍历计算可达状态,反向遍历重构唯一接受路径并提取子表达式匹配结果。
实验结果
研究问题
- RQ1使用首次匹配与递归模拟最长匹配的标准方法,在正则表达式模式匹配中是否正确?
- RQ2在唯一匹配语义下,是否存在一种 sound 且 complete 的正则类型推断算法?
- RQ3类型推断过程能否高效实现,并生成支持线性时间匹配的自动机?
- RQ4如何使类型推断独立于特定的正则表达式类型系统或语法表示?
- RQ5类型推断与匹配过程的计算复杂度是多少?能否进一步优化?
主要发现
- 通过首次匹配与递归模拟最长匹配的方法,在最长匹配策略下被正式证明是错误的,该方法在 XDuce、C Duce 和 λre 等语言中被广泛使用。
- 所提出的类型推断算法 H(P, C) 是 sound 且 complete 的,能正确计算在唯一匹配语义下每个子表达式所能匹配的单词集合。
- 生成的自动机 A 是无歧义的,确保每条输入字符串最多只有一个接受路径,从而支持确定性和高效匹配。
- 通过结合正向状态传播与反向路径重构,该算法支持线性时间匹配,并可提取子表达式匹配结果。
- 类型推断过程独立于任何特定的正则表达式形式化系统,仅依赖于语言操作,增强了清晰度与通用性。
- H(P, C) 的构造在最坏情况下可能导致指数级膨胀,尽管本文推测其复杂度上界为 2EXPTIME。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。