Automatic repair of regular expressions

24Citations
Citations of this article
18Readers
Mendeley users who have this article in their library.

Abstract

We introduce RFixer, a tool for repairing complex regular expressions using examples. Given an incorrect regular expression and sets of positive and negative examples, RFixer synthesizes the closest regular expression to the original one that is consistent with the examples. Automatically repairing regular expressions requires exploring a large search space because practical regular expressions: I) are large, ii) operate over very large alphabetsDe.g., UTF-16 and ASCIIDand iii) employ complex constructsDe.g., character classes and numerical quantifiers. RFixer's repair algorithm achieves scalability by taking advantage of structural properties of regular expressions to effectively prune the search space, and it employs satisfiability modulo theory solvers to efficiently and symbolically explore the sets of possible character classes and numerical quantifiers. RFixer could successfully compute minimal repairs for regular expressions collected from a variety of sources, whereas existing tools either failed to produce any repair or produced overly complex repairs.

Cite

CITATION STYLE

APA

Pan, R., Hu, Q., Xu, G., & D’Antoni, L. (2019). Automatic repair of regular expressions. Proceedings of the ACM on Programming Languages, 3(OOPSLA). https://doi.org/10.1145/3360565

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free