Skip to content

字符串连接

String concatenation

把第二个字的符号接在第一个字之后形成的新字及相应结合运算。

条目类型
定义

形式陈述

u=a1amv=b1bnΣ 上的,则其连接定义为

uv=a1amb1bn.

连接是 Σ 上的二元运算,满足结合律 (uv)w=u(vw),空字是双侧单位元 εu=uε=u,并有长度可加性 |uv|=|u|+|v|。因此 (Σ,,ε) 构成自由幺半群。一般没有交换律。

形式上,uv:{1,,m+n}Σ 在前 m 个位置取 u,在其余位置取平移后的 v。字连接还满足左右消去律:uw=vwu=vwu=wvu=v

对语言 K,LΣ,语言连接定义为 KL={uv:uK,vL},它由字连接逐点提升而来。

直觉

连接就是保留两段内部顺序,把第二段接到第一段末尾。结合律意味着连续拼接时括号不影响最终字,所以可以无歧义写 uvw;但先后次序通常不可交换。称其“自由”是因为除了结合律和单位元外,字之间没有额外关系:每个字都由符号序列唯一决定。把连接从单个字提升到语言后,一次操作会枚举所有左右组合,这与集合并集完全不同。

例子与边界

{0,1} 上,0110 连接得 0110,反向连接得 1001,说明不交换。01 的三次幂是 010101,而 u0=ε

语言 K={a,ab}L={b,ε} 的连接为 KL={ab,a,abb}。边界上,L=,但 {ε}L=L;空语言与只含空字的语言在连接中行为完全不同。

若字母表只有一个符号,则所有字形如 an,连接恰好交换。连接结果也不自带切分标记,例如 abc=(a)(bc)=(ab)(c);“自由”不是说任意分解唯一,而是说字母上的任意映射都可唯一延拓为幺半群同态。

推论与应用

字符串连接支撑语言运算中的幂与 Kleene 星,也给正则表达式的串接构造提供语义。文法推导、自动机路径标签和程序输入编码都依赖其结合性。

自由幺半群视角把从字母到任意幺半群的映射唯一扩张为同态,成为形式语言同态、语法代数和代数自动机理论的基础。

参考资料
  • Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013,Ch. 0, concatenation and string operations。
  • John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd ed., Pearson, 2006,Ch. 1, concatenation and free monoids。
关系图谱13 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

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

被这些条目使用