Skip to content

定义Definition

语言运算

施工中 · 内容逐步修订

Language operations

通过集合组合、字的连接、有限重复与编码映射,从已有语言构造新语言。

形式陈述 ​

设 K,L⊆Σ∗ 是同一字母表上的语言。并、交、差按通常的集合运算定义,补集必须相对于已固定的全集:

L―=Σ∗∖L.

把字连接逐点提升到集合,得到

KL={uv:u∈K, v∈L}.

语言的幂与 Kleene 星定义为

L0={ε},Ln+1=LnL,L∗=⋃n≥0Ln,

而 L+=⋃n≥1Ln=LL∗ 表示一次或多次连接。这里“一次”计的是所选片段数,不是结果的字符数:若 ε∈L,则 ε∈L+;只有在 ε∉L 时,才有 L+=L∗∖{ε}。反转逐字作用,LR={wR:w∈L},并满足 (KL)R=LRKR;次序反转是不可省略的。

若先给每个符号指定字 h(a)∈Γ∗,由自由幺半群的延拓性质,这个映射会唯一扩张为保持连接的同态 h:Σ∗→Γ∗,满足 h(uv)=h(u)h(v) 与 h(ε)=ε。语言的同态像和逆像分别为

h(L)={h(w):w∈L},h−1(K)={w∈Σ∗:h(w)∈K}.
直觉

集合运算只关心一个完整字是否属于语言;连接与星则利用字内部的先后次序。KL 表达“先选择一段符合 K 的字,再选择一段符合 L 的字”,L∗ 表达把这种片段重复任意有限次。所谓任意包括零次,所以空字总在 L∗ 中;所谓有限则表示星不会产生无限字。

一个结果字可能有多种合法切分。若 K=L={a,aa},字 aaa 既可分成 a·aa,也可分成 aa·a。语言连接只记录结果是否存在某种切分,不记录切分见证,更不承诺唯一解析。需要保留语法树或捕获组时,语言集合本身的信息已经不够。

同态把每个输入符号替换成一个固定字,随后保持连接;它适合描述编码、擦除和 token 展开。逆同态从目标约束反推哪些源字会被映入其中。两者看似只是“替换字符串”,在闭包证明中却方向不同:像会合并多个源字,逆像则把一个目标语言拉回整个源空间。

例子与边界

设 D={0,1,…,9},S={ε,+,−}。那么 SD+ 描述带可选符号且至少含一位数字的十进制整数字面量。这里 S 含三个字,其中空字表示没有正负号;D+ 排除了只写正负号的输入。若还要禁止前导零,需要再与一个更精确的语言组合。

令 L={ab},则

L∗={ε,ab,abab,…}.

它不包含 aabb,因为星重复的是整个片段 ab。同样,∅∗={ε}:正次数的幂都为空,零次幂仍贡献连接单位元。{ε}∗ 也等于 {ε},但原因是每次选择的片段本身都为空。

连接一般不交换:{a}{b}={ab},而 {b}{a}={ba}。它对并分配,例如 K(L∪M)=KL∪KM,却不会对交给出同样的等式;一个结果字在左右两边可能采用不同切分,因此通常只有 K(L∩M)⊆KL∩KM。

取 K={ε,a}、L={a}、M={ε},便有 L∩M=∅,所以 K(L∩M)=∅。但 KL={a,aa}、KM={ε,a},交集含 a:在第一边切成 ε⋅a,在第二边切成 a⋅ε。两个存在性见证各自成立,却没有一个共同右段落在 L∩M 中。

有限闭包不能越过到无限并。每个单点语言 {0n1n} 都是正则语言,但

⋃n≥0{0n1n}={0n1n:n≥0}

并不正则。一个语言类对二元并封闭,只能推出任意有限并封闭,不能跨过量词直接推广到可数并。

推论与应用

正则表达式正是以并、连接和 Kleene 星作为递归构造器。正则语言闭包性质进一步说明,有限自动机所识别的语言经过哪些运算仍可由有限状态描述,并给出相应构造。

编译器用连接组织 token 序列,用并组合不同词法规则;协议规格把合法阶段语言连接起来;同态则能把详细事件归并为较粗类别,或把 token 展开成字符编码。每次使用补集或逆像时,都应同时检查字母表与映射的定义域,否则“所有其他输入”的范围会悄然改变。

参考资料
  • John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd ed., Pearson, 2006, §§1.1–1.2 and Chapter 3.
  • Jean-Éric Pin, Mathematical Foundations of Automata Theory, 2022, Chapters I–II.
关系图谱16 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

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

使用的工具

被这些条目使用