Efficient pattern matching is fundamental for practical term rewrite engines. By preprocessing the given patterns into a finite deterministic automaton the matching patterns can be decided in a single traversal of the relevant parts of the input term. Most automaton-based techniques are restricted to linear patterns, where each variable occurs at most once, and require an additional post-processing step to check so-called variable consistency. However, we can show that interleaving the variable consistency and pattern matching phases can reduce the number of required steps to find all matches. Therefore, we take the existing adaptive pattern matching automata as introduced by Sekar et al and extend these with consistency checks. We prove that the resulting deterministic pattern matching automaton is correct, and show several examples where some reduction can be achieved.
翻译:高效模式匹配对实用术语重写引擎至关重要。 通过将给定模式预处理成一个有限的确定性自动图案, 匹配模式可以在输入术语相关部分的单行中决定。 多数基于自动图案的技术仅限于线性模式, 每个变量最多发生一次, 需要额外的后处理步骤来检查所谓的变量一致性。 但是, 我们可以显示, 连接变量一致性和模式匹配阶段可以减少寻找所有匹配所需的步骤的数量。 因此, 我们采用Sekar et al 引入的适应性模式匹配自动图案, 并通过一致性检查扩展这些模式。 我们证明, 由此产生的确定性模式匹配自动图案是正确的, 并举几个可以实现某些减排的例子 。