Skip to content

Copyless 流式字符串转导器

Copyless streaming string transducer · Copyless SST

每轮同步更新中每个旧寄存器至多被使用一次,从而禁止复制已累积字符串的 SST 子类。

条目类型
模型

形式陈述

Copyless SST 是流式字符串转导器的语法子类。对每个控制状态和输入字母,把这一轮所有寄存器更新的右式放在一起;若每个旧寄存器变量在这些右式中总计至多出现一次,更新就是 copyless。终态输出表达式也要求每个寄存器至多出现一次。

例如

X:=Xa,Y:=bY

是 copyless,因为旧 X,Y 各出现一次;X:=XY, Y:=X 不是,因为旧 X 在两条右式中共出现两次。限制只统计寄存器变量,不限制常量字母出现次数,也不禁止把一个旧寄存器完全丢弃。

在有限字、确定控制、同步更新、寄存器初值为空以及终态表达式产生偏函数的标准假设下,copyless SST 与正则字符串传导表达能力等价。若允许复制、数据寄存器测试、非确定更新或无限字输出,等价范围都会改变。

直觉

Copyless 规则把每段已经积累的文本当成线性资源:一轮中可以移动、连接或丢弃,但不能同时送往两个去处。新读到的字符是常量,可以分别追加到多个寄存器;被禁止的是复制整个历史片段。

因此寄存器内容可以任意长,模型并非常数内存的实际流算法。它保存的是固定数量的无界字符串,只是这些字符串的“血统”不会分叉。固定寄存器数和每步有限常量共同推出输出长度对输入长度的线性上界。

该限制是可静态检查的:扫描每个更新表,计数右式中的变量出现次数即可。无需分析输入或求不动点,因而适合作为语言设计和验证系统中的语法纪律。

更细地看,每轮更新都诱导一张“旧寄存器到新寄存器”的变量流图。Copyless 要求每个旧变量的出度至多为一;一个新变量仍可接收若干不同旧变量并按指定次序连接。随着输入推进,历史片段可以汇合,却不会分叉成越来越多副本,这正是线性长度界背后的机制,而非单纯的实现建议。

例子与边界

反转可由一个寄存器完成。令 X 初值为 ε,每读当前字符 a 同步更新

X:=aX,

终态输出 X。输入 cab 时,轨迹为

εccaacbbac,

最终正是 cab 的反转。旧 X 每步只出现一次,所以完全 copyless;在左侧追加当前常量并不算“复制寄存器”。

模型甚至能输出两份输入:用 X:=XaY:=Ya 同时把当前字符常量写入两个寄存器,终态输出 XY。旧 X,Y 各用一次,故仍合法。由此可见 copyless 不表示每个输入位置只能贡献一个输出字符;固定寄存器数允许固定倍数复制。

相反,单寄存器更新 X:=XXa 非法,因为旧 X 出现两次,并产生 2n1 长输出。函数 ww|w| 也不能靠“再加几个寄存器”实现:所需副本数随输入增长,而机器的寄存器数固定。若把终态表达式写作 XX,同样在最后一步违反 copyless。

需要注意,copyless 是逐条转移的联合条件,不是分别检查每个赋值。例如 X:=XY:=X 单看各自都只写一次 X,合在同一轮却把旧 X 分到两个新寄存器,仍然违法。审计更新表时必须跨所有右式累计变量次数。

推论与应用

Copyless SST 单向读输入,却可通过“向寄存器左端或右端追加”模拟双向读头最终会以何种顺序输出各片段。反过来,确定 2DFT 可用 crossing sequence 追踪每个输入边界的有限穿越方式,从而模拟寄存器片段的组合。两向构造给出 regular function 等价定理。

该类对函数复合封闭,但直接把一台 SST 的寄存器表达式代入另一台,可能迅速增大控制状态和更新式;保持 copyless 需要结构化地追踪变量流,而非文本式反复展开。表达能力闭包不等于构造没有指数代价。

在流式数据清洗、字段重排和程序验证中,copyless 纪律提供两项可用保证:输出大小线性受控,变量来源可追踪。若需求确实包含指数展开,应改用一般 SST 并显式评估输出成本,而不是悄悄放宽一条赋值。

参考资料
  • Rajeev Alur and Pavol Černý, “Expressiveness of Streaming String Transducers,” FSTTCS 2010, LIPIcs 8, 2010, Definition 1 and §§3–4.
  • Rajeev Alur and Pavol Černý, “Streaming Transducers for Algorithmic Verification of Single-Pass List-Processing Programs,” POPL 2011, §§2–4.
  • Emmanuel Filiot and Pierre-Alain Reynier, “Transducers, Logic and Algebra for Functions of Finite Words,” ACM SIGLOG News 3(3), 2016, §5.
关系图谱4 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

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

上位 / 更一般

下位 / 直接特例

暂未标注直接特例。

类型化关系

限定层次等价