[论文解读] Regular Combinators for String Transformations
本文提出了一种与机器无关的、基于代数的正则字符串变换表征方法,使用一组最小的组合子——选择、拆分求和、迭代求和、左加性拆分求和、函数求和以及链式求和——来捕捉所有可通过双向有限状态转换器或MSO可定义图变换计算的函数。关键贡献在于,为任意幺半群(包括非交换幺半群)上的正则函数提供了完整且最小的组合基础,从而实现了对复杂字符串变换(如反转和复制)的声明式规格说明。
We focus on (partial) functions that map input strings to a monoid such as the set of integers with addition and the set of output strings with concatenation. The notion of regularity for such functions has been defined using two-way finite-state transducers, (one-way) cost register automata, and MSO-definable graph transformations. In this paper, we give an algebraic and machine-independent characterization of this class analogous to the definition of regular languages by regular expressions. When the monoid is commutative, we prove that every regular function can be constructed from constant functions using the combinators of choice, split sum, and iterated sum, that are analogs of union, concatenation, and Kleene-*, respectively, but enforce unique (or unambiguous) parsing. Our main result is for the general case of non-commutative monoids, which is of particular interest for capturing regular string-to-string transformations for document processing. We prove that the following additional combinators suffice for constructing all regular functions: (1) the left-additive versions of split sum and iterated sum, which allow transformations such as string reversal; (2) sum of functions, which allows transformations such as copying of strings; and (3) function composition, or alternatively, a new concept of chained sum, which allows output values from adjacent blocks to mix.
研究动机与目标
- 提供一种类似于正则表达式对正则语言的表征方式,对正则字符串变换进行代数化、与机器无关的表征。
- 识别一组最小的组合子,用于构造所有映射字符串至幺半群元素的正则函数,包括非交换幺半群。
- 将正则函数理论从交换幺半群扩展至非交换幺半群,以捕捉自然的字符串变换(如反转和复制),这些变换无法用经典的一维转换器表达。
- 通过一种支持文档处理、程序验证和字符串变换学习等实际应用的基础,形式化正则函数的表达能力。
- 引入并证明链式求和组合子的必要性,以实现相邻处理块之间输出的混合,支持非连续输入段之间的复杂数据流。
提出的方法
- 将基本函数定义为从基础语言中的字符串到幺半群值的常量映射,确保解析的无歧义性。
- 引入核心组合子:条件选择(f ▹ g)、拆分求和(f ⊕ g)和迭代求和(∑f),它们分别推广了并集、连接和Kleene-*,并带有独特的解析约束。
- 通过引入拆分求和和迭代求和的左加性版本,扩展框架以支持需要从两端处理的变换(如字符串反转)。
- 引入函数求和组合子,以支持字符串段的复制与重复。
- 引入链式求和组合子(或函数复合)以允许相邻处理块的输出值混合,从而实现跨非连续输入段的复杂数据流。
- 通过基于形状的分解和寄存器状态追踪,形式化证明表达式的完备性,表明所有正则函数(尤其是需要双向或非确定性行为的函数)均可由这些组合子构造。
实验结果
研究问题
- RQ1是否可以使用一组最小的、代数化的、与机器无关的组合子,对包括非交换幺半群输出在内的正则字符串变换进行表征?
- RQ2为了表达如字符串反转和复制等变换(这些变换无法用单向转换器表达),需要哪些额外的组合子?
- RQ3在支持跨多个输入段和输出块的复杂数据流的同时,如何保持无歧义解析的概念?
- RQ4组合子集合(包括链式求和)是否既必要又充分,足以捕捉任意幺半群上的所有正则函数?
- RQ5能否基于此基础构建一种声明式语言用于文档处理,以实现正确性保障的字符串变换?
主要发现
- 映射字符串至幺半群元素的正则函数类,可被一组有限的组合子完全表征:选择、拆分求和、迭代求和、左加性拆分求和、函数求和以及链式求和。
- 对于交换幺半群,所有正则函数均可仅使用选择、拆分求和和迭代求和构造,确保无歧义解析并保持复合下的封闭性。
- 对于非交换幺半群,额外的组合子——左加性拆分求和、函数求和以及链式求和——是表达所有正则字符串变换(包括反转和复制)所必需且充分的。
- 链式求和组合子对于实现相邻块之间输出的混合至关重要,这是标准复合或连接所不支持的能力。
- 表达式完备性的证明依赖于对转换器行为的基于形状的分解,通过形式化更新表达式追踪寄存器状态和输入段之间的交互。
- 该框架为声明式文档处理语言提供了基础,潜在应用包括字符串变换学习、网页地址清洗以及程序验证。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。