paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Repairing Regex-Dependent String Functions

修复依赖正则表达式的字符串函数
ASE Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering2024匹配度 2/10 · 论文属于程序合成与修复,聚焦正则依赖字符串函数,未涉及用户核心关注的 PL 与 LLM/Agent 交叉、静态分析、浮点程序分析或贝叶斯程序分析等方向。引用 4 inbox
Nariyoshi Chida, Tachio Terauchi
crossref: 2026-09-12

AI 速览

一句话:针对依赖正则的字符串函数,提出修复/合成思路,覆盖子串匹配与 replacement 参数。

依赖正则表达式的字符串函数以正则作为参数,广泛用于字符串变换和子串搜索,但编写困难。近期基于 Programming by Examples 的自动化方法能合成正则,却仍不足以合成这类函数:第一,已有方法面向整串匹配,而多数依赖正则的字符串函数采用子串匹配;第二,已有方法只关注正则,而许多常用函数(如 replace、replaceAll)还需要 replacement 参数来指定匹配子串的替换方式。本文针对这一差距提出修复依赖正则的字符串函数的研究方向,目标是将子串匹配与 replacement 参数纳入修复/合成过程。摘要未给出具体算法、实现与实验结果的细节。

问题
如何自动修复或合成依赖正则表达式的字符串函数,特别是支持子串匹配以及带 replacement 参数的常见函数(如 replace、replaceAll)。
方法
摘要未披露具体技术路线,仅指出现有基于 PBE 的正则合成方法忽视子串匹配与 replacement 参数;本文以“修复(repairing)”为切入点填补这两个缺口。
评估
摘要未具体描述评估方式与结果。
原文摘要(Abstract)

Regex-dependent string functions are string functions that take regular expressions (regexes) as parameters and are popular means of manipulating strings. They are frequently used for, e.g., string transformation and substring search. Despite the importance, writing these functions is far from easy. To rectify this situation, recent research made significant progress by proposing automated methods for synthesizing regexes based on Programming by Examples (PBE). However, there still is a gap between these methods and the goal of synthesizing regex-dependent string functions. First, the existing methods focus on whole-string matching, whereas most regex-dependent string functions adopt substring matching. Second, the existing methods focus only on the regex, but many commonly used regex-dependent string functions, such as replace and replaceAll, also take as parameter a replacement to specify how the substrings matched to the regex will be replaced.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot8397,
  title = {Repairing Regex-Dependent String Functions},
  author = {Nariyoshi Chida and Tachio Terauchi},
  booktitle = {ASE},
  year = {2024},
  doi = {10.1145/3691620.3695005}
}