Skip to content

定义Definition

Brzozowski 导数

施工中 · 内容逐步修订

Brzozowski derivative

语言或正则表达式对首字符的剩余,表示读入给定前缀后仍可接受的后缀集合。

形式陈述 ​

语言 L⊆Σ∗ 对字母 a 的左导数定义为 a−1L={w:aw∈L},对字 u 迭代得到 u−1L。对正则表达式 R,Da(R) 是描述该剩余语言的表达式;这里 + 表示并,RS 表示连接。定义可空性表达式 ν(R):当 ε∈L(R) 时取 ε,否则取 ∅。它不是直接参与连接的布尔值。递归规则为

Da(R+S)=Da(R)+Da(S),Da(RS)=Da(R)S+ν(R)Da(S),Da(R∗)=Da(R)R∗.

基础情形是 Da(∅)=Da(ε)=∅;对单字符 b,相等时 Da(b)=ε,不等时为 ∅。令 Dε(R)=R、Dua(R)=Da(Du(R)),便明确了从左到右读取字的次序。关键判据是 w∈L(R) 当且仅当 ε∈L(Dw(R))。

直觉

把正则表达式看成“尚待匹配的语言”,导数便是从语言中“剥离”已经读掉的前缀后,为了最终接受而仍可读取的后缀语言。匹配过程因而不必维护当前位置或回溯栈,只需反复把语言本身向前推进;不同前缀若产生同一剩余语言,就对应同一个 DFA 状态。关键在于导数是语义运算,而不是简单删掉表达式开头的字符:并、连接和 Kleene 星号都要按可空性规则传播。连接规则中的两项尤其容易漏:读到的 a 可以由左部分 R 消费;若 R 能生成空字,也可以直接由右部分 S 消费,所以必须把两种剩余情况取并。

正则式导数逐字匹配
例子与边界

图中使用的是 R=ab∗,即一个 a 后跟任意多个 b:读 a 后剩余式为 b∗,再读任意个 b 都仍为 b∗。图中 ν(R3)=ε,所以 abb 结束时可空而接受,a 也接受,空输入却不接受。下面的 (ab)∗ 把整段 ab 一起重复,括号改变了语言。

对 R=(ab)∗,Da(R)=b(ab)∗,再对 b 求导回到 (ab)∗。

Brzozowski 的有限性定理保证:把并按结合律、交换律、幂等律规范化,并消去空语言及空字连接中的平凡项后,只有有限多个不同的规范导数,因此可用队列枚举它们来构造 DFA。这些恒等式只识别一部分语言等价式;构造会终止,却不保证所得 DFA 已最小。若完全不做化简,语法上不同但语言等价的导数可能无限膨胀。左商的语义有限性与规范导数的有效有限性,都不保证状态数小或朴素表达式表示紧凑。

令 R=(a|b)∗abb。因为前面的星表达式可空,第一次求导得到 Da(R)=R+bb:这个 a 既可能属于任意前缀,也可能是结尾 abb 的开头。接着读 b 得 R+b,再读 b 得 R+ε,此时可空而接受。保留 R 那一项,意味着即使已匹配出一个 abb,后续仍可以继续寻找新的结尾。以 R=ab|ac 为更小的例子,有 Da(R)=b|c、Db(Da(R))=ε,所以 ab 被接受,而 Dd(Da(R))=∅,所以 ad 被拒绝。

导数的语法表示可能迅速膨胀,例如交换律、幂等律下等价的并表达式会产生许多不同写法。实际构造需要规范化或按语言等价合并状态;若把“表达式文本相同”误当作“语言相同”,得到的自动机通常远大于必要规模。

推论与应用

导数为正则表达式匹配、等价检查和 DFA 构造提供统一方法,尤其适合函数式实现、符号字母表和按需生成状态的匹配器。反复求导并对等价导数做商,可以从 正则表达式 直接构造 DFA,给出 Kleene 定理的一条算法化证明路径。增量词法分析也可每读一个字符就更新当前残余语言,并用可空性判断是否已形成完整 token;与 确定化构造 相比,这种做法把状态生成推迟到实际可达的残余语言上。

参考资料
  • Janusz A. Brzozowski, Derivatives of Regular Expressions, Journal of the ACM 11(4), 1964,pp. 481–494。

  • John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd ed., Pearson, 2006,Ch. 3,正则表达式。

  • Frank Pfenning, Derivatives of Regular Expressions, Carnegie Mellon University 15-150 lecture, 2020-04-23,slides 5–7、11–12、16–17,可空性、求导规则及 DFA 构造。

  • Scott Owens, John Reppy and Aaron Turon, Regular-expression derivatives re-examined, JFP 19(2), 2009,§4.1,pp. 180–181:可判定的相似正规化足以保证有限状态生成,但不保证最小性。

关系图谱5 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组