德雷克斯

DReX:一种有效评估常规字符串转换的声明性语言。我们提出了一种声明性语言DReX,它可以表达所有常规的字符串到字符串的转换,并且仍然可以有效地进行计算。正则字符串转换类有一个坚实的理论基础,包括多重特征、闭包性质和可判定的分析问题,并允许许多字符串操作,如插入、删除、子串交换和反转。最近的研究已经导致了正则字符串转换的特征化,使用一组原始函数组合符,类似于使用正则表达式定义正则语言。虽然这些组合词构成了本文提出的DReX语言的基础,但我们的主要技术重点是在给定的输入字符串上计算DReX程序输出的复杂性。结果表明,自然求值算法涉及动态规划,导致输入字符串长度的复杂性为立方。我们的主要贡献是确定了在DReX程序中使用组合子的一致性限制,以及对于具有输入字符串长度线性和程序大小为多项式的时间复杂度的一致性程序的单次通过评估算法。我们证明了一致性限制不限制表达性,并且可以有效地检查DReX程序是否一致。我们报告了一个原型实现,并使用一组具有代表性的文本处理任务对其进行了评估。